wrapito 9.4.0 → 10.0.0-beta1

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/models.d.ts DELETED
@@ -1,53 +0,0 @@
1
- import React from 'react';
2
- interface WrapRequest extends Request {
3
- _bodyInit?: string;
4
- }
5
- interface WrapResponse extends Response {
6
- path: string;
7
- method?: string;
8
- host?: string;
9
- responseBody?: object;
10
- requestBody?: object;
11
- multipleResponses?: WrapResponse[];
12
- catchParams?: boolean;
13
- delay?: number;
14
- hasBeenReturned?: boolean;
15
- }
16
- interface Wrap {
17
- withNetwork: (responses: WrapResponse[]) => Wrap;
18
- atPath: (path: string, historyState: object) => Wrap;
19
- withProps: (props: object) => Wrap;
20
- debugRequests: () => Wrap;
21
- mount: () => object;
22
- }
23
- interface WrapOptions {
24
- Component: typeof React.Component;
25
- responses: WrapResponse[];
26
- props: object;
27
- path: string;
28
- historyState?: object;
29
- hasPath: boolean;
30
- debug: boolean;
31
- }
32
- interface WrapExtensionAPI {
33
- addResponses: (responses: WrapResponse[]) => void;
34
- }
35
- declare type Extension = <T>(extensionAPI: WrapExtensionAPI, args: T) => Wrap;
36
- declare type Extensions = {
37
- [key: string]: Extension;
38
- };
39
- declare type Component = React.ReactElement<any, any>;
40
- declare type Mount = (component: Component) => HTMLDivElement;
41
- interface Config {
42
- defaultHost: string;
43
- mount: Mount;
44
- extend: Extensions;
45
- changeRoute: (path: string) => void;
46
- history?: BrowserHistory;
47
- portal?: string;
48
- }
49
- interface BrowserHistory extends History {
50
- push: (path: string, historyState?: object) => void;
51
- }
52
- export { WrapRequest, WrapResponse as Response, Config, Mount, Component, BrowserHistory, Extension, Extensions, WrapExtensionAPI, Wrap, WrapOptions, };
53
- //# sourceMappingURL=models.d.ts.map
package/models.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,WAAY,SAAQ,OAAO;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,UAAU,YAAa,SAAQ,QAAQ;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAA;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;IAChD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IACpD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,MAAM,CAAA;CACpB;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,CAAA;IACjC,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,UAAU,gBAAgB;IACxB,YAAY,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;CAClD;AAED,aAAK,SAAS,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAErE,aAAK,UAAU,GAAG;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB,CAAA;AAED,aAAK,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE7C,aAAK,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,KAAK,cAAc,CAAA;AAErD,UAAU,MAAM;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,cAAe,SAAQ,OAAO;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACpD;AAED,OAAO,EACL,WAAW,EACX,YAAY,IAAI,QAAQ,EACxB,MAAM,EACN,KAAK,EACL,SAAS,EACT,cAAc,EACd,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,IAAI,EACJ,WAAW,GACZ,CAAA"}
package/models.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=models.js.map
package/models.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":""}
package/options.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { WrapOptions } from "./models";
2
- declare let options: WrapOptions;
3
- declare const updateOptions: (updatedOptions: WrapOptions) => void;
4
- declare const getOptions: () => WrapOptions;
5
- export { options, updateOptions, getOptions };
6
- //# sourceMappingURL=options.d.ts.map
package/options.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,QAAA,IAAI,OAAO,EAAE,WAAW,CAAA;AAExB,QAAA,MAAM,aAAa,mBAAoB,WAAW,SAKjD,CAAA;AAED,QAAA,MAAM,UAAU,QAAQ,WAA+B,CAAA;AAEvD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAA"}
package/options.js DELETED
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.getOptions = exports.updateOptions = exports.options = void 0;
15
- var options;
16
- exports.options = options;
17
- var updateOptions = function (updatedOptions) {
18
- exports.options = options = __assign(__assign({}, options), updatedOptions);
19
- };
20
- exports.updateOptions = updateOptions;
21
- var getOptions = function () { return (__assign({}, options)); };
22
- exports.getOptions = getOptions;
23
- //# sourceMappingURL=options.js.map
package/options.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,IAAI,OAAoB,CAAA;AAWf,0BAAO;AAThB,IAAM,aAAa,GAAG,UAAC,cAA2B;IAChD,kBAAA,OAAO,yBACF,OAAO,GACP,cAAc,CAClB,CAAA;AACH,CAAC,CAAA;AAIiB,sCAAa;AAF/B,IAAM,UAAU,GAAG,cAAoB,OAAA,cAAM,OAAO,EAAG,EAAhB,CAAgB,CAAA;AAEtB,gCAAU"}
@@ -1,2 +0,0 @@
1
- export function getRequestMatcher(request: any): (mockedRequest: any) => boolean;
2
- //# sourceMappingURL=requestMatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestMatcher.d.ts","sourceRoot":"","sources":["../src/requestMatcher.js"],"names":[],"mappings":"AAIA,iFAyBC"}
package/requestMatcher.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRequestMatcher = void 0;
7
- var object_hash_1 = __importDefault(require("object-hash"));
8
- var config_1 = require("./config");
9
- var getRequestMatcher = function (request) { return function (mockedRequest) {
10
- var _a = mockedRequest.method, method = _a === void 0 ? 'GET' : _a, path = mockedRequest.path, _b = mockedRequest.host, host = _b === void 0 ? config_1.getConfig().defaultHost : _b, _c = mockedRequest.requestBody, requestBody = _c === void 0 ? undefined : _c, catchParams = mockedRequest.catchParams;
11
- var url = host + path;
12
- var isQueryParamsSensitive = !config_1.getConfig().handleQueryParams || catchParams;
13
- var mockedRequestHash = object_hash_1.default({
14
- url: isQueryParamsSensitive ? url : url.split('?')[0],
15
- method: method.toUpperCase(),
16
- requestBody: requestBody,
17
- });
18
- var hasBody = !!request._bodyInit;
19
- var requestHash = object_hash_1.default({
20
- url: isQueryParamsSensitive ? request.url : request.url.split('?')[0],
21
- method: request.method,
22
- requestBody: hasBody ? JSON.parse(request._bodyInit) : undefined,
23
- });
24
- return requestHash === mockedRequestHash;
25
- }; };
26
- exports.getRequestMatcher = getRequestMatcher;
27
- //# sourceMappingURL=requestMatcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requestMatcher.js","sourceRoot":"","sources":["../src/requestMatcher.js"],"names":[],"mappings":";;;;;;AAAA,4DAA8B;AAE9B,mCAAoC;AAEpC,IAAM,iBAAiB,GAAG,UAAA,OAAO,IAAI,OAAA,UAAA,aAAa;IAE9C,IAAA,KAKE,aAAa,OALD,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,IAAI,GAIF,aAAa,KAJX,EACJ,KAGE,aAAa,KAHe,EAA9B,IAAI,mBAAG,kBAAS,EAAE,CAAC,WAAW,KAAA,EAC9B,KAEE,aAAa,YAFQ,EAAvB,WAAW,mBAAG,SAAS,KAAA,EACvB,WAAW,GACT,aAAa,YADJ,CACI;IAEjB,IAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;IACvB,IAAM,sBAAsB,GAAG,CAAC,kBAAS,EAAE,CAAC,iBAAiB,IAAI,WAAW,CAAA;IAE5E,IAAM,iBAAiB,GAAG,qBAAI,CAAC;QAC7B,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;QAC5B,WAAW,EAAE,WAAW;KACzB,CAAC,CAAA;IAEF,IAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;IACnC,IAAM,WAAW,GAAG,qBAAI,CAAC;QACvB,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC,CAAA;IACF,OAAO,WAAW,KAAK,iBAAiB,CAAA;AAC1C,CAAC,EAzBoC,CAyBpC,CAAA;AAEQ,8CAAiB"}
package/wrap.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- import { Wrap } from './models';
3
- declare const wrap: (Component: typeof React.Component) => Wrap;
4
- export { wrap };
5
- //# sourceMappingURL=wrap.d.ts.map
package/wrap.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAEL,IAAI,EAIL,MAAM,UAAU,CAAA;AAWjB,QAAA,MAAM,IAAI,yCAAwC,IAWjD,CAAA;AAoHD,OAAO,EAAE,IAAI,EAAE,CAAA"}
package/wrap.js DELETED
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
14
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
15
- to[j] = from[i];
16
- return to;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.wrap = void 0;
20
- var jsx_runtime_1 = require("react/jsx-runtime");
21
- var mockNetwork_1 = require("./mockNetwork");
22
- var config_1 = require("./config");
23
- var options_1 = require("./options");
24
- beforeEach(function () {
25
- global.fetch = jest.fn();
26
- });
27
- afterEach(function () {
28
- var mockedFetch = global.fetch;
29
- mockedFetch.mockRestore();
30
- });
31
- var wrap = function (Component) {
32
- options_1.updateOptions({
33
- Component: Component,
34
- responses: [],
35
- props: {},
36
- path: '',
37
- hasPath: false,
38
- debug: process.env.npm_config_debugRequests === 'true',
39
- });
40
- return wrapWith();
41
- };
42
- exports.wrap = wrap;
43
- var wrapWith = function () {
44
- var extensions = extendWith();
45
- return __assign({ withProps: withProps, withNetwork: withNetwork, atPath: atPath, debugRequests: debugRequests, mount: getMount }, extensions);
46
- };
47
- var addResponses = function (newResponses) {
48
- var options = options_1.getOptions();
49
- var responses = __spreadArray(__spreadArray([], options.responses), newResponses);
50
- options_1.updateOptions(__assign(__assign({}, options), { responses: responses }));
51
- };
52
- var applyExtension = function (args, extension) {
53
- var wrapExtensionAPI = { addResponses: addResponses };
54
- extension(wrapExtensionAPI, args);
55
- return wrapWith();
56
- };
57
- var buildExtensions = function (alreadyExtended, extensionName) {
58
- var _a;
59
- var extensions = config_1.getConfig().extend;
60
- var extension = extensions[extensionName];
61
- return __assign(__assign({}, alreadyExtended), (_a = {}, _a[extensionName] = function () {
62
- var args = [];
63
- for (var _i = 0; _i < arguments.length; _i++) {
64
- args[_i] = arguments[_i];
65
- }
66
- return applyExtension(args, extension);
67
- }, _a));
68
- };
69
- var extendWith = function () {
70
- var extensions = config_1.getConfig().extend;
71
- var extensionNames = Object.keys(extensions);
72
- return extensionNames.reduce(buildExtensions, {});
73
- };
74
- var withProps = function (props) {
75
- var options = options_1.getOptions();
76
- options_1.updateOptions(__assign(__assign({}, options), { props: props }));
77
- return wrapWith();
78
- };
79
- var withNetwork = function (responses) {
80
- if (responses === void 0) { responses = []; }
81
- var options = options_1.getOptions();
82
- var listOfResponses = Array.isArray(responses) ? responses : [responses];
83
- options_1.updateOptions(__assign(__assign({}, options), { responses: __spreadArray(__spreadArray([], options.responses), listOfResponses) }));
84
- return wrapWith();
85
- };
86
- var atPath = function (path, historyState) {
87
- var options = options_1.getOptions();
88
- options_1.updateOptions(__assign(__assign({}, options), { historyState: historyState, path: path, hasPath: true }));
89
- return wrapWith();
90
- };
91
- var debugRequests = function () {
92
- var options = options_1.getOptions();
93
- options_1.updateOptions(__assign(__assign({}, options), { debug: true }));
94
- return wrapWith();
95
- };
96
- var getMount = function () {
97
- var _a = config_1.getConfig(), portal = _a.portal, changeRoute = _a.changeRoute, history = _a.history, mount = _a.mount;
98
- var _b = options_1.getOptions(), Component = _b.Component, props = _b.props, responses = _b.responses, path = _b.path, hasPath = _b.hasPath, debug = _b.debug, historyState = _b.historyState;
99
- if (portal) {
100
- setupPortal(portal);
101
- }
102
- if (hasPath && history) {
103
- console.warn('wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead.');
104
- console.warn('Read about changeRoute in: https://github.com/mercadona/wrapito#changeRoute');
105
- history.push(path, historyState);
106
- }
107
- if (hasPath && !history) {
108
- changeRoute(path);
109
- }
110
- mockNetwork_1.mockNetwork(responses, debug);
111
- return mount(jsx_runtime_1.jsx(Component, __assign({}, props), void 0));
112
- };
113
- var setupPortal = function (portalRootId) {
114
- if (document.getElementById(portalRootId)) {
115
- return;
116
- }
117
- var portalRoot = document.createElement('div');
118
- portalRoot.setAttribute('id', portalRootId);
119
- document.body.appendChild(portalRoot);
120
- };
121
- //# sourceMappingURL=wrap.js.map
package/wrap.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"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"}