@3plus/redux-api 1.0.2
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/CHANGELOG.md +82 -0
- package/LICENSE.md +7 -0
- package/README.md +132 -0
- package/lib/PubSub.js +44 -0
- package/lib/PubSub.js.map +1 -0
- package/lib/actionFn.js +420 -0
- package/lib/actionFn.js.map +1 -0
- package/lib/adapters/fetch.js +47 -0
- package/lib/adapters/fetch.js.map +1 -0
- package/lib/async.js +40 -0
- package/lib/async.js.map +1 -0
- package/lib/createHolder.js +33 -0
- package/lib/createHolder.js.map +1 -0
- package/lib/fetchResolver.js +21 -0
- package/lib/fetchResolver.js.map +1 -0
- package/lib/helpers.js +65 -0
- package/lib/helpers.js.map +1 -0
- package/lib/index.js +183 -0
- package/lib/index.js.map +1 -0
- package/lib/reducerFn.js +89 -0
- package/lib/reducerFn.js.map +1 -0
- package/lib/transformers.js +27 -0
- package/lib/transformers.js.map +1 -0
- package/lib/urlTransform.js +73 -0
- package/lib/urlTransform.js.map +1 -0
- package/lib/utils/cache.js +94 -0
- package/lib/utils/cache.js.map +1 -0
- package/lib/utils/get.js +27 -0
- package/lib/utils/get.js.map +1 -0
- package/lib/utils/merge.js +41 -0
- package/lib/utils/merge.js.map +1 -0
- package/lib/utils/omit.js +25 -0
- package/lib/utils/omit.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchResolver.js","names":["Object","defineProperty","exports","value","fetchResolver","none","index","arguments","length","undefined","opts","cb","prefetch","err","module","default"],"sources":["../src/fetchResolver.js"],"sourcesContent":["\"use strict\";\n\nfunction none() {}\n\nexport default function fetchResolver(index = 0, opts = {}, cb = none) {\n if (!opts.prefetch || index >= opts.prefetch.length) {\n cb();\n } else {\n opts.prefetch[index](opts, err =>\n err ? cb(err) : fetchResolver(index + 1, opts, cb)\n );\n }\n}\n"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,cAAAE,aAAA;AAEb,SAASC,IAAIA,CAAA,EAAG,CAAC;AAEF,SAASD,aAAaA,CAAA,EAAkC;EAAA,IAAjCE,KAAK,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAAEG,IAAI,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEI,EAAE,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGF,IAAI;EACnE,IAAI,CAACK,IAAI,CAACE,QAAQ,IAAIN,KAAK,IAAII,IAAI,CAACE,QAAQ,CAACJ,MAAM,EAAE;IACnDG,EAAE,CAAC,CAAC;EACN,CAAC,MAAM;IACLD,IAAI,CAACE,QAAQ,CAACN,KAAK,CAAC,CAACI,IAAI,EAAE,UAAAG,GAAG;MAAA,OAC5BA,GAAG,GAAGF,EAAE,CAACE,GAAG,CAAC,GAAGT,aAAa,CAACE,KAAK,GAAG,CAAC,EAAEI,IAAI,EAAEC,EAAE,CAAC;IAAA,CACpD,CAAC;EACH;AACF;AAACG,MAAA,CAAAZ,OAAA,GAAAA,OAAA,CAAAa,OAAA","ignoreList":[]}
|
package/lib/helpers.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.CRUD = void 0;
|
|
8
|
+
exports.defaultMiddlewareArgsParser = defaultMiddlewareArgsParser;
|
|
9
|
+
exports.extractArgs = extractArgs;
|
|
10
|
+
exports.helperCrudFunction = helperCrudFunction;
|
|
11
|
+
exports.none = none;
|
|
12
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
14
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
16
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
18
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
19
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
20
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
21
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
22
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
23
|
+
function none() {}
|
|
24
|
+
function extractArgs(args) {
|
|
25
|
+
var pathvars;
|
|
26
|
+
var params = {};
|
|
27
|
+
var callback;
|
|
28
|
+
if (args[0] instanceof Function) {
|
|
29
|
+
callback = args[0];
|
|
30
|
+
} else if (args[1] instanceof Function) {
|
|
31
|
+
pathvars = args[0];
|
|
32
|
+
callback = args[1];
|
|
33
|
+
} else {
|
|
34
|
+
pathvars = args[0];
|
|
35
|
+
params = args[1];
|
|
36
|
+
callback = args[2] || none;
|
|
37
|
+
}
|
|
38
|
+
return [pathvars, params, callback];
|
|
39
|
+
}
|
|
40
|
+
function helperCrudFunction(name) {
|
|
41
|
+
return function () {
|
|
42
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
|
+
args[_key] = arguments[_key];
|
|
44
|
+
}
|
|
45
|
+
var _extractArgs = extractArgs(args),
|
|
46
|
+
_extractArgs2 = _slicedToArray(_extractArgs, 3),
|
|
47
|
+
pathvars = _extractArgs2[0],
|
|
48
|
+
params = _extractArgs2[1],
|
|
49
|
+
cb = _extractArgs2[2];
|
|
50
|
+
return [pathvars, _objectSpread(_objectSpread({}, params), {}, {
|
|
51
|
+
method: name.toUpperCase()
|
|
52
|
+
}), cb];
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function defaultMiddlewareArgsParser(dispatch, getState) {
|
|
56
|
+
return {
|
|
57
|
+
dispatch: dispatch,
|
|
58
|
+
getState: getState
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
var CRUD = exports.CRUD = ["get", "post", "put", "delete", "patch"].reduce(function (memo, name) {
|
|
62
|
+
memo[name] = helperCrudFunction(name);
|
|
63
|
+
return memo;
|
|
64
|
+
}, {});
|
|
65
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["none","extractArgs","args","pathvars","params","callback","Function","helperCrudFunction","name","_len","arguments","length","Array","_key","_extractArgs","_extractArgs2","_slicedToArray","cb","_objectSpread","method","toUpperCase","defaultMiddlewareArgsParser","dispatch","getState","CRUD","exports","reduce","memo"],"sources":["../src/helpers.js"],"sourcesContent":["export function none() {}\n\nexport function extractArgs(args) {\n let pathvars;\n let params = {};\n let callback;\n if (args[0] instanceof Function) {\n callback = args[0];\n } else if (args[1] instanceof Function) {\n pathvars = args[0];\n callback = args[1];\n } else {\n pathvars = args[0];\n params = args[1];\n callback = args[2] || none;\n }\n return [pathvars, params, callback];\n}\n\nexport function helperCrudFunction(name) {\n return (...args) => {\n const [pathvars, params, cb] = extractArgs(args);\n return [pathvars, { ...params, method: name.toUpperCase() }, cb];\n };\n}\n\nexport function defaultMiddlewareArgsParser(dispatch, getState) {\n return { dispatch, getState };\n}\n\nexport const CRUD = [\"get\", \"post\", \"put\", \"delete\", \"patch\"].reduce(\n (memo, name) => {\n memo[name] = helperCrudFunction(name);\n return memo;\n },\n {}\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,IAAIA,CAAA,EAAG,CAAC;AAEjB,SAASC,WAAWA,CAACC,IAAI,EAAE;EAChC,IAAIC,QAAQ;EACZ,IAAIC,MAAM,GAAG,CAAC,CAAC;EACf,IAAIC,QAAQ;EACZ,IAAIH,IAAI,CAAC,CAAC,CAAC,YAAYI,QAAQ,EAAE;IAC/BD,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC;EACpB,CAAC,MAAM,IAAIA,IAAI,CAAC,CAAC,CAAC,YAAYI,QAAQ,EAAE;IACtCH,QAAQ,GAAGD,IAAI,CAAC,CAAC,CAAC;IAClBG,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC;EACpB,CAAC,MAAM;IACLC,QAAQ,GAAGD,IAAI,CAAC,CAAC,CAAC;IAClBE,MAAM,GAAGF,IAAI,CAAC,CAAC,CAAC;IAChBG,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC,IAAIF,IAAI;EAC5B;EACA,OAAO,CAACG,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,CAAC;AACrC;AAEO,SAASE,kBAAkBA,CAACC,IAAI,EAAE;EACvC,OAAO,YAAa;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAATT,IAAI,OAAAU,KAAA,CAAAH,IAAA,GAAAI,IAAA,MAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA;MAAJX,IAAI,CAAAW,IAAA,IAAAH,SAAA,CAAAG,IAAA;IAAA;IACb,IAAAC,YAAA,GAA+Bb,WAAW,CAACC,IAAI,CAAC;MAAAa,aAAA,GAAAC,cAAA,CAAAF,YAAA;MAAzCX,QAAQ,GAAAY,aAAA;MAAEX,MAAM,GAAAW,aAAA;MAAEE,EAAE,GAAAF,aAAA;IAC3B,OAAO,CAACZ,QAAQ,EAAAe,aAAA,CAAAA,aAAA,KAAOd,MAAM;MAAEe,MAAM,EAAEX,IAAI,CAACY,WAAW,CAAC;IAAC,IAAIH,EAAE,CAAC;EAClE,CAAC;AACH;AAEO,SAASI,2BAA2BA,CAACC,QAAQ,EAAEC,QAAQ,EAAE;EAC9D,OAAO;IAAED,QAAQ,EAARA,QAAQ;IAAEC,QAAQ,EAARA;EAAS,CAAC;AAC/B;AAEO,IAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAACE,MAAM,CAClE,UAACC,IAAI,EAAEnB,IAAI,EAAK;EACdmB,IAAI,CAACnB,IAAI,CAAC,GAAGD,kBAAkB,CAACC,IAAI,CAAC;EACrC,OAAOmB,IAAI;AACb,CAAC,EACD,CAAC,CACH,CAAC","ignoreList":[]}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint no-void: 0 */
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = reduxApi;
|
|
8
|
+
var _reducerFn = _interopRequireDefault(require("./reducerFn"));
|
|
9
|
+
var _actionFn = _interopRequireDefault(require("./actionFn"));
|
|
10
|
+
var _transformers = _interopRequireDefault(require("./transformers"));
|
|
11
|
+
var _async = _interopRequireDefault(require("./async"));
|
|
12
|
+
var _cache = _interopRequireDefault(require("./utils/cache"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
20
|
+
// export { transformers, async };
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Default configuration for each endpoint
|
|
24
|
+
* @type {Object}
|
|
25
|
+
*/
|
|
26
|
+
var defaultEndpointConfig = {
|
|
27
|
+
transformer: _transformers["default"].object
|
|
28
|
+
};
|
|
29
|
+
var PREFIX = "@@redux-api";
|
|
30
|
+
/**
|
|
31
|
+
* Entry api point
|
|
32
|
+
* @param {Object} config Rest api configuration
|
|
33
|
+
* @param {Object} baseConfig baseConfig settings for Rest api
|
|
34
|
+
* @param {Function} fetch Adapter for rest requests
|
|
35
|
+
* @param {Boolean} isServer false by default (fif you want to use it for isomorphic apps)
|
|
36
|
+
* @return {actions, reducers} { actions, reducers}
|
|
37
|
+
* @example ```js
|
|
38
|
+
* const api = reduxApi({
|
|
39
|
+
* test: "/plain/url",
|
|
40
|
+
* testItem: "/plain/url/:id",
|
|
41
|
+
* testModify: {
|
|
42
|
+
* url: "/plain/url/:endpoint",
|
|
43
|
+
|
|
44
|
+
* transformer: (data)=> !data ?
|
|
45
|
+
* { title: "", message: "" } :
|
|
46
|
+
* { title: data.title, message: data.message },
|
|
47
|
+
* options: {
|
|
48
|
+
* method: "post"
|
|
49
|
+
* headers: {
|
|
50
|
+
* "Accept": "application/json",
|
|
51
|
+
* "Content-Type": "application/json"
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* }
|
|
55
|
+
* });
|
|
56
|
+
* // register reducers
|
|
57
|
+
*
|
|
58
|
+
* // call actions
|
|
59
|
+
* dispatch(api.actions.test());
|
|
60
|
+
* dispatch(api.actions.testItem({id: 1}));
|
|
61
|
+
* dispatch(api.actions.testModify({endpoint: "upload-1"}, {
|
|
62
|
+
* body: JSON.stringify({title: "Hello", message: "World"})
|
|
63
|
+
* }));
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
function reduxApi(config, baseConfig) {
|
|
68
|
+
config || (config = {});
|
|
69
|
+
var fetchHolder = {
|
|
70
|
+
fetch: null,
|
|
71
|
+
server: false,
|
|
72
|
+
rootUrl: null,
|
|
73
|
+
middlewareParser: null,
|
|
74
|
+
options: {},
|
|
75
|
+
responseHandler: null
|
|
76
|
+
};
|
|
77
|
+
var cfg = {
|
|
78
|
+
use: function use(key, value) {
|
|
79
|
+
fetchHolder[key] = value;
|
|
80
|
+
return this;
|
|
81
|
+
},
|
|
82
|
+
init: function init(fetch) {
|
|
83
|
+
var isServer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
84
|
+
var rootUrl = arguments.length > 2 ? arguments[2] : undefined;
|
|
85
|
+
/* eslint no-console: 0 */
|
|
86
|
+
console.warn("Deprecated method, use `use` method");
|
|
87
|
+
this.use("fetch", fetch);
|
|
88
|
+
this.use("server", isServer);
|
|
89
|
+
this.use("rootUrl", rootUrl);
|
|
90
|
+
return this;
|
|
91
|
+
},
|
|
92
|
+
actions: {},
|
|
93
|
+
reducers: {},
|
|
94
|
+
events: {}
|
|
95
|
+
};
|
|
96
|
+
function fnConfigCallback(memo, value, key) {
|
|
97
|
+
var opts = _typeof(value) === "object" ? _objectSpread(_objectSpread({}, defaultEndpointConfig), {}, {
|
|
98
|
+
reducerName: key
|
|
99
|
+
}, value) : _objectSpread(_objectSpread({}, defaultEndpointConfig), {}, {
|
|
100
|
+
reducerName: key,
|
|
101
|
+
url: value
|
|
102
|
+
});
|
|
103
|
+
if (opts.broadcast !== void 0) {
|
|
104
|
+
/* eslint no-console: 0 */
|
|
105
|
+
console.warn("Deprecated `broadcast` option. you shoud use `events`" + "to catch redux-api events (see https://github.com/3plus/redux-api/blob/master/DOCS.md#Events)");
|
|
106
|
+
}
|
|
107
|
+
var url = opts.url,
|
|
108
|
+
urlOptions = opts.urlOptions,
|
|
109
|
+
options = opts.options,
|
|
110
|
+
transformer = opts.transformer,
|
|
111
|
+
broadcast = opts.broadcast,
|
|
112
|
+
crud = opts.crud,
|
|
113
|
+
reducerName = opts.reducerName,
|
|
114
|
+
prefetch = opts.prefetch,
|
|
115
|
+
postfetch = opts.postfetch,
|
|
116
|
+
validation = opts.validation,
|
|
117
|
+
helpers = opts.helpers;
|
|
118
|
+
var prefix = baseConfig && baseConfig.prefix || "";
|
|
119
|
+
var ACTIONS = {
|
|
120
|
+
actionFetch: "".concat(PREFIX, "@").concat(prefix).concat(reducerName),
|
|
121
|
+
actionSuccess: "".concat(PREFIX, "@").concat(prefix).concat(reducerName, "_success"),
|
|
122
|
+
actionFail: "".concat(PREFIX, "@").concat(prefix).concat(reducerName, "_fail"),
|
|
123
|
+
actionReset: "".concat(PREFIX, "@").concat(prefix).concat(reducerName, "_delete"),
|
|
124
|
+
actionCache: "".concat(PREFIX, "@").concat(prefix).concat(reducerName, "_cache"),
|
|
125
|
+
actionAbort: "".concat(PREFIX, "@").concat(prefix).concat(reducerName, "_abort")
|
|
126
|
+
};
|
|
127
|
+
var fetch = opts.fetch ? opts.fetch : function () {
|
|
128
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
129
|
+
args[_key] = arguments[_key];
|
|
130
|
+
}
|
|
131
|
+
return fetchHolder.fetch.apply(this, args);
|
|
132
|
+
};
|
|
133
|
+
var meta = {
|
|
134
|
+
holder: fetchHolder,
|
|
135
|
+
virtual: !!opts.virtual,
|
|
136
|
+
actions: memo.actions,
|
|
137
|
+
cache: (0, _cache["default"])(opts.cache),
|
|
138
|
+
urlOptions: urlOptions,
|
|
139
|
+
fetch: fetch,
|
|
140
|
+
broadcast: broadcast,
|
|
141
|
+
reducerName: reducerName,
|
|
142
|
+
prefetch: prefetch,
|
|
143
|
+
postfetch: postfetch,
|
|
144
|
+
validation: validation,
|
|
145
|
+
helpers: helpers,
|
|
146
|
+
transformer: transformer,
|
|
147
|
+
prefix: prefix,
|
|
148
|
+
crud: crud
|
|
149
|
+
};
|
|
150
|
+
memo.actions[key] = (0, _actionFn["default"])(url, key, options, ACTIONS, meta);
|
|
151
|
+
if (!meta.virtual && !memo.reducers[reducerName]) {
|
|
152
|
+
var data = transformer();
|
|
153
|
+
var sync = false;
|
|
154
|
+
var syncing = false;
|
|
155
|
+
var loading = false;
|
|
156
|
+
var initialState = opts.cache ? {
|
|
157
|
+
sync: sync,
|
|
158
|
+
syncing: syncing,
|
|
159
|
+
loading: loading,
|
|
160
|
+
data: data,
|
|
161
|
+
cache: {},
|
|
162
|
+
request: null
|
|
163
|
+
} : {
|
|
164
|
+
sync: sync,
|
|
165
|
+
syncing: syncing,
|
|
166
|
+
loading: loading,
|
|
167
|
+
data: data,
|
|
168
|
+
request: null
|
|
169
|
+
};
|
|
170
|
+
var reducer = opts.reducer ? opts.reducer.bind(memo) : null;
|
|
171
|
+
memo.reducers[reducerName] = (0, _reducerFn["default"])(initialState, ACTIONS, reducer);
|
|
172
|
+
}
|
|
173
|
+
memo.events[reducerName] = ACTIONS;
|
|
174
|
+
return memo;
|
|
175
|
+
}
|
|
176
|
+
return Object.keys(config).reduce(function (memo, key) {
|
|
177
|
+
return fnConfigCallback(memo, config[key], key, config);
|
|
178
|
+
}, cfg);
|
|
179
|
+
}
|
|
180
|
+
reduxApi.transformers = _transformers["default"];
|
|
181
|
+
reduxApi.async = _async["default"];
|
|
182
|
+
module.exports = exports.default;
|
|
183
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Object","defineProperty","exports","value","reduxApi","_reducerFn","_interopRequireDefault","require","_actionFn","_transformers","_async","_cache","e","__esModule","ownKeys","r","t","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","iterator","constructor","prototype","defaultEndpointConfig","transformer","transformers","object","PREFIX","config","baseConfig","fetchHolder","fetch","server","rootUrl","middlewareParser","options","responseHandler","cfg","use","key","init","isServer","undefined","console","warn","actions","reducers","events","fnConfigCallback","memo","opts","reducerName","url","broadcast","urlOptions","crud","prefetch","postfetch","validation","helpers","prefix","ACTIONS","actionFetch","concat","actionSuccess","actionFail","actionReset","actionCache","actionAbort","_len","args","Array","_key","meta","holder","virtual","cache","cacheManager","actionFn","data","sync","syncing","loading","initialState","request","reducer","bind","reducerFn","reduce","async","module","default"],"sources":["../src/index.js"],"sourcesContent":["\"use strict\";\n\n/* eslint no-void: 0 */\n\nimport reducerFn from \"./reducerFn\";\nimport actionFn from \"./actionFn\";\nimport transformers from \"./transformers\";\nimport async from \"./async\";\nimport cacheManager from \"./utils/cache\";\n// export { transformers, async };\n\n/**\n * Default configuration for each endpoint\n * @type {Object}\n */\nconst defaultEndpointConfig = {\n transformer: transformers.object\n};\n\nconst PREFIX = \"@@redux-api\";\n/**\n * Entry api point\n * @param {Object} config Rest api configuration\n * @param {Object} baseConfig baseConfig settings for Rest api\n * @param {Function} fetch Adapter for rest requests\n * @param {Boolean} isServer false by default (fif you want to use it for isomorphic apps)\n * @return {actions, reducers} { actions, reducers}\n * @example ```js\n * const api = reduxApi({\n * test: \"/plain/url\",\n * testItem: \"/plain/url/:id\",\n * testModify: {\n * url: \"/plain/url/:endpoint\",\n\n * transformer: (data)=> !data ?\n * { title: \"\", message: \"\" } :\n * { title: data.title, message: data.message },\n * options: {\n * method: \"post\"\n * headers: {\n * \"Accept\": \"application/json\",\n * \"Content-Type\": \"application/json\"\n * }\n * }\n * }\n * });\n * // register reducers\n *\n * // call actions\n * dispatch(api.actions.test());\n * dispatch(api.actions.testItem({id: 1}));\n * dispatch(api.actions.testModify({endpoint: \"upload-1\"}, {\n * body: JSON.stringify({title: \"Hello\", message: \"World\"})\n * }));\n * ```\n */\n\nexport default function reduxApi(config, baseConfig) {\n config || (config = {});\n\n const fetchHolder = {\n fetch: null,\n server: false,\n rootUrl: null,\n middlewareParser: null,\n options: {},\n responseHandler: null\n };\n\n const cfg = {\n use(key, value) {\n fetchHolder[key] = value;\n\n return this;\n },\n init(fetch, isServer = false, rootUrl) {\n /* eslint no-console: 0 */\n console.warn(\"Deprecated method, use `use` method\");\n this.use(\"fetch\", fetch);\n this.use(\"server\", isServer);\n this.use(\"rootUrl\", rootUrl);\n return this;\n },\n actions: {},\n reducers: {},\n events: {}\n };\n function fnConfigCallback(memo, value, key) {\n const opts =\n typeof value === \"object\"\n ? { ...defaultEndpointConfig, reducerName: key, ...value }\n : { ...defaultEndpointConfig, reducerName: key, url: value };\n\n if (opts.broadcast !== void 0) {\n /* eslint no-console: 0 */\n console.warn(\n \"Deprecated `broadcast` option. you shoud use `events`\" +\n \"to catch redux-api events (see https://github.com/3plus/redux-api/blob/master/DOCS.md#Events)\"\n );\n }\n\n const {\n url,\n urlOptions,\n options,\n transformer,\n broadcast,\n crud,\n reducerName,\n prefetch,\n postfetch,\n validation,\n helpers\n } = opts;\n\n const prefix = (baseConfig && baseConfig.prefix) || \"\";\n\n const ACTIONS = {\n actionFetch: `${PREFIX}@${prefix}${reducerName}`,\n actionSuccess: `${PREFIX}@${prefix}${reducerName}_success`,\n actionFail: `${PREFIX}@${prefix}${reducerName}_fail`,\n actionReset: `${PREFIX}@${prefix}${reducerName}_delete`,\n actionCache: `${PREFIX}@${prefix}${reducerName}_cache`,\n actionAbort: `${PREFIX}@${prefix}${reducerName}_abort`\n };\n\n const fetch = opts.fetch\n ? opts.fetch\n : function(...args) {\n return fetchHolder.fetch.apply(this, args);\n };\n\n const meta = {\n holder: fetchHolder,\n virtual: !!opts.virtual,\n actions: memo.actions,\n cache: cacheManager(opts.cache),\n urlOptions,\n fetch,\n broadcast,\n reducerName,\n prefetch,\n postfetch,\n validation,\n helpers,\n transformer,\n prefix,\n crud\n };\n\n memo.actions[key] = actionFn(url, key, options, ACTIONS, meta);\n\n if (!meta.virtual && !memo.reducers[reducerName]) {\n const data = transformer();\n const sync = false;\n const syncing = false;\n const loading = false;\n const initialState = opts.cache\n ? { sync, syncing, loading, data, cache: {}, request: null }\n : { sync, syncing, loading, data, request: null };\n\n const reducer = opts.reducer ? opts.reducer.bind(memo) : null;\n memo.reducers[reducerName] = reducerFn(initialState, ACTIONS, reducer);\n }\n memo.events[reducerName] = ACTIONS;\n return memo;\n }\n\n return Object.keys(config).reduce(\n (memo, key) => fnConfigCallback(memo, config[key], key, config),\n cfg\n );\n}\n\nreduxApi.transformers = transformers;\nreduxApi.async = async;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/reducerFn.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint no-case-declarations: 0 */
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = reducerFn;
|
|
8
|
+
var _cache = require("./utils/cache");
|
|
9
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
+
/**
|
|
16
|
+
* Reducer contructor
|
|
17
|
+
* @param {Object} initialState default initial state
|
|
18
|
+
* @param {Object} actions actions map
|
|
19
|
+
* @param {Function} reducer custom reducer function
|
|
20
|
+
* @return {Function} reducer function
|
|
21
|
+
*/
|
|
22
|
+
function reducerFn(initialState) {
|
|
23
|
+
var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
24
|
+
var reducer = arguments.length > 2 ? arguments[2] : undefined;
|
|
25
|
+
var actionFetch = actions.actionFetch,
|
|
26
|
+
actionSuccess = actions.actionSuccess,
|
|
27
|
+
actionFail = actions.actionFail,
|
|
28
|
+
actionReset = actions.actionReset,
|
|
29
|
+
actionCache = actions.actionCache,
|
|
30
|
+
actionAbort = actions.actionAbort;
|
|
31
|
+
return function () {
|
|
32
|
+
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
|
|
33
|
+
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
34
|
+
var request = action.request || {};
|
|
35
|
+
switch (action.type) {
|
|
36
|
+
case actionFetch:
|
|
37
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
38
|
+
request: request,
|
|
39
|
+
loading: true,
|
|
40
|
+
error: null,
|
|
41
|
+
syncing: !!action.syncing
|
|
42
|
+
});
|
|
43
|
+
case actionSuccess:
|
|
44
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
45
|
+
loading: false,
|
|
46
|
+
sync: true,
|
|
47
|
+
syncing: false,
|
|
48
|
+
error: null,
|
|
49
|
+
data: action.data
|
|
50
|
+
});
|
|
51
|
+
case actionFail:
|
|
52
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
53
|
+
loading: false,
|
|
54
|
+
error: action.error,
|
|
55
|
+
syncing: false
|
|
56
|
+
});
|
|
57
|
+
case actionReset:
|
|
58
|
+
var mutation = action.mutation;
|
|
59
|
+
return mutation === "sync" ? _objectSpread(_objectSpread({}, state), {}, {
|
|
60
|
+
request: null,
|
|
61
|
+
sync: false
|
|
62
|
+
}) : _objectSpread({}, initialState);
|
|
63
|
+
case actionAbort:
|
|
64
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
65
|
+
request: null,
|
|
66
|
+
loading: false,
|
|
67
|
+
syncing: false,
|
|
68
|
+
error: action.error
|
|
69
|
+
});
|
|
70
|
+
case actionCache:
|
|
71
|
+
var id = action.id,
|
|
72
|
+
data = action.data,
|
|
73
|
+
persisted = action.persisted;
|
|
74
|
+
var cacheExpire = state.cache[id] ? state.cache[id].expire : null;
|
|
75
|
+
var expire = (0, _cache.setExpire)(action.expire, cacheExpire);
|
|
76
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
77
|
+
cache: _objectSpread(_objectSpread({}, state.cache), {}, _defineProperty({}, id, {
|
|
78
|
+
expire: expire,
|
|
79
|
+
data: data,
|
|
80
|
+
persisted: persisted
|
|
81
|
+
}))
|
|
82
|
+
});
|
|
83
|
+
default:
|
|
84
|
+
return reducer ? reducer(state, action) : state;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
module.exports = exports.default;
|
|
89
|
+
//# sourceMappingURL=reducerFn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducerFn.js","names":["Object","defineProperty","exports","value","reducerFn","_cache","require","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","e","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","initialState","actions","undefined","reducer","actionFetch","actionSuccess","actionFail","actionReset","actionCache","actionAbort","state","action","request","type","loading","error","syncing","sync","data","mutation","id","persisted","cacheExpire","cache","expire","setExpire","module","default"],"sources":["../src/reducerFn.js"],"sourcesContent":["\"use strict\";\n\n/* eslint no-case-declarations: 0 */\nimport { setExpire } from \"./utils/cache\";\n\n/**\n * Reducer contructor\n * @param {Object} initialState default initial state\n * @param {Object} actions actions map\n * @param {Function} reducer custom reducer function\n * @return {Function} reducer function\n */\nexport default function reducerFn(initialState, actions = {}, reducer) {\n const {\n actionFetch,\n actionSuccess,\n actionFail,\n actionReset,\n actionCache,\n actionAbort\n } = actions;\n return (state = initialState, action) => {\n const request = action.request || {};\n switch (action.type) {\n case actionFetch:\n return {\n ...state,\n request,\n loading: true,\n error: null,\n syncing: !!action.syncing\n };\n case actionSuccess:\n return {\n ...state,\n loading: false,\n sync: true,\n syncing: false,\n error: null,\n data: action.data\n };\n case actionFail:\n return {\n ...state,\n loading: false,\n error: action.error,\n syncing: false\n };\n case actionReset:\n const { mutation } = action;\n return mutation === \"sync\"\n ? {\n ...state,\n request: null,\n sync: false\n }\n : { ...initialState };\n case actionAbort:\n return {\n ...state,\n request: null,\n loading: false,\n syncing: false,\n error: action.error\n };\n case actionCache:\n const { id, data, persisted } = action;\n const cacheExpire = state.cache[id] ? state.cache[id].expire : null;\n const expire = setExpire(action.expire, cacheExpire);\n return {\n ...state,\n cache: { ...state.cache, [id]: { expire, data, persisted } }\n };\n default:\n return reducer ? reducer(state, action) : state;\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var toString = Object.prototype.toString;
|
|
8
|
+
var OBJECT = "[object Object]";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Default responce transformens
|
|
12
|
+
*/
|
|
13
|
+
var _default = exports["default"] = {
|
|
14
|
+
array: function array(data) {
|
|
15
|
+
return !data ? [] : Array.isArray(data) ? data : [data];
|
|
16
|
+
},
|
|
17
|
+
object: function object(data) {
|
|
18
|
+
if (!data) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
return toString.call(data) === OBJECT ? data : {
|
|
22
|
+
data: data
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
module.exports = exports.default;
|
|
27
|
+
//# sourceMappingURL=transformers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.js","names":["Object","defineProperty","exports","value","toString","prototype","OBJECT","_default","array","data","Array","isArray","object","call","module","default"],"sources":["../src/transformers.js"],"sourcesContent":["\"use strict\";\n\nconst toString = Object.prototype.toString;\nconst OBJECT = \"[object Object]\";\n\n/**\n * Default responce transformens\n */\nexport default {\n array(data) {\n return !data ? [] : Array.isArray(data) ? data : [data];\n },\n object(data) {\n if (!data) {\n return {};\n }\n return toString.call(data) === OBJECT ? data : { data };\n }\n};\n"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA;AAEb,IAAME,QAAQ,GAAGJ,MAAM,CAACK,SAAS,CAACD,QAAQ;AAC1C,IAAME,MAAM,GAAG,iBAAiB;;AAEhC;AACA;AACA;AAFA,IAAAC,QAAA,GAAAL,OAAA,cAGe;EACbM,KAAK,WAAAA,MAACC,IAAI,EAAE;IACV,OAAO,CAACA,IAAI,GAAG,EAAE,GAAGC,KAAK,CAACC,OAAO,CAACF,IAAI,CAAC,GAAGA,IAAI,GAAG,CAACA,IAAI,CAAC;EACzD,CAAC;EACDG,MAAM,WAAAA,OAACH,IAAI,EAAE;IACX,IAAI,CAACA,IAAI,EAAE;MACT,OAAO,CAAC,CAAC;IACX;IACA,OAAOL,QAAQ,CAACS,IAAI,CAACJ,IAAI,CAAC,KAAKH,MAAM,GAAGG,IAAI,GAAG;MAAEA,IAAI,EAAJA;IAAK,CAAC;EACzD;AACF,CAAC;AAAAK,MAAA,CAAAZ,OAAA,GAAAA,OAAA,CAAAa,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = urlTransform;
|
|
7
|
+
var _qs = _interopRequireDefault(require("qs"));
|
|
8
|
+
var _url = require("url");
|
|
9
|
+
var _omit = _interopRequireDefault(require("./utils/omit"));
|
|
10
|
+
var _merge = _interopRequireDefault(require("./utils/merge"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
/* eslint no-useless-escape: 0 */
|
|
19
|
+
var rxClean = /(\(:[^\)]+\)|:[^\/]+\/?)/g;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Url modification
|
|
23
|
+
* @param {String} url url template
|
|
24
|
+
* @param {Object} params params for url template
|
|
25
|
+
* @param {Object} options transformation options, accepts +delimiter+, +arrayFormat+,
|
|
26
|
+
* +qsStringifyOptions+ and +qsParseOptions+
|
|
27
|
+
* @return {String} result url
|
|
28
|
+
*/
|
|
29
|
+
function urlTransform(url, params, options) {
|
|
30
|
+
if (!url) {
|
|
31
|
+
return "";
|
|
32
|
+
}
|
|
33
|
+
params || (params = {});
|
|
34
|
+
var usedKeys = {};
|
|
35
|
+
var urlWithParams = Object.keys(params).reduce(function (url, key) {
|
|
36
|
+
var value = params[key];
|
|
37
|
+
var rx = new RegExp("(\\(:".concat(key, "\\)|:").concat(key, ")(/?)"), "g");
|
|
38
|
+
return url.replace(rx, function (_, _1, slash) {
|
|
39
|
+
usedKeys[key] = value;
|
|
40
|
+
return value ? value + slash : value;
|
|
41
|
+
});
|
|
42
|
+
}, url);
|
|
43
|
+
if (!urlWithParams) {
|
|
44
|
+
return urlWithParams;
|
|
45
|
+
}
|
|
46
|
+
var _parse = (0, _url.parse)(urlWithParams),
|
|
47
|
+
protocol = _parse.protocol,
|
|
48
|
+
host = _parse.host,
|
|
49
|
+
path = _parse.path;
|
|
50
|
+
var cleanURL = host ? "".concat(protocol, "//").concat(host).concat(path.replace(rxClean, "")) : path.replace(rxClean, "");
|
|
51
|
+
var usedKeysArray = Object.keys(usedKeys);
|
|
52
|
+
if (usedKeysArray.length !== Object.keys(params).length) {
|
|
53
|
+
var urlObject = cleanURL.split("?");
|
|
54
|
+
options || (options = {});
|
|
55
|
+
var _options = options,
|
|
56
|
+
arrayFormat = _options.arrayFormat,
|
|
57
|
+
delimiter = _options.delimiter;
|
|
58
|
+
var qsParseOptions = _objectSpread({
|
|
59
|
+
arrayFormat: arrayFormat,
|
|
60
|
+
delimiter: delimiter
|
|
61
|
+
}, options.qsParseOptions);
|
|
62
|
+
var mergeParams = (0, _merge["default"])(urlObject[1] && _qs["default"].parse(urlObject[1], qsParseOptions), (0, _omit["default"])(params, usedKeysArray));
|
|
63
|
+
var qsStringifyOptions = _objectSpread({
|
|
64
|
+
arrayFormat: arrayFormat,
|
|
65
|
+
delimiter: delimiter
|
|
66
|
+
}, options.qsStringifyOptions);
|
|
67
|
+
var urlStringParams = _qs["default"].stringify(mergeParams, qsStringifyOptions);
|
|
68
|
+
return "".concat(urlObject[0], "?").concat(urlStringParams);
|
|
69
|
+
}
|
|
70
|
+
return cleanURL;
|
|
71
|
+
}
|
|
72
|
+
module.exports = exports.default;
|
|
73
|
+
//# sourceMappingURL=urlTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlTransform.js","names":["Object","defineProperty","exports","value","urlTransform","_qs","_interopRequireDefault","require","_url","_omit","_merge","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","r","t","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","rxClean","url","params","options","usedKeys","urlWithParams","reduce","key","rx","RegExp","concat","replace","_","_1","slash","_parse","parse","protocol","host","path","cleanURL","usedKeysArray","urlObject","split","_options","arrayFormat","delimiter","qsParseOptions","mergeParams","merge","qs","omit","qsStringifyOptions","urlStringParams","stringify","module","default"],"sources":["../src/urlTransform.js"],"sourcesContent":["\"use strict\";\n\nimport qs from \"qs\";\nimport { parse } from \"url\";\nimport omit from \"./utils/omit\";\nimport merge from \"./utils/merge\";\n\n/* eslint no-useless-escape: 0 */\nconst rxClean = /(\\(:[^\\)]+\\)|:[^\\/]+\\/?)/g;\n\n/**\n * Url modification\n * @param {String} url url template\n * @param {Object} params params for url template\n * @param {Object} options transformation options, accepts +delimiter+, +arrayFormat+,\n * +qsStringifyOptions+ and +qsParseOptions+\n * @return {String} result url\n */\nexport default function urlTransform(url, params, options) {\n if (!url) {\n return \"\";\n }\n params || (params = {});\n const usedKeys = {};\n const urlWithParams = Object.keys(params).reduce((url, key) => {\n const value = params[key];\n const rx = new RegExp(`(\\\\(:${key}\\\\)|:${key})(\\/?)`, \"g\");\n return url.replace(rx, (_, _1, slash) => {\n usedKeys[key] = value;\n return value ? value + slash : value;\n });\n }, url);\n\n if (!urlWithParams) {\n return urlWithParams;\n }\n const { protocol, host, path } = parse(urlWithParams);\n const cleanURL = host\n ? `${protocol}//${host}${path.replace(rxClean, \"\")}`\n : path.replace(rxClean, \"\");\n const usedKeysArray = Object.keys(usedKeys);\n if (usedKeysArray.length !== Object.keys(params).length) {\n const urlObject = cleanURL.split(\"?\");\n options || (options = {});\n const { arrayFormat, delimiter } = options;\n const qsParseOptions = {\n arrayFormat,\n delimiter,\n ...options.qsParseOptions\n };\n const mergeParams = merge(\n urlObject[1] && qs.parse(urlObject[1], qsParseOptions),\n omit(params, usedKeysArray)\n );\n const qsStringifyOptions = {\n arrayFormat,\n delimiter,\n ...options.qsStringifyOptions\n };\n const urlStringParams = qs.stringify(mergeParams, qsStringifyOptions);\n return `${urlObject[0]}?${urlStringParams}`;\n }\n return cleanURL;\n}\n"],"mappings":"AAAA,YAAY;;AAACA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,cAAAE,YAAA;AAEb,IAAAC,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAkC,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAE,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AAAA,SAAAK,QAAAR,CAAA,EAAAS,CAAA,QAAAC,CAAA,GAAArB,MAAA,CAAAsB,IAAA,CAAAX,CAAA,OAAAX,MAAA,CAAAuB,qBAAA,QAAAT,CAAA,GAAAd,MAAA,CAAAuB,qBAAA,CAAAZ,CAAA,GAAAS,CAAA,KAAAN,CAAA,GAAAA,CAAA,CAAAU,MAAA,WAAAJ,CAAA,WAAApB,MAAA,CAAAyB,wBAAA,CAAAd,CAAA,EAAAS,CAAA,EAAAM,UAAA,OAAAL,CAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,CAAA,EAAAP,CAAA,YAAAO,CAAA;AAAA,SAAAQ,cAAAlB,CAAA,aAAAS,CAAA,MAAAA,CAAA,GAAAU,SAAA,CAAAC,MAAA,EAAAX,CAAA,UAAAC,CAAA,WAAAS,SAAA,CAAAV,CAAA,IAAAU,SAAA,CAAAV,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAnB,MAAA,CAAAqB,CAAA,OAAAW,OAAA,WAAAZ,CAAA,IAAAa,eAAA,CAAAtB,CAAA,EAAAS,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAApB,MAAA,CAAAkC,yBAAA,GAAAlC,MAAA,CAAAmC,gBAAA,CAAAxB,CAAA,EAAAX,MAAA,CAAAkC,yBAAA,CAAAb,CAAA,KAAAF,OAAA,CAAAnB,MAAA,CAAAqB,CAAA,GAAAW,OAAA,WAAAZ,CAAA,IAAApB,MAAA,CAAAC,cAAA,CAAAU,CAAA,EAAAS,CAAA,EAAApB,MAAA,CAAAyB,wBAAA,CAAAJ,CAAA,EAAAD,CAAA,iBAAAT,CAAA;AAAA,SAAAsB,gBAAAtB,CAAA,EAAAS,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAgB,cAAA,CAAAhB,CAAA,MAAAT,CAAA,GAAAX,MAAA,CAAAC,cAAA,CAAAU,CAAA,EAAAS,CAAA,IAAAjB,KAAA,EAAAkB,CAAA,EAAAK,UAAA,MAAAW,YAAA,MAAAC,QAAA,UAAA3B,CAAA,CAAAS,CAAA,IAAAC,CAAA,EAAAV,CAAA;AAAA,SAAAyB,eAAAf,CAAA,QAAAkB,CAAA,GAAAC,YAAA,CAAAnB,CAAA,gCAAAR,OAAA,CAAA0B,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAnB,CAAA,EAAAD,CAAA,oBAAAP,OAAA,CAAAQ,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAV,CAAA,GAAAU,CAAA,CAAAN,MAAA,CAAA0B,WAAA,kBAAA9B,CAAA,QAAA4B,CAAA,GAAA5B,CAAA,CAAA+B,IAAA,CAAArB,CAAA,EAAAD,CAAA,gCAAAP,OAAA,CAAA0B,CAAA,UAAAA,CAAA,YAAAI,SAAA,yEAAAvB,CAAA,GAAAwB,MAAA,GAAAC,MAAA,EAAAxB,CAAA;AAElC;AACA,IAAMyB,OAAO,GAAG,2BAA2B;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS1C,YAAYA,CAAC2C,GAAG,EAAEC,MAAM,EAAEC,OAAO,EAAE;EACzD,IAAI,CAACF,GAAG,EAAE;IACR,OAAO,EAAE;EACX;EACAC,MAAM,KAAKA,MAAM,GAAG,CAAC,CAAC,CAAC;EACvB,IAAME,QAAQ,GAAG,CAAC,CAAC;EACnB,IAAMC,aAAa,GAAGnD,MAAM,CAACsB,IAAI,CAAC0B,MAAM,CAAC,CAACI,MAAM,CAAC,UAACL,GAAG,EAAEM,GAAG,EAAK;IAC7D,IAAMlD,KAAK,GAAG6C,MAAM,CAACK,GAAG,CAAC;IACzB,IAAMC,EAAE,GAAG,IAAIC,MAAM,SAAAC,MAAA,CAASH,GAAG,WAAAG,MAAA,CAAQH,GAAG,YAAU,GAAG,CAAC;IAC1D,OAAON,GAAG,CAACU,OAAO,CAACH,EAAE,EAAE,UAACI,CAAC,EAAEC,EAAE,EAAEC,KAAK,EAAK;MACvCV,QAAQ,CAACG,GAAG,CAAC,GAAGlD,KAAK;MACrB,OAAOA,KAAK,GAAGA,KAAK,GAAGyD,KAAK,GAAGzD,KAAK;IACtC,CAAC,CAAC;EACJ,CAAC,EAAE4C,GAAG,CAAC;EAEP,IAAI,CAACI,aAAa,EAAE;IAClB,OAAOA,aAAa;EACtB;EACA,IAAAU,MAAA,GAAiC,IAAAC,UAAK,EAACX,aAAa,CAAC;IAA7CY,QAAQ,GAAAF,MAAA,CAARE,QAAQ;IAAEC,IAAI,GAAAH,MAAA,CAAJG,IAAI;IAAEC,IAAI,GAAAJ,MAAA,CAAJI,IAAI;EAC5B,IAAMC,QAAQ,GAAGF,IAAI,MAAAR,MAAA,CACdO,QAAQ,QAAAP,MAAA,CAAKQ,IAAI,EAAAR,MAAA,CAAGS,IAAI,CAACR,OAAO,CAACX,OAAO,EAAE,EAAE,CAAC,IAChDmB,IAAI,CAACR,OAAO,CAACX,OAAO,EAAE,EAAE,CAAC;EAC7B,IAAMqB,aAAa,GAAGnE,MAAM,CAACsB,IAAI,CAAC4B,QAAQ,CAAC;EAC3C,IAAIiB,aAAa,CAACpC,MAAM,KAAK/B,MAAM,CAACsB,IAAI,CAAC0B,MAAM,CAAC,CAACjB,MAAM,EAAE;IACvD,IAAMqC,SAAS,GAAGF,QAAQ,CAACG,KAAK,CAAC,GAAG,CAAC;IACrCpB,OAAO,KAAKA,OAAO,GAAG,CAAC,CAAC,CAAC;IACzB,IAAAqB,QAAA,GAAmCrB,OAAO;MAAlCsB,WAAW,GAAAD,QAAA,CAAXC,WAAW;MAAEC,SAAS,GAAAF,QAAA,CAATE,SAAS;IAC9B,IAAMC,cAAc,GAAA5C,aAAA;MAClB0C,WAAW,EAAXA,WAAW;MACXC,SAAS,EAATA;IAAS,GACNvB,OAAO,CAACwB,cAAc,CAC1B;IACD,IAAMC,WAAW,GAAG,IAAAC,iBAAK,EACvBP,SAAS,CAAC,CAAC,CAAC,IAAIQ,cAAE,CAACd,KAAK,CAACM,SAAS,CAAC,CAAC,CAAC,EAAEK,cAAc,CAAC,EACtD,IAAAI,gBAAI,EAAC7B,MAAM,EAAEmB,aAAa,CAC5B,CAAC;IACD,IAAMW,kBAAkB,GAAAjD,aAAA;MACtB0C,WAAW,EAAXA,WAAW;MACXC,SAAS,EAATA;IAAS,GACNvB,OAAO,CAAC6B,kBAAkB,CAC9B;IACD,IAAMC,eAAe,GAAGH,cAAE,CAACI,SAAS,CAACN,WAAW,EAAEI,kBAAkB,CAAC;IACrE,UAAAtB,MAAA,CAAUY,SAAS,CAAC,CAAC,CAAC,OAAAZ,MAAA,CAAIuB,eAAe;EAC3C;EACA,OAAOb,QAAQ;AACjB;AAACe,MAAA,CAAA/E,OAAA,GAAAA,OAAA,CAAAgF,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MockNowDate = exports.Manager = void 0;
|
|
7
|
+
exports["default"] = _default;
|
|
8
|
+
exports.getCacheManager = getCacheManager;
|
|
9
|
+
exports.setExpire = setExpire;
|
|
10
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
+
var MockNowDate = exports.MockNowDate = {
|
|
17
|
+
date: undefined,
|
|
18
|
+
push: function push(date) {
|
|
19
|
+
this.date = date;
|
|
20
|
+
},
|
|
21
|
+
pop: function pop() {
|
|
22
|
+
if (this.date) {
|
|
23
|
+
var d = this.date;
|
|
24
|
+
this.date = undefined;
|
|
25
|
+
return new Date(d);
|
|
26
|
+
} else {
|
|
27
|
+
return new Date();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var Manager = exports.Manager = {
|
|
32
|
+
expire: false,
|
|
33
|
+
getData: function getData(cache) {
|
|
34
|
+
if (!cache) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
var expire = cache.expire,
|
|
38
|
+
data = cache.data;
|
|
39
|
+
if (expire === false || expire === undefined || expire === null) {
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
if (expire instanceof Date) {
|
|
43
|
+
if (expire.valueOf() > MockNowDate.pop().valueOf()) {
|
|
44
|
+
return data;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
id: function id(params) {
|
|
49
|
+
if (!params) {
|
|
50
|
+
return "";
|
|
51
|
+
}
|
|
52
|
+
return Object.keys(params).reduce(function (memo, key) {
|
|
53
|
+
return memo + "".concat(key, "=").concat(params[key], ";");
|
|
54
|
+
}, "");
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
function setExpire(value, oldDate) {
|
|
58
|
+
var expire = value;
|
|
59
|
+
if (typeof expire === "number" || expire instanceof Number) {
|
|
60
|
+
var d = MockNowDate.pop();
|
|
61
|
+
d.setSeconds(d.getSeconds() + expire);
|
|
62
|
+
expire = d;
|
|
63
|
+
}
|
|
64
|
+
if (oldDate instanceof Date && expire instanceof Date) {
|
|
65
|
+
if (expire.valueOf() < oldDate.valueOf()) {
|
|
66
|
+
expire = oldDate;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return expire;
|
|
70
|
+
}
|
|
71
|
+
function getCacheManager(expire, cache) {
|
|
72
|
+
if (expire !== undefined) {
|
|
73
|
+
var ret = _objectSpread(_objectSpread({}, Manager), cache);
|
|
74
|
+
if (ret.expire !== false) {
|
|
75
|
+
ret.expire = setExpire(expire, ret.expire);
|
|
76
|
+
}
|
|
77
|
+
return ret;
|
|
78
|
+
} else if (cache) {
|
|
79
|
+
return _objectSpread(_objectSpread({}, Manager), cache);
|
|
80
|
+
} else {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function _default(cache) {
|
|
85
|
+
if (!cache) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
if (cache === true) {
|
|
89
|
+
return Manager;
|
|
90
|
+
} else {
|
|
91
|
+
return _objectSpread(_objectSpread({}, Manager), cache);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","names":["MockNowDate","exports","date","undefined","push","pop","d","Date","Manager","expire","getData","cache","data","valueOf","id","params","Object","keys","reduce","memo","key","concat","setExpire","value","oldDate","Number","setSeconds","getSeconds","getCacheManager","ret","_objectSpread","_default"],"sources":["../../src/utils/cache.js"],"sourcesContent":["export const MockNowDate = {\n date: undefined,\n push(date) {\n this.date = date;\n },\n pop() {\n if (this.date) {\n const d = this.date;\n this.date = undefined;\n return new Date(d);\n } else {\n return new Date();\n }\n }\n};\n\nexport const Manager = {\n expire: false,\n getData(cache) {\n if (!cache) {\n return;\n }\n const { expire, data } = cache;\n if (expire === false || expire === undefined || expire === null) {\n return data;\n }\n if (expire instanceof Date) {\n if (expire.valueOf() > MockNowDate.pop().valueOf()) {\n return data;\n }\n }\n },\n id(params) {\n if (!params) {\n return \"\";\n }\n return Object.keys(params).reduce(\n (memo, key) => memo + `${key}=${params[key]};`,\n \"\"\n );\n }\n};\n\nexport function setExpire(value, oldDate) {\n let expire = value;\n if (typeof expire === \"number\" || expire instanceof Number) {\n const d = MockNowDate.pop();\n d.setSeconds(d.getSeconds() + expire);\n expire = d;\n }\n if (oldDate instanceof Date && expire instanceof Date) {\n if (expire.valueOf() < oldDate.valueOf()) {\n expire = oldDate;\n }\n }\n return expire;\n}\n\nexport function getCacheManager(expire, cache) {\n if (expire !== undefined) {\n const ret = { ...Manager, ...cache };\n if (ret.expire !== false) {\n ret.expire = setExpire(expire, ret.expire);\n }\n return ret;\n } else if (cache) {\n return { ...Manager, ...cache };\n } else {\n return null;\n }\n}\n\nexport default function(cache) {\n if (!cache) {\n return null;\n }\n if (cache === true) {\n return Manager;\n } else {\n return { ...Manager, ...cache };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|