|
1 |
| -(function(wcl) { |
| 1 | +'use strict'; |
| 2 | + |
| 3 | +(wcl => { |
2 | 4 |
|
3 | 5 | wcl.AjaxAPI = function(methods) { // params: { method: { get/post:url }, ... }
|
4 |
| - var api = {}; |
| 6 | + const api = {}; |
5 | 7 | api.request = function(apiMethod, params, callback) {
|
6 |
| - var err = null, requestParams = this.methods[apiMethod]; |
| 8 | + let err = null, requestParams = this.methods[apiMethod]; |
7 | 9 | if (requestParams) {
|
8 |
| - var httpMethod, url; |
9 |
| - if (requestParams.get ) { httpMethod = 'GET'; url = requestParams.get; } |
10 |
| - if (requestParams.post) { httpMethod = 'POST'; url = requestParams.post; } |
| 10 | + let httpMethod, url; |
| 11 | + if (requestParams.get) { |
| 12 | + httpMethod = 'GET'; |
| 13 | + url = requestParams.get; |
| 14 | + } |
| 15 | + if (requestParams.post) { |
| 16 | + httpMethod = 'POST'; |
| 17 | + url = requestParams.post; |
| 18 | + } |
11 | 19 | if (httpMethod) {
|
12 | 20 | wcl.request(httpMethod, url, params, true, callback);
|
13 | 21 | return;
|
14 |
| - } else err = new Error('DataSource error: HTTP method is not specified'); |
15 |
| - } else err = new Error('DataSource error: AJAX method is not specified'); |
| 22 | + } else { |
| 23 | + err = new Error('DataSource error: HTTP method is not specified'); |
| 24 | + } |
| 25 | + } else { |
| 26 | + err = new Error('DataSource error: AJAX method is not specified'); |
| 27 | + } |
16 | 28 | callback(err, null);
|
17 | 29 | };
|
18 | 30 | api.init = function(methods) {
|
19 | 31 | api.methods = methods;
|
20 | 32 | for (var method in api.methods) {
|
21 | 33 | (function() {
|
22 |
| - var apiMethod = method; |
23 |
| - if (apiMethod === 'introspect') api[apiMethod] = function(params, callback) { |
24 |
| - api.request(apiMethod, params, function(err, data) { |
25 |
| - api.init(data); |
26 |
| - callback(err, data); |
27 |
| - }); |
28 |
| - }; else api[apiMethod] = function(params, callback) { |
29 |
| - api.request(apiMethod, params, callback); |
30 |
| - }; |
31 |
| - } ()); |
| 34 | + const apiMethod = method; |
| 35 | + if (apiMethod === 'introspect') { |
| 36 | + api[apiMethod] = function(params, callback) { |
| 37 | + api.request(apiMethod, params, (err, data) => { |
| 38 | + api.init(data); |
| 39 | + callback(err, data); |
| 40 | + }); |
| 41 | + }; |
| 42 | + } else { |
| 43 | + api[apiMethod] = (params, callback) => { |
| 44 | + api.request(apiMethod, params, callback); |
| 45 | + }; |
| 46 | + } |
| 47 | + }()); |
32 | 48 | }
|
33 | 49 | };
|
34 | 50 | api.init(methods);
|
|
49 | 65 | };
|
50 | 66 |
|
51 | 67 | wcl.AjaxDataSource = function(methods) {
|
52 |
| - var ds = wcl.AjaxAPI(methods); |
| 68 | + const ds = wcl.AjaxAPI(methods); |
53 | 69 | ds.read = function(query, callback) {
|
54 |
| - ds.request('read', query, function(err, data) { |
| 70 | + ds.request('read', query, (err, data) => { |
55 | 71 | // TODO: autocreate Record
|
56 | 72 | // callback(err, wcl.Record({ data:data }));
|
57 | 73 | //
|
|
62 | 78 | };
|
63 | 79 |
|
64 | 80 | wcl.MemoryDataSource = function(params) { // { data:Hash, metadata:Hash }
|
65 |
| - var ds = {}; |
| 81 | + const ds = {}; |
66 | 82 | ds.data = params.data;
|
67 | 83 | ds.metadata = params.metadata;
|
68 | 84 | ds.each = function(params, callback) {
|
69 |
| - for (var i = 0; i < ds.data.length; i++) { |
70 |
| - var d = ds.data[i], match = true; |
71 |
| - for (var key in params) match = match && (d[key] === params[key]); |
| 85 | + for (let i = 0; i < ds.data.length; i++) { |
| 86 | + let d = ds.data[i], match = true; |
| 87 | + for (const key in params) match = match && (d[key] === params[key]); |
72 | 88 | if (match) { if (callback(i)) return; }
|
73 | 89 | }
|
74 | 90 | };
|
75 | 91 | ds.read = function(params, callback) {
|
76 |
| - var data = ds.data; |
77 |
| - ds.each(params, function(key) { callback(null, data[key]); return true; }); |
| 92 | + const data = ds.data; |
| 93 | + ds.each(params, key => { callback(null, data[key]); return true; }); |
78 | 94 | callback(new Error('Record not found'), null);
|
79 | 95 | };
|
80 | 96 | ds.insert = function(params, callback) {
|
81 | 97 | ds.data.push(params);
|
82 | 98 | callback();
|
83 | 99 | };
|
84 | 100 | ds.update = function(params, callback) {
|
85 |
| - var data = ds.data; |
86 |
| - ds.each(params, function(key) { data[key] = params; return true; }); |
| 101 | + const data = ds.data; |
| 102 | + ds.each(params, key => { data[key] = params; return true; }); |
87 | 103 | callback();
|
88 | 104 | };
|
89 | 105 | ds.delete = function(params, callback) {
|
90 |
| - var data = ds.data; |
91 |
| - ds.each(params, function(key) { delete data[key]; }); |
| 106 | + const data = ds.data; |
| 107 | + ds.each(params, key => { delete data[key]; }); |
92 | 108 | callback();
|
93 | 109 | };
|
94 | 110 | ds.find = function(params, callback) {
|
95 |
| - var data = ds.data, result = []; |
96 |
| - ds.each(params, function(key) { result.push(data[key]); }); |
| 111 | + let data = ds.data, result = []; |
| 112 | + ds.each(params, key => { result.push(data[key]); }); |
97 | 113 | callback(null, result);
|
98 | 114 | };
|
99 | 115 | return ds;
|
100 | 116 | };
|
101 | 117 |
|
102 | 118 | wcl.parse = function(json) {
|
103 |
| - var result; |
| 119 | + let result; |
104 | 120 | eval('result = new Object(' + json + ')');
|
105 | 121 | return result;
|
106 | 122 | };
|
107 | 123 |
|
108 | 124 | wcl.htmlEscape = function(content) {
|
109 |
| - return content.replace(/[&<>"'\/]/g, function(char) { |
110 |
| - return ({ "&":"&","<":"<", ">":">", '"':""", "'":"'" }[char]); |
111 |
| - }); |
| 125 | + return content.replace(/[&<>"'\/]/g, char => ({ '&': '&', '<': '<', '>': '>', '"': '"', '\'': ''' }[char])); |
112 | 126 | };
|
113 | 127 |
|
114 | 128 | wcl.template = function(tpl, data, escapeHtml) {
|
115 |
| - return tpl.replace(/@([\-\.0-9a-zA-Z]+)@/g, function(s, key) { |
116 |
| - return escapeHtml ? wcl.htmlEscape(data[key]) : data[key]; |
117 |
| - }); |
| 129 | + return tpl.replace(/@([\-\.0-9a-zA-Z]+)@/g, (s, key) => (escapeHtml ? wcl.htmlEscape(data[key]) : data[key])); |
118 | 130 | };
|
119 | 131 |
|
120 | 132 | wcl.templateHtml = function(tpl, data) {
|
121 | 133 | return wcl.template(tpl, data, true);
|
122 | 134 | };
|
123 | 135 |
|
124 | 136 | wcl.request = function(method, url, params, parseResponse, callback) {
|
125 |
| - var req = new XMLHttpRequest(), data = [], value = ''; |
| 137 | + let req = new XMLHttpRequest(), data = [], value = ''; |
126 | 138 | req.open(method, url, true);
|
127 |
| - for (var key in params) { |
| 139 | + for (const key in params) { |
128 | 140 | if (!params.hasOwnProperty(key)) continue;
|
129 | 141 | value = params[key];
|
130 |
| - if (typeof(value) != 'string') value = JSON.stringify(value); |
| 142 | + if (typeof(value) !== 'string') value = JSON.stringify(value); |
131 | 143 | data.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
|
132 | 144 | }
|
133 | 145 | data = data.join('&');
|
|
136 | 148 | req.setRequestHeader('Connection', 'close');
|
137 | 149 | req.onreadystatechange = function() {
|
138 | 150 | if (req.readyState === 4) {
|
139 |
| - var err = null, res = req.responseText; |
| 151 | + let err = null, res = req.responseText; |
140 | 152 | if (req.status === 0 || req.status === 200) {
|
141 | 153 | if (parseResponse) {
|
142 |
| - try { res = JSON.parse(res); } |
143 |
| - catch(e) { err = new Error('JSON parse code: ' + e); } |
| 154 | + try { res = JSON.parse(res); } catch (e) { err = new Error('JSON parse code: ' + e); } |
144 | 155 | }
|
145 | 156 | } else err = new Error('HTTP error code: ' + req.status);
|
146 | 157 | callback(err, res);
|
147 | 158 | }
|
148 | 159 | };
|
149 |
| - try { req.send(data); } |
150 |
| - catch(e) { } |
| 160 | + try { req.send(data); } catch (e) { } |
151 | 161 | };
|
152 | 162 |
|
153 | 163 | wcl.get = function(url, params, callback) {
|
|
158 | 168 | wcl.request('POST', url, params, true, callback);
|
159 | 169 | };
|
160 | 170 |
|
161 |
| -} (global.wcl = global.wcl || {})); |
| 171 | +}(global.wcl = global.wcl || {})); |
0 commit comments