dataflux 1.7.5 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +139 -25
- package/dist/BasicObj.js +53 -6
- package/dist/Model.js +145 -38
- package/dist/ObserverStore.js +21 -8
- package/dist/PersistentStore.js +51 -22
- package/dist/Store.js +202 -64
- package/dist/dataflux.min.js +1 -1
- package/dist/dataflux.min.js.map +1 -1
- package/dist/modelHooksUtils.js +50 -19
- package/package.json +8 -8
package/dist/modelHooksUtils.js
CHANGED
|
@@ -7,19 +7,27 @@ exports.getHooksFromUrl = exports.getHooksFromOptions = exports.executeHook = vo
|
|
|
7
7
|
|
|
8
8
|
var _brembo = _interopRequireDefault(require("brembo"));
|
|
9
9
|
|
|
10
|
+
var _batchPromises = _interopRequireDefault(require("batch-promises"));
|
|
11
|
+
|
|
10
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
13
|
|
|
12
14
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
13
15
|
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
|
+
|
|
20
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
+
|
|
14
22
|
var getDataStringHook = function getDataStringHook(hook) {
|
|
15
|
-
var _hook$fields;
|
|
23
|
+
var _hook$batch, _hook$fields;
|
|
16
24
|
|
|
17
25
|
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
18
26
|
var axios = arguments.length > 2 ? arguments[2] : undefined;
|
|
27
|
+
var batch = (_hook$batch = hook.batch) !== null && _hook$batch !== void 0 ? _hook$batch : false;
|
|
19
28
|
var options = {
|
|
20
29
|
url: hook.url,
|
|
21
|
-
method: hook.method || "get",
|
|
22
|
-
data: data,
|
|
30
|
+
method: (hook.method || "get").toLowerCase(),
|
|
23
31
|
reponseType: 'json'
|
|
24
32
|
};
|
|
25
33
|
|
|
@@ -31,9 +39,28 @@ var getDataStringHook = function getDataStringHook(hook) {
|
|
|
31
39
|
setFields(options, hook);
|
|
32
40
|
}
|
|
33
41
|
|
|
34
|
-
|
|
35
|
-
return
|
|
36
|
-
|
|
42
|
+
if (options.method === "get") {
|
|
43
|
+
return axios(options).then(function (data) {
|
|
44
|
+
return data.data;
|
|
45
|
+
});
|
|
46
|
+
} else if (batch) {
|
|
47
|
+
return axios(_objectSpread(_objectSpread({}, options), {}, {
|
|
48
|
+
data: data
|
|
49
|
+
})).then(function (data) {
|
|
50
|
+
return data.data;
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
var out = [];
|
|
54
|
+
return (0, _batchPromises["default"])(4, data, function (item) {
|
|
55
|
+
return axios(_objectSpread(_objectSpread({}, options), {}, {
|
|
56
|
+
data: item
|
|
57
|
+
})).then(function (data) {
|
|
58
|
+
return out.push(data.data);
|
|
59
|
+
});
|
|
60
|
+
}).then(function () {
|
|
61
|
+
return out;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
37
64
|
};
|
|
38
65
|
|
|
39
66
|
var setFields = function setFields(options, hook) {
|
|
@@ -118,23 +145,27 @@ var getHooksFromUrl = function getHooksFromUrl(url) {
|
|
|
118
145
|
exports.getHooksFromUrl = getHooksFromUrl;
|
|
119
146
|
|
|
120
147
|
var executeHook = function executeHook(type, hook, data, axios) {
|
|
121
|
-
|
|
148
|
+
try {
|
|
149
|
+
var hookType = _typeof(hook);
|
|
122
150
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
151
|
+
switch (hookType) {
|
|
152
|
+
case "object":
|
|
153
|
+
return getDataStringHook(hook, data, axios);
|
|
126
154
|
|
|
127
|
-
|
|
128
|
-
|
|
155
|
+
case "function":
|
|
156
|
+
var res = hook(data);
|
|
129
157
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
158
|
+
if (res.method && res.url && res.headers) {
|
|
159
|
+
return getDataStringHook(res, data, axios);
|
|
160
|
+
} else {
|
|
161
|
+
return res;
|
|
162
|
+
}
|
|
135
163
|
|
|
136
|
-
|
|
137
|
-
|
|
164
|
+
default:
|
|
165
|
+
return Promise.reject("The ".concat(type, " hook must be a URL or a function returning a promise"));
|
|
166
|
+
}
|
|
167
|
+
} catch (e) {
|
|
168
|
+
return Promise.reject(e);
|
|
138
169
|
}
|
|
139
170
|
};
|
|
140
171
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dataflux",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.1",
|
|
4
4
|
"description": "DataFlux, automatically interfaces with your REST APIs to create a 2-way-synced local data store. Transparently manages data propagation in the React state.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": "dist/index.js",
|
|
@@ -80,11 +80,11 @@
|
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@babel/cli": "^7.17.
|
|
84
|
-
"@babel/core": "^7.17.
|
|
83
|
+
"@babel/cli": "^7.17.6",
|
|
84
|
+
"@babel/core": "^7.17.5",
|
|
85
85
|
"@babel/node": "^7.16.8",
|
|
86
86
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
87
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.
|
|
87
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.17.3",
|
|
88
88
|
"@babel/plugin-transform-async-to-generator": "^7.16.8",
|
|
89
89
|
"@babel/plugin-transform-runtime": "^7.17.0",
|
|
90
90
|
"@babel/preset-env": "^7.16.11",
|
|
@@ -92,12 +92,12 @@
|
|
|
92
92
|
"chai": "^4.3.6",
|
|
93
93
|
"chai-subset": "^1.6.0",
|
|
94
94
|
"dotenv-cli": "^5.0.0",
|
|
95
|
-
"mocha": "^9.2.
|
|
96
|
-
"release-it": "^14.12.
|
|
97
|
-
"uglify-js": "^3.15.
|
|
95
|
+
"mocha": "^9.2.1",
|
|
96
|
+
"release-it": "^14.12.5",
|
|
97
|
+
"uglify-js": "^3.15.2"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"axios": "^0.
|
|
100
|
+
"axios": "^0.26.0",
|
|
101
101
|
"batch-promises": "^0.0.3",
|
|
102
102
|
"brembo": "^2.0.6",
|
|
103
103
|
"crc-32": "^1.2.1",
|