@data-client/rest 0.14.1 → 0.14.3
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 +5 -5
- package/dist/index.js +6 -5
- package/dist/index.umd.min.js +1 -1
- package/legacy/index.js +3 -2
- package/legacy/resource.js +140 -0
- package/legacy/resourceExtendable.js +1 -1
- package/legacy/resourceTypes.js +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -2
- package/lib/resource.d.ts +7 -0
- package/lib/resource.d.ts.map +1 -0
- package/lib/resource.js +162 -0
- package/lib/resourceExtendable.d.ts +1 -1
- package/lib/resourceExtendable.js +1 -1
- package/lib/resourceTypes.d.ts +17 -17
- package/lib/resourceTypes.d.ts.map +1 -1
- package/lib/resourceTypes.js +1 -1
- package/package.json +2 -2
- package/src/__tests__/Resource.test.ts +6 -6
- package/src/__tests__/__snapshots__/createResource.test.ts.snap +7 -7
- package/src/__tests__/createResource.test.ts +14 -14
- package/src/index.ts +2 -1
- package/src/{createResource.ts → resource.ts} +4 -4
- package/src/resourceExtendable.ts +1 -1
- package/src/resourceTypes.ts +17 -17
- package/ts4.0/index.d.ts +2 -1
- package/ts4.0/resource.d.ts +7 -0
- package/ts4.0/resourceTypes.d.ts +17 -17
- package/ts4.1/index.d.ts +2 -1
- package/ts4.1/resource.d.ts +7 -0
- package/ts4.1/resourceTypes.d.ts +17 -17
- package/legacy/createResource.js +0 -140
- package/lib/createResource.d.ts +0 -7
- package/lib/createResource.d.ts.map +0 -1
- package/lib/createResource.js +0 -162
- package/ts4.0/createResource.d.ts +0 -7
- package/ts4.1/createResource.d.ts +0 -7
package/lib/resource.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { schema } from '@data-client/endpoint';
|
|
2
|
+
import RestEndpoint from './RestEndpoint.js';
|
|
3
|
+
import { shortenPath } from './RestHelpers.js';
|
|
4
|
+
const {
|
|
5
|
+
Invalidate,
|
|
6
|
+
Collection: BaseCollection
|
|
7
|
+
} = schema;
|
|
8
|
+
|
|
9
|
+
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
10
|
+
*
|
|
11
|
+
* @see https://dataclient.io/rest/api/resource
|
|
12
|
+
*/
|
|
13
|
+
export default function resource({
|
|
14
|
+
path,
|
|
15
|
+
schema,
|
|
16
|
+
Endpoint = RestEndpoint,
|
|
17
|
+
Collection = BaseCollection,
|
|
18
|
+
optimistic,
|
|
19
|
+
paginationField,
|
|
20
|
+
...extraOptions
|
|
21
|
+
}) {
|
|
22
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
23
|
+
// if they lowercase and it looks like they meant to use upper-case version
|
|
24
|
+
if ('endpoint' in extraOptions && Endpoint === RestEndpoint && typeof extraOptions['endpoint'] === 'function' && extraOptions['endpoint'] && Object.prototype.isPrototypeOf.call(RestEndpoint.prototype, extraOptions['endpoint'].prototype)) {
|
|
25
|
+
console.warn(`You passed 'endpoint' option; did you mean to use Endpoint?
|
|
26
|
+
https://dataclient.io/rest/api/resource#endpoint
|
|
27
|
+
This parameter must be capitalized.
|
|
28
|
+
|
|
29
|
+
This warning will not show in production.`);
|
|
30
|
+
}
|
|
31
|
+
// if they lowercase and it looks like they meant to use upper-case version
|
|
32
|
+
if ('collection' in extraOptions && Collection === BaseCollection && typeof extraOptions['collection'] === 'function' && extraOptions['collection'] && Object.prototype.isPrototypeOf.call(BaseCollection.prototype, extraOptions['collection'].prototype)) {
|
|
33
|
+
console.warn(`You passed 'collection' option; did you mean to use Collection?
|
|
34
|
+
https://dataclient.io/rest/api/resource#collection
|
|
35
|
+
This parameter must be capitalized.
|
|
36
|
+
|
|
37
|
+
This warning will not show in production.`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const shortenedPath = shortenPath(path);
|
|
41
|
+
const getName = name => `${schema == null ? void 0 : schema.name}.${name}`;
|
|
42
|
+
// this accounts for derivative endpoints
|
|
43
|
+
function extendMember(extended, key, options) {
|
|
44
|
+
extended[key] = extended[key].extend(options);
|
|
45
|
+
}
|
|
46
|
+
const extraMutateOptions = {
|
|
47
|
+
...extraOptions
|
|
48
|
+
};
|
|
49
|
+
const extraPartialOptions = {
|
|
50
|
+
...extraOptions
|
|
51
|
+
};
|
|
52
|
+
const get = new Endpoint({
|
|
53
|
+
...extraOptions,
|
|
54
|
+
path,
|
|
55
|
+
schema,
|
|
56
|
+
name: getName('get')
|
|
57
|
+
});
|
|
58
|
+
if (optimistic) {
|
|
59
|
+
extraMutateOptions.getOptimisticResponse = optimisticUpdate;
|
|
60
|
+
// TODO: Check that schema is a queryable, otherwise this doesn't make sense
|
|
61
|
+
extraPartialOptions.getOptimisticResponse = optimisticPartial(schema);
|
|
62
|
+
}
|
|
63
|
+
const getList = new Endpoint({
|
|
64
|
+
...extraMutateOptions,
|
|
65
|
+
paginationField: paginationField,
|
|
66
|
+
path: shortenedPath,
|
|
67
|
+
schema: new Collection([schema]),
|
|
68
|
+
name: getName('getList')
|
|
69
|
+
});
|
|
70
|
+
const ret = {
|
|
71
|
+
get,
|
|
72
|
+
getList,
|
|
73
|
+
// TODO(deprecated): remove this once we remove creates
|
|
74
|
+
create: getList.push.extend({
|
|
75
|
+
name: getName('create')
|
|
76
|
+
}),
|
|
77
|
+
update: new Endpoint({
|
|
78
|
+
...extraMutateOptions,
|
|
79
|
+
path,
|
|
80
|
+
schema,
|
|
81
|
+
method: 'PUT',
|
|
82
|
+
name: getName('update')
|
|
83
|
+
}),
|
|
84
|
+
partialUpdate: new Endpoint({
|
|
85
|
+
...extraPartialOptions,
|
|
86
|
+
path,
|
|
87
|
+
schema,
|
|
88
|
+
method: 'PATCH',
|
|
89
|
+
name: getName('partialUpdate')
|
|
90
|
+
}),
|
|
91
|
+
delete: new Endpoint({
|
|
92
|
+
...extraMutateOptions,
|
|
93
|
+
path,
|
|
94
|
+
schema: schema.process ? new Invalidate(schema) : schema,
|
|
95
|
+
method: 'DELETE',
|
|
96
|
+
name: getName('delete'),
|
|
97
|
+
process(res, params) {
|
|
98
|
+
return res && Object.keys(res).length ? res : params;
|
|
99
|
+
},
|
|
100
|
+
getOptimisticResponse: optimistic ? optimisticDelete : undefined
|
|
101
|
+
}),
|
|
102
|
+
extend(...args) {
|
|
103
|
+
if (typeof args[0] === 'string') {
|
|
104
|
+
const [key, options] = args;
|
|
105
|
+
if (key in this) {
|
|
106
|
+
const extended = {
|
|
107
|
+
...this
|
|
108
|
+
};
|
|
109
|
+
extendMember(extended, key, options);
|
|
110
|
+
return extended;
|
|
111
|
+
} else {
|
|
112
|
+
return {
|
|
113
|
+
...this,
|
|
114
|
+
[key]: this.get.extend(options)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
} else if (typeof args[0] === 'function') {
|
|
118
|
+
const extended = args[0](this);
|
|
119
|
+
return {
|
|
120
|
+
...this,
|
|
121
|
+
...extended
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
const overrides = args[0];
|
|
125
|
+
const extended = {
|
|
126
|
+
...this
|
|
127
|
+
};
|
|
128
|
+
for (const key in overrides) {
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
extendMember(extended, key, overrides[key]);
|
|
132
|
+
}
|
|
133
|
+
return extended;
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
return ret;
|
|
137
|
+
}
|
|
138
|
+
function optimisticUpdate(snap, params, body) {
|
|
139
|
+
return {
|
|
140
|
+
...params,
|
|
141
|
+
...ensurePojo(body)
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
function optimisticPartial(schema) {
|
|
145
|
+
return function (snap, params, body) {
|
|
146
|
+
const data = snap.get(schema, params);
|
|
147
|
+
if (!data) throw snap.abort;
|
|
148
|
+
return {
|
|
149
|
+
...params,
|
|
150
|
+
...data,
|
|
151
|
+
// even tho we don't always have two arguments, the extra one will simply be undefined which spreads fine
|
|
152
|
+
...ensurePojo(body)
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function optimisticDelete(snap, params) {
|
|
157
|
+
return params;
|
|
158
|
+
}
|
|
159
|
+
function ensurePojo(body) {
|
|
160
|
+
return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsInBhdGgiLCJFbmRwb2ludCIsIm9wdGltaXN0aWMiLCJwYWdpbmF0aW9uRmllbGQiLCJleHRyYU9wdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJyZXQiLCJjcmVhdGUiLCJwdXNoIiwidXBkYXRlIiwibWV0aG9kIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwidW5kZWZpbmVkIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImRhdGEiLCJhYm9ydCIsIkZvcm1EYXRhIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IFNuYXBzaG90SW50ZXJmYWNlLCBRdWVyeWFibGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBvcHRpbWlzdGljLFxuICBwYWdpbmF0aW9uRmllbGQsXG4gIC4uLmV4dHJhT3B0aW9uc1xufTogUmVhZG9ubHk8Tz4gJiBSZXNvdXJjZU9wdGlvbnMpOiBSZXNvdXJjZTxPPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gaWYgdGhleSBsb3dlcmNhc2UgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSBtZWFudCB0byB1c2UgdXBwZXItY2FzZSB2ZXJzaW9uXG4gICAgaWYgKFxuICAgICAgJ2VuZHBvaW50JyBpbiBleHRyYU9wdGlvbnMgJiZcbiAgICAgIEVuZHBvaW50ID09PSBSZXN0RW5kcG9pbnQgJiZcbiAgICAgIHR5cGVvZiBleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIFJlc3RFbmRwb2ludC5wcm90b3R5cGUsXG4gICAgICAgIChleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gYXMgYW55KS5wcm90b3R5cGUsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBZb3UgcGFzc2VkICdlbmRwb2ludCcgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIEVuZHBvaW50P1xuaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2VuZHBvaW50XG5UaGlzIHBhcmFtZXRlciBtdXN0IGJlIGNhcGl0YWxpemVkLlxuXG5UaGlzIHdhcm5pbmcgd2lsbCBub3Qgc2hvdyBpbiBwcm9kdWN0aW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBpZiB0aGV5IGxvd2VyY2FzZSBhbmQgaXQgbG9va3MgbGlrZSB0aGV5IG1lYW50IHRvIHVzZSB1cHBlci1jYXNlIHZlcnNpb25cbiAgICBpZiAoXG4gICAgICAnY29sbGVjdGlvbicgaW4gZXh0cmFPcHRpb25zICYmXG4gICAgICBDb2xsZWN0aW9uID09PSBCYXNlQ29sbGVjdGlvbiAmJlxuICAgICAgdHlwZW9mIGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIEJhc2VDb2xsZWN0aW9uLnByb3RvdHlwZSxcbiAgICAgICAgKGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddIGFzIGFueSkucHJvdG90eXBlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgWW91IHBhc3NlZCAnY29sbGVjdGlvbicgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIENvbGxlY3Rpb24/XG5odHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjY29sbGVjdGlvblxuVGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBjYXBpdGFsaXplZC5cblxuVGhpcyB3YXJuaW5nIHdpbGwgbm90IHNob3cgaW4gcHJvZHVjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2hvcnRlbmVkUGF0aCA9IHNob3J0ZW5QYXRoKHBhdGgpO1xuICBjb25zdCBnZXROYW1lID0gKG5hbWU6IHN0cmluZykgPT4gYCR7KHNjaGVtYSBhcyBhbnkpPy5uYW1lfS4ke25hbWV9YDtcbiAgLy8gdGhpcyBhY2NvdW50cyBmb3IgZGVyaXZhdGl2ZSBlbmRwb2ludHNcbiAgZnVuY3Rpb24gZXh0ZW5kTWVtYmVyKGV4dGVuZGVkOiBhbnksIGtleTogc3RyaW5nLCBvcHRpb25zOiBhbnkpIHtcbiAgICBleHRlbmRlZFtrZXldID0gZXh0ZW5kZWRba2V5XS5leHRlbmQob3B0aW9ucyk7XG4gIH1cblxuICBjb25zdCBleHRyYU11dGF0ZU9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBleHRyYVBhcnRpYWxPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PiA9XG4gICAgbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lOiBnZXROYW1lKCdnZXQnKSxcbiAgICB9KSBhcyBhbnk7XG4gIGlmIChvcHRpbWlzdGljKSB7XG4gICAgKGV4dHJhTXV0YXRlT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNVcGRhdGU7XG4gICAgLy8gVE9ETzogQ2hlY2sgdGhhdCBzY2hlbWEgaXMgYSBxdWVyeWFibGUsIG90aGVyd2lzZSB0aGlzIGRvZXNuJ3QgbWFrZSBzZW5zZVxuICAgIChleHRyYVBhcnRpYWxPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1BhcnRpYWwoXG4gICAgICBzY2hlbWEgYXMgYW55LFxuICAgICk7XG4gIH1cbiAgY29uc3QgZ2V0TGlzdCA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgIHBhZ2luYXRpb25GaWVsZDogcGFnaW5hdGlvbkZpZWxkIGFzIHN0cmluZyxcbiAgICBwYXRoOiBzaG9ydGVuZWRQYXRoLFxuICAgIHNjaGVtYTogbmV3IENvbGxlY3Rpb24oW3NjaGVtYSBhcyBhbnldKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IChzY2hlbWEgYXMgYW55KS5wcm9jZXNzID8gbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSkgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKHNjaGVtYTogUXVlcnlhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gc25hcC5nZXQoc2NoZW1hLCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgc25hcC5hYm9ydDtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgP1xuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgIDogYm9keTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLHVCQUF1QjtBQVM5QyxPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFFOUMsTUFBTTtFQUFFQyxVQUFVO0VBQUVDLFVBQVUsRUFBRUM7QUFBZSxDQUFDLEdBQUdMLE1BQU07O0FBRXpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxTQUFTTSxRQUFRQSxDQUE2QjtFQUMzREMsSUFBSTtFQUNKUCxNQUFNO0VBQ05RLFFBQVEsR0FBR1AsWUFBWTtFQUN2QkcsVUFBVSxHQUFHQyxjQUFjO0VBQzNCSSxV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
|
|
@@ -9,7 +9,7 @@ export interface Extendable<O extends ResourceGenerics = {
|
|
|
9
9
|
}> {
|
|
10
10
|
/** Allows customizing individual endpoints
|
|
11
11
|
*
|
|
12
|
-
* @see https://dataclient.io/rest/api/
|
|
12
|
+
* @see https://dataclient.io/rest/api/resource#extend
|
|
13
13
|
*/
|
|
14
14
|
extend<R extends {
|
|
15
15
|
[K in ExtendKey]: RestInstanceBase;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlRXh0ZW5kYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEVuZHBvaW50SW50ZXJmYWNlLFxuICBFbmRwb2ludFRvRnVuY3Rpb24sXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgUmVzb3VyY2VQYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZUV4dGVuc2lvbixcbiAgUmVzb3VyY2VFbmRwb2ludEV4dGVuc2lvbnMsXG4gIEN1c3RvbVJlc291cmNlLFxuICBFeHRlbmRlZFJlc291cmNlLFxufSBmcm9tICcuL3Jlc291cmNlRXh0ZW5zaW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBSZXNvdXJjZSxcbiAgUmVzb3VyY2VHZW5lcmljcyxcbiAgUmVzb3VyY2VJbnRlcmZhY2UsXG59IGZyb20gJy4vcmVzb3VyY2VUeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnMsXG4gIFJlc3RFeHRlbmRlZEVuZHBvaW50LFxuICBSZXN0SW5zdGFuY2VCYXNlLFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kYWJsZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4ge1xuICAvKiogQWxsb3dzIGN1c3RvbWl6aW5nIGluZGl2aWR1YWwgZW5kcG9pbnRzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2V4dGVuZFxuICAgKi9cbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyB7XG4gICAgICBbSyBpbiBFeHRlbmRLZXldOiBSZXN0SW5zdGFuY2VCYXNlO1xuICAgIH0sXG4gICAgY29uc3QgRXh0ZW5kS2V5IGV4dGVuZHMgRXhjbHVkZTxFeHRyYWN0PGtleW9mIFIsIHN0cmluZz4sICdleHRlbmQnPixcbiAgICAvLyBUT0RPOiBzZWUgUmVzdEVuZHBvaW50LmV4dGVuZCBUT0RPXG4gICAgRXh0ZW5kT3B0aW9ucyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgfCB7fSxcbiAgPihcbiAgICB0aGlzOiBSLFxuICAgIGtleTogRXh0ZW5kS2V5LFxuICAgIG9wdGlvbnM6IFJlYWRvbmx5PFxuICAgICAgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgICAgICAgRXh0ZW5kT3B0aW9ucyxcbiAgICAgICAgUltFeHRlbmRLZXldLFxuICAgICAgICBFbmRwb2ludFRvRnVuY3Rpb248UltFeHRlbmRLZXldPlxuICAgICAgPiAmXG4gICAgICAgIEV4dGVuZE9wdGlvbnNcbiAgICA+LFxuICApOiBSZXNvdXJjZUV4dGVuc2lvbjxSLCBFeHRlbmRLZXksIEV4dGVuZE9wdGlvbnM+O1xuICBleHRlbmQ8XG4gICAgUiBleHRlbmRzIHsgZ2V0OiBSZXN0SW5zdGFuY2VCYXNlIH0sXG4gICAgY29uc3QgRXh0ZW5kS2V5IGV4dGVuZHMgc3RyaW5nLFxuICAgIC8vIFRPRE86IHNlZSBSZXN0RW5kcG9pbnQuZXh0ZW5kIFRPRE9cbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IFIsXG4gICAga2V5OiBFeHRlbmRLZXksXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPFxuICAgICAgICBFeHRlbmRPcHRpb25zLFxuICAgICAgICBSWydnZXQnXSxcbiAgICAgICAgRW5kcG9pbnRUb0Z1bmN0aW9uPFJbJ2dldCddPlxuICAgICAgPiAmXG4gICAgICAgIEV4dGVuZE9wdGlvbnNcbiAgICA+LFxuICApOiBSICYge1xuICAgIFtrZXkgaW4gRXh0ZW5kS2V5XTogUmVzdEV4dGVuZGVkRW5kcG9pbnQ8RXh0ZW5kT3B0aW9ucywgUlsnZ2V0J10+O1xuICB9O1xuICBleHRlbmQ8XG4gICAgUiBleHRlbmRzIFJlc291cmNlSW50ZXJmYWNlLFxuICAgIEdldCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSBhbnksXG4gICAgR2V0TGlzdCBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MgPSBhbnksXG4gICAgVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyA9IGFueSxcbiAgICBQYXJ0aWFsVXBkYXRlIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyA9IGFueSxcbiAgICBEZWxldGUgZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzID0gYW55LFxuICA+KFxuICAgIHRoaXM6IFIsXG4gICAgb3B0aW9uczogUmVzb3VyY2VFbmRwb2ludEV4dGVuc2lvbnM8XG4gICAgICBSLFxuICAgICAgR2V0LFxuICAgICAgR2V0TGlzdCxcbiAgICAgIFVwZGF0ZSxcbiAgICAgIFBhcnRpYWxVcGRhdGUsXG4gICAgICBEZWxldGVcbiAgICA+LFxuICApOiBDdXN0b21SZXNvdXJjZTxSLCBPLCBHZXQsIEdldExpc3QsIFVwZGF0ZSwgUGFydGlhbFVwZGF0ZSwgRGVsZXRlPjtcbiAgZXh0ZW5kPFxuICAgIFIgZXh0ZW5kcyBSZXNvdXJjZUludGVyZmFjZSxcbiAgICBUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgRW5kcG9pbnRJbnRlcmZhY2U+LFxuICA+KFxuICAgIHRoaXM6IFIsXG4gICAgZXh0ZW5kZXI6IChiYXNlUmVzb3VyY2U6IFIpID0+IFQsXG4gICk6IEV4dGVuZGVkUmVzb3VyY2U8UiwgVD47XG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/resourceTypes.d.ts
CHANGED
|
@@ -6,31 +6,31 @@ import { Extendable } from './resourceExtendable.js';
|
|
|
6
6
|
import RestEndpoint, { GetEndpoint, MutateEndpoint, ParamToArgs, RestInstanceBase, RestTypeNoBody } from './RestEndpoint.js';
|
|
7
7
|
/** The typed (generic) options for a Resource
|
|
8
8
|
*
|
|
9
|
-
* @see https://dataclient.io/rest/api/
|
|
9
|
+
* @see https://dataclient.io/rest/api/resource#function-inheritance-patterns
|
|
10
10
|
*/
|
|
11
11
|
export interface ResourceGenerics {
|
|
12
|
-
/** @see https://dataclient.io/rest/api/
|
|
12
|
+
/** @see https://dataclient.io/rest/api/resource#path */
|
|
13
13
|
readonly path: ResourcePath;
|
|
14
|
-
/** @see https://dataclient.io/rest/api/
|
|
14
|
+
/** @see https://dataclient.io/rest/api/resource#schema */
|
|
15
15
|
readonly schema: Schema;
|
|
16
16
|
/** Only used for types */
|
|
17
|
-
/** @see https://dataclient.io/rest/api/
|
|
17
|
+
/** @see https://dataclient.io/rest/api/resource#body */
|
|
18
18
|
readonly body?: any;
|
|
19
19
|
/** Only used for types */
|
|
20
|
-
/** @see https://dataclient.io/rest/api/
|
|
20
|
+
/** @see https://dataclient.io/rest/api/resource#searchParams */
|
|
21
21
|
readonly searchParams?: any;
|
|
22
|
-
/** @see https://dataclient.io/rest/api/
|
|
22
|
+
/** @see https://dataclient.io/rest/api/resource#paginationfield */
|
|
23
23
|
readonly paginationField?: string;
|
|
24
24
|
}
|
|
25
|
-
/** The untyped options for
|
|
25
|
+
/** The untyped options for resource() */
|
|
26
26
|
export interface ResourceOptions {
|
|
27
|
-
/** @see https://dataclient.io/rest/api/
|
|
27
|
+
/** @see https://dataclient.io/rest/api/resource#endpoint */
|
|
28
28
|
Endpoint?: typeof RestEndpoint;
|
|
29
|
-
/** @see https://dataclient.io/rest/api/
|
|
29
|
+
/** @see https://dataclient.io/rest/api/resource#collection */
|
|
30
30
|
Collection?: typeof Collection;
|
|
31
|
-
/** @see https://dataclient.io/rest/api/
|
|
31
|
+
/** @see https://dataclient.io/rest/api/resource#optimistic */
|
|
32
32
|
optimistic?: boolean;
|
|
33
|
-
/** @see https://dataclient.io/rest/api/
|
|
33
|
+
/** @see https://dataclient.io/rest/api/resource#urlprefix */
|
|
34
34
|
urlPrefix?: string;
|
|
35
35
|
requestInit?: RequestInit;
|
|
36
36
|
getHeaders?(headers: HeadersInit): Promise<HeadersInit> | HeadersInit;
|
|
@@ -49,7 +49,7 @@ export interface ResourceOptions {
|
|
|
49
49
|
errorPolicy?(error: any): 'hard' | 'soft' | undefined;
|
|
50
50
|
}
|
|
51
51
|
/** Resources are a collection of methods for a given data model.
|
|
52
|
-
* @see https://dataclient.io/rest/api/
|
|
52
|
+
* @see https://dataclient.io/rest/api/resource
|
|
53
53
|
*/
|
|
54
54
|
export interface Resource<O extends ResourceGenerics = {
|
|
55
55
|
path: ResourcePath;
|
|
@@ -57,7 +57,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
57
57
|
}> extends Extendable<O> {
|
|
58
58
|
/** Get one item (GET)
|
|
59
59
|
*
|
|
60
|
-
* @see https://dataclient.io/rest/api/
|
|
60
|
+
* @see https://dataclient.io/rest/api/resource#get
|
|
61
61
|
*/
|
|
62
62
|
get: GetEndpoint<{
|
|
63
63
|
path: O['path'];
|
|
@@ -65,7 +65,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
65
65
|
}>;
|
|
66
66
|
/** Get an Array of items (GET)
|
|
67
67
|
*
|
|
68
|
-
* @see https://dataclient.io/rest/api/
|
|
68
|
+
* @see https://dataclient.io/rest/api/resource#getlist
|
|
69
69
|
*/
|
|
70
70
|
getList: 'searchParams' extends keyof O ? GetEndpoint<{
|
|
71
71
|
path: ShortenPath<O['path']>;
|
|
@@ -98,7 +98,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
98
98
|
}>;
|
|
99
99
|
/** Update an item (PUT)
|
|
100
100
|
*
|
|
101
|
-
* @see https://dataclient.io/rest/api/
|
|
101
|
+
* @see https://dataclient.io/rest/api/resource#update
|
|
102
102
|
*/
|
|
103
103
|
update: 'body' extends keyof O ? MutateEndpoint<{
|
|
104
104
|
path: O['path'];
|
|
@@ -111,7 +111,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
111
111
|
}>;
|
|
112
112
|
/** Update an item (PATCH)
|
|
113
113
|
*
|
|
114
|
-
* @see https://dataclient.io/rest/api/
|
|
114
|
+
* @see https://dataclient.io/rest/api/resource#partialupdate
|
|
115
115
|
*/
|
|
116
116
|
partialUpdate: 'body' extends keyof O ? MutateEndpoint<{
|
|
117
117
|
path: O['path'];
|
|
@@ -124,7 +124,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
124
124
|
}>;
|
|
125
125
|
/** Delete an item (DELETE)
|
|
126
126
|
*
|
|
127
|
-
* @see https://dataclient.io/rest/api/
|
|
127
|
+
* @see https://dataclient.io/rest/api/resource#delete
|
|
128
128
|
*/
|
|
129
129
|
delete: RestTypeNoBody<PathArgs<O['path']>, O['schema'] extends schema.EntityInterface & {
|
|
130
130
|
process: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceTypes.d.ts","sourceRoot":"","sources":["../src/resourceTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,WAAW,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,YAAY,EAAE,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"resourceTypes.d.ts","sourceRoot":"","sources":["../src/resourceTypes.ts"],"names":[],"mappings":"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"}
|
package/lib/resourceTypes.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5c1RvQXJncyxcbiAgUGF0aEFyZ3MsXG4gIFJlc291cmNlUGF0aCxcbiAgU2hvcnRlblBhdGgsXG59IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IEV4dGVuZGFibGUgfSBmcm9tICcuL3Jlc291cmNlRXh0ZW5kYWJsZS5qcyc7XG5pbXBvcnQgUmVzdEVuZHBvaW50LCB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgUGFyYW1Ub0FyZ3MsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2VcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNmdW5jdGlvbi1pbmhlcml0YW5jZS1wYXR0ZXJuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlR2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGF0aCAqL1xuICByZWFkb25seSBwYXRoOiBSZXNvdXJjZVBhdGg7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbn1cbi8qKiBUaGUgdW50eXBlZCBvcHRpb25zIGZvciByZXNvdXJjZSgpICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlT3B0aW9ucyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludCAqL1xuICBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uICovXG4gIENvbGxlY3Rpb24/OiB0eXBlb2YgQ29sbGVjdGlvbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI29wdGltaXN0aWMgKi9cbiAgb3B0aW1pc3RpYz86IGJvb2xlYW47XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSN1cmxwcmVmaXggKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVzb3VyY2VzIGFyZSBhIGNvbGxlY3Rpb24gb2YgbWV0aG9kcyBmb3IgYSBnaXZlbiBkYXRhIG1vZGVsLlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4gZXh0ZW5kcyBFeHRlbmRhYmxlPE8+IHtcbiAgLyoqIEdldCBvbmUgaXRlbSAoR0VUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNnZXRcbiAgICovXG4gIGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT47XG4gIC8qKiBHZXQgYW4gQXJyYXkgb2YgaXRlbXMgKEdFVClcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZ2V0bGlzdFxuICAgKi9cbiAgZ2V0TGlzdDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBHZXRFbmRwb2ludDxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxcbiAgICAgICAgICBbT1snc2NoZW1hJ11dLFxuICAgICAgICAgIFBhcmFtVG9BcmdzPFxuICAgICAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICBLZXlzVG9BcmdzPFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT4+XG4gICAgICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8U2hvcnRlblBhdGg8T1sncGF0aCddPj5cbiAgICAgICAgICA+XG4gICAgICAgID47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICB9ICYgUGljazxPLCAncGFnaW5hdGlvbkZpZWxkJz5cbiAgICA+XG4gIDogR2V0RW5kcG9pbnQ8XG4gICAgICB7XG4gICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248XG4gICAgICAgICAgW09bJ3NjaGVtYSddXSxcbiAgICAgICAgICBQYXJhbVRvQXJnczxcbiAgICAgICAgICAgIChSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZCkgJlxuICAgICAgICAgICAgICBQYXRoQXJnczxTaG9ydGVuUGF0aDxPWydwYXRoJ10+PlxuICAgICAgICAgID5cbiAgICAgICAgPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXVxuICAgICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgIH0gJiBQaWNrPE8sICdwYWdpbmF0aW9uRmllbGQnPlxuICAgID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVClcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIFJlc291cmNlLmdldExpc3QucHVzaCBpbnN0ZWFkXG4gICAqL1xuICBjcmVhdGU6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248W09bJ3NjaGVtYSddXT5bJ3B1c2gnXTtcbiAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgIDogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+O1xuICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICB9PlxuICA6IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFtPWydzY2hlbWEnXV0+WydwdXNoJ107XG4gICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddXG4gICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICB9PjtcbiAgLyoqIFVwZGF0ZSBhbiBpdGVtIChQVVQpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI3VwZGF0ZVxuICAgKi9cbiAgdXBkYXRlOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICBib2R5OiBPWydib2R5J107XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+XG4gIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+IHwgRm9ybURhdGE7XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+O1xuICAvKiogVXBkYXRlIGFuIGl0ZW0gKFBBVENIKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNwYXJ0aWFsdXBkYXRlXG4gICAqL1xuICBwYXJ0aWFsVXBkYXRlOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICBib2R5OiBQYXJ0aWFsPE9bJ2JvZHknXT47XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+XG4gIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+IHwgRm9ybURhdGE7XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+O1xuICAvKiogRGVsZXRlIGFuIGl0ZW0gKERFTEVURSlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZGVsZXRlXG4gICAqL1xuICBkZWxldGU6IFJlc3RUeXBlTm9Cb2R5PFxuICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgT1snc2NoZW1hJ10gZXh0ZW5kcyBzY2hlbWEuRW50aXR5SW50ZXJmYWNlICYgeyBwcm9jZXNzOiBhbnkgfSA/XG4gICAgICBzY2hlbWEuSW52YWxpZGF0ZTxPWydzY2hlbWEnXT5cbiAgICA6IE9bJ3NjaGVtYSddLFxuICAgIHVuZGVmaW5lZCxcbiAgICBQYXJ0aWFsPFBhdGhBcmdzPE9bJ3BhdGgnXT4+LFxuICAgIHtcbiAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICB9XG4gID47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbnRlcmZhY2Uge1xuICBnZXQ6IFJlc3RJbnN0YW5jZUJhc2U7XG4gIGdldExpc3Q6IFJlc3RJbnN0YW5jZUJhc2U7XG4gIHVwZGF0ZTogUmVzdEluc3RhbmNlQmFzZTtcbiAgcGFydGlhbFVwZGF0ZTogUmVzdEluc3RhbmNlQmFzZTtcbiAgZGVsZXRlOiBSZXN0SW5zdGFuY2VCYXNlO1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-client/rest",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.3",
|
|
4
4
|
"description": "Endpoints for REST APIs",
|
|
5
5
|
"homepage": "https://dataclient.io/rest",
|
|
6
6
|
"repository": {
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"license": "Apache-2.0",
|
|
132
132
|
"dependencies": {
|
|
133
133
|
"@babel/runtime": "^7.17.0",
|
|
134
|
-
"@data-client/endpoint": "^0.14.
|
|
134
|
+
"@data-client/endpoint": "^0.14.3",
|
|
135
135
|
"path-to-regexp": "^6.2.1"
|
|
136
136
|
},
|
|
137
137
|
"devDependencies": {
|
|
@@ -5,7 +5,7 @@ import { CacheProvider } from '@data-client/react';
|
|
|
5
5
|
import nock from 'nock';
|
|
6
6
|
|
|
7
7
|
import { makeRenderDataClient } from '../../../test';
|
|
8
|
-
import
|
|
8
|
+
import resource from '../resource';
|
|
9
9
|
import { ResourcePath } from '../pathTypes';
|
|
10
10
|
import RestEndpoint from '../RestEndpoint';
|
|
11
11
|
import {
|
|
@@ -30,7 +30,7 @@ export class User extends Entity {
|
|
|
30
30
|
return this.id?.toString();
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
export const UserResource =
|
|
33
|
+
export const UserResource = resource({
|
|
34
34
|
path: 'http\\://test.com/user/:id',
|
|
35
35
|
schema: User,
|
|
36
36
|
});
|
|
@@ -58,7 +58,7 @@ function createPaginatableResource<U extends ResourcePath, S extends Schema>({
|
|
|
58
58
|
readonly schema: S;
|
|
59
59
|
readonly Endpoint?: typeof RestEndpoint;
|
|
60
60
|
}) {
|
|
61
|
-
const baseResource =
|
|
61
|
+
const baseResource = resource({ path, schema, Endpoint });
|
|
62
62
|
const getList = baseResource.getList.extend({
|
|
63
63
|
path: 'http\\://test.com/article-paginated',
|
|
64
64
|
schema: {
|
|
@@ -82,7 +82,7 @@ export class UrlArticle extends PaginatedArticle {
|
|
|
82
82
|
readonly url: string = 'happy.com';
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
describe('
|
|
85
|
+
describe('resource()', () => {
|
|
86
86
|
const renderDataClient: ReturnType<typeof makeRenderDataClient> =
|
|
87
87
|
makeRenderDataClient(CacheProvider);
|
|
88
88
|
let mynock: nock.Scope;
|
|
@@ -142,7 +142,7 @@ describe('createResource()', () => {
|
|
|
142
142
|
});
|
|
143
143
|
|
|
144
144
|
it('should handle multiarg urls', () => {
|
|
145
|
-
const MyUserResource =
|
|
145
|
+
const MyUserResource = resource({
|
|
146
146
|
path: 'http\\://test.com/groups/:group/users/:id',
|
|
147
147
|
schema: User,
|
|
148
148
|
});
|
|
@@ -261,7 +261,7 @@ describe('createResource()', () => {
|
|
|
261
261
|
return this.id;
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
|
-
const ComplexResource =
|
|
264
|
+
const ComplexResource = resource({
|
|
265
265
|
path: '/complex-thing/:id',
|
|
266
266
|
schema: ComplexEntity,
|
|
267
267
|
});
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`
|
|
3
|
+
exports[`resource() UserResource.delete should work with 1`] = `"not found"`;
|
|
4
4
|
|
|
5
|
-
exports[`
|
|
5
|
+
exports[`resource() UserResource.delete should work with {"id": 5} 1`] = `"not found"`;
|
|
6
6
|
|
|
7
|
-
exports[`
|
|
7
|
+
exports[`resource() should not allow paths without at least one argument 1`] = `"Resource path requires at least one :parameter"`;
|
|
8
8
|
|
|
9
|
-
exports[`
|
|
9
|
+
exports[`resource() warnings should warn when mis-capitalizing options 1`] = `
|
|
10
10
|
[
|
|
11
11
|
[
|
|
12
12
|
"You passed 'endpoint' option; did you mean to use Endpoint?
|
|
13
|
-
https://dataclient.io/rest/api/
|
|
13
|
+
https://dataclient.io/rest/api/resource#endpoint
|
|
14
14
|
This parameter must be capitalized.
|
|
15
15
|
|
|
16
16
|
This warning will not show in production.",
|
|
@@ -18,11 +18,11 @@ This warning will not show in production.",
|
|
|
18
18
|
]
|
|
19
19
|
`;
|
|
20
20
|
|
|
21
|
-
exports[`
|
|
21
|
+
exports[`resource() warnings should warn when mis-capitalizing options 2`] = `
|
|
22
22
|
[
|
|
23
23
|
[
|
|
24
24
|
"You passed 'collection' option; did you mean to use Collection?
|
|
25
|
-
https://dataclient.io/rest/api/
|
|
25
|
+
https://dataclient.io/rest/api/resource#collection
|
|
26
26
|
This parameter must be capitalized.
|
|
27
27
|
|
|
28
28
|
This warning will not show in production.",
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
import { makeRenderDataClient, act } from '@data-client/test';
|
|
12
12
|
import nock, { ReplyHeaders } from 'nock';
|
|
13
13
|
|
|
14
|
-
import
|
|
14
|
+
import resource from '../resource';
|
|
15
15
|
import RestEndpoint, { RestGenerics } from '../RestEndpoint';
|
|
16
16
|
|
|
17
|
-
describe('
|
|
17
|
+
describe('resource()', () => {
|
|
18
18
|
const renderDataClient: ReturnType<typeof makeRenderDataClient> =
|
|
19
19
|
makeRenderDataClient(CacheProvider);
|
|
20
20
|
let mynock: nock.Scope;
|
|
@@ -44,7 +44,7 @@ describe('createResource()', () => {
|
|
|
44
44
|
additional = 5;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
const UserResource =
|
|
47
|
+
const UserResource = resource({
|
|
48
48
|
path: 'http\\://test.com/groups/:group/users/:id',
|
|
49
49
|
schema: User,
|
|
50
50
|
Endpoint: MyEndpoint,
|
|
@@ -81,7 +81,7 @@ describe('createResource()', () => {
|
|
|
81
81
|
});
|
|
82
82
|
|
|
83
83
|
it('can override endpoint options', async () => {
|
|
84
|
-
const UserResourceBase =
|
|
84
|
+
const UserResourceBase = resource({
|
|
85
85
|
path: 'http\\://test.com/groups/:group/users/:id',
|
|
86
86
|
schema: User,
|
|
87
87
|
});
|
|
@@ -212,7 +212,7 @@ describe('createResource()', () => {
|
|
|
212
212
|
});
|
|
213
213
|
|
|
214
214
|
it('can override endpoint options', async () => {
|
|
215
|
-
const UserResourceBase =
|
|
215
|
+
const UserResourceBase = resource({
|
|
216
216
|
path: 'http\\://test.com/groups/:group/users/:id',
|
|
217
217
|
schema: User,
|
|
218
218
|
paginationField: 'cursor',
|
|
@@ -360,7 +360,7 @@ describe('createResource()', () => {
|
|
|
360
360
|
});
|
|
361
361
|
|
|
362
362
|
it('can override with no generics', async () => {
|
|
363
|
-
const UserResource =
|
|
363
|
+
const UserResource = resource({
|
|
364
364
|
path: 'http\\://test.com/groups/:group/users/:id',
|
|
365
365
|
schema: User,
|
|
366
366
|
paginationField: 'cursor',
|
|
@@ -377,7 +377,7 @@ describe('createResource()', () => {
|
|
|
377
377
|
});
|
|
378
378
|
|
|
379
379
|
it('can override resource endpoints (function form)', async () => {
|
|
380
|
-
const UserResource =
|
|
380
|
+
const UserResource = resource({
|
|
381
381
|
path: 'http\\://test.com/groups/:group/users/:id',
|
|
382
382
|
schema: User,
|
|
383
383
|
paginationField: 'cursor',
|
|
@@ -538,7 +538,7 @@ describe('createResource()', () => {
|
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
expect(() =>
|
|
541
|
-
|
|
541
|
+
resource({
|
|
542
542
|
// TODO(see path types): @ts-expect-error
|
|
543
543
|
path: '/todos/',
|
|
544
544
|
schema: Todo,
|
|
@@ -843,7 +843,7 @@ describe('createResource()', () => {
|
|
|
843
843
|
{ post: FeedPost, link: FeedLink },
|
|
844
844
|
'type',
|
|
845
845
|
);
|
|
846
|
-
const FeedResource =
|
|
846
|
+
const FeedResource = resource({
|
|
847
847
|
path: 'http\\://test.com/feed/:id',
|
|
848
848
|
schema: FeedUnion,
|
|
849
849
|
Endpoint: MyEndpoint,
|
|
@@ -1019,7 +1019,7 @@ describe('createResource()', () => {
|
|
|
1019
1019
|
});
|
|
1020
1020
|
|
|
1021
1021
|
it('UserResource.getList.push.extends() should work with zero urlParams', async () => {
|
|
1022
|
-
const UserResource =
|
|
1022
|
+
const UserResource = resource({
|
|
1023
1023
|
path: 'http\\://test.com/users/:id',
|
|
1024
1024
|
schema: User,
|
|
1025
1025
|
Endpoint: MyEndpoint,
|
|
@@ -1072,7 +1072,7 @@ describe('createResource()', () => {
|
|
|
1072
1072
|
...body,
|
|
1073
1073
|
id: 5,
|
|
1074
1074
|
}));
|
|
1075
|
-
const UserResource =
|
|
1075
|
+
const UserResource = resource({
|
|
1076
1076
|
path: '/users/:id',
|
|
1077
1077
|
schema: User,
|
|
1078
1078
|
optimistic: true,
|
|
@@ -1127,7 +1127,7 @@ describe('createResource()', () => {
|
|
|
1127
1127
|
}
|
|
1128
1128
|
}
|
|
1129
1129
|
|
|
1130
|
-
const TodoResource =
|
|
1130
|
+
const TodoResource = resource({
|
|
1131
1131
|
path: '/todos/:id',
|
|
1132
1132
|
schema: Todo,
|
|
1133
1133
|
optimistic: true,
|
|
@@ -1159,7 +1159,7 @@ describe('createResource()', () => {
|
|
|
1159
1159
|
});
|
|
1160
1160
|
|
|
1161
1161
|
it('should warn when mis-capitalizing options', () => {
|
|
1162
|
-
|
|
1162
|
+
resource({
|
|
1163
1163
|
path: 'http\\://test.com/users/:id',
|
|
1164
1164
|
schema: User,
|
|
1165
1165
|
endpoint: MyEndpoint,
|
|
@@ -1179,7 +1179,7 @@ describe('createResource()', () => {
|
|
|
1179
1179
|
return key === 'orderBy';
|
|
1180
1180
|
}
|
|
1181
1181
|
}
|
|
1182
|
-
|
|
1182
|
+
resource({
|
|
1183
1183
|
path: 'http\\://test.com/users/:id',
|
|
1184
1184
|
schema: User,
|
|
1185
1185
|
collection: MyCollection,
|
package/src/index.ts
CHANGED
|
@@ -22,7 +22,8 @@ export type {
|
|
|
22
22
|
} from './RestEndpoint.js';
|
|
23
23
|
export type { RestEndpoint as IRestEndpoint } from './RestEndpointTypes.js';
|
|
24
24
|
export { getUrlBase, getUrlTokens } from './RestHelpers.js';
|
|
25
|
-
export { default as
|
|
25
|
+
export { default as resource } from './resource.js';
|
|
26
|
+
export { default as createResource } from './resource.js';
|
|
26
27
|
export type { Resource } from './resourceTypes.js';
|
|
27
28
|
export type { ResourceOptions, ResourceGenerics } from './resourceTypes.js';
|
|
28
29
|
export type {
|