@data-client/rest 0.14.0 → 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
|
@@ -19,9 +19,9 @@ const { Invalidate, Collection: BaseCollection } = schema;
|
|
|
19
19
|
|
|
20
20
|
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
21
21
|
*
|
|
22
|
-
* @see https://dataclient.io/rest/api/
|
|
22
|
+
* @see https://dataclient.io/rest/api/resource
|
|
23
23
|
*/
|
|
24
|
-
export default function
|
|
24
|
+
export default function resource<O extends ResourceGenerics>({
|
|
25
25
|
path,
|
|
26
26
|
schema,
|
|
27
27
|
Endpoint = RestEndpoint,
|
|
@@ -44,7 +44,7 @@ export default function createResource<O extends ResourceGenerics>({
|
|
|
44
44
|
) {
|
|
45
45
|
console.warn(
|
|
46
46
|
`You passed 'endpoint' option; did you mean to use Endpoint?
|
|
47
|
-
https://dataclient.io/rest/api/
|
|
47
|
+
https://dataclient.io/rest/api/resource#endpoint
|
|
48
48
|
This parameter must be capitalized.
|
|
49
49
|
|
|
50
50
|
This warning will not show in production.`,
|
|
@@ -63,7 +63,7 @@ This warning will not show in production.`,
|
|
|
63
63
|
) {
|
|
64
64
|
console.warn(
|
|
65
65
|
`You passed 'collection' option; did you mean to use Collection?
|
|
66
|
-
https://dataclient.io/rest/api/
|
|
66
|
+
https://dataclient.io/rest/api/resource#collection
|
|
67
67
|
This parameter must be capitalized.
|
|
68
68
|
|
|
69
69
|
This warning will not show in production.`,
|
package/src/resourceTypes.ts
CHANGED
|
@@ -19,31 +19,31 @@ import RestEndpoint, {
|
|
|
19
19
|
|
|
20
20
|
/** The typed (generic) options for a Resource
|
|
21
21
|
*
|
|
22
|
-
* @see https://dataclient.io/rest/api/
|
|
22
|
+
* @see https://dataclient.io/rest/api/resource#function-inheritance-patterns
|
|
23
23
|
*/
|
|
24
24
|
export interface ResourceGenerics {
|
|
25
|
-
/** @see https://dataclient.io/rest/api/
|
|
25
|
+
/** @see https://dataclient.io/rest/api/resource#path */
|
|
26
26
|
readonly path: ResourcePath;
|
|
27
|
-
/** @see https://dataclient.io/rest/api/
|
|
27
|
+
/** @see https://dataclient.io/rest/api/resource#schema */
|
|
28
28
|
readonly schema: Schema;
|
|
29
29
|
/** Only used for types */
|
|
30
|
-
/** @see https://dataclient.io/rest/api/
|
|
30
|
+
/** @see https://dataclient.io/rest/api/resource#body */
|
|
31
31
|
readonly body?: any;
|
|
32
32
|
/** Only used for types */
|
|
33
|
-
/** @see https://dataclient.io/rest/api/
|
|
33
|
+
/** @see https://dataclient.io/rest/api/resource#searchParams */
|
|
34
34
|
readonly searchParams?: any;
|
|
35
|
-
/** @see https://dataclient.io/rest/api/
|
|
35
|
+
/** @see https://dataclient.io/rest/api/resource#paginationfield */
|
|
36
36
|
readonly paginationField?: string;
|
|
37
37
|
}
|
|
38
|
-
/** The untyped options for
|
|
38
|
+
/** The untyped options for resource() */
|
|
39
39
|
export interface ResourceOptions {
|
|
40
|
-
/** @see https://dataclient.io/rest/api/
|
|
40
|
+
/** @see https://dataclient.io/rest/api/resource#endpoint */
|
|
41
41
|
Endpoint?: typeof RestEndpoint;
|
|
42
|
-
/** @see https://dataclient.io/rest/api/
|
|
42
|
+
/** @see https://dataclient.io/rest/api/resource#collection */
|
|
43
43
|
Collection?: typeof Collection;
|
|
44
|
-
/** @see https://dataclient.io/rest/api/
|
|
44
|
+
/** @see https://dataclient.io/rest/api/resource#optimistic */
|
|
45
45
|
optimistic?: boolean;
|
|
46
|
-
/** @see https://dataclient.io/rest/api/
|
|
46
|
+
/** @see https://dataclient.io/rest/api/resource#urlprefix */
|
|
47
47
|
urlPrefix?: string;
|
|
48
48
|
requestInit?: RequestInit;
|
|
49
49
|
getHeaders?(headers: HeadersInit): Promise<HeadersInit> | HeadersInit;
|
|
@@ -63,19 +63,19 @@ export interface ResourceOptions {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
/** Resources are a collection of methods for a given data model.
|
|
66
|
-
* @see https://dataclient.io/rest/api/
|
|
66
|
+
* @see https://dataclient.io/rest/api/resource
|
|
67
67
|
*/
|
|
68
68
|
export interface Resource<
|
|
69
69
|
O extends ResourceGenerics = { path: ResourcePath; schema: any },
|
|
70
70
|
> extends Extendable<O> {
|
|
71
71
|
/** Get one item (GET)
|
|
72
72
|
*
|
|
73
|
-
* @see https://dataclient.io/rest/api/
|
|
73
|
+
* @see https://dataclient.io/rest/api/resource#get
|
|
74
74
|
*/
|
|
75
75
|
get: GetEndpoint<{ path: O['path']; schema: O['schema'] }>;
|
|
76
76
|
/** Get an Array of items (GET)
|
|
77
77
|
*
|
|
78
|
-
* @see https://dataclient.io/rest/api/
|
|
78
|
+
* @see https://dataclient.io/rest/api/resource#getlist
|
|
79
79
|
*/
|
|
80
80
|
getList: 'searchParams' extends keyof O ?
|
|
81
81
|
GetEndpoint<
|
|
@@ -129,7 +129,7 @@ export interface Resource<
|
|
|
129
129
|
}>;
|
|
130
130
|
/** Update an item (PUT)
|
|
131
131
|
*
|
|
132
|
-
* @see https://dataclient.io/rest/api/
|
|
132
|
+
* @see https://dataclient.io/rest/api/resource#update
|
|
133
133
|
*/
|
|
134
134
|
update: 'body' extends keyof O ?
|
|
135
135
|
MutateEndpoint<{
|
|
@@ -144,7 +144,7 @@ export interface Resource<
|
|
|
144
144
|
}>;
|
|
145
145
|
/** Update an item (PATCH)
|
|
146
146
|
*
|
|
147
|
-
* @see https://dataclient.io/rest/api/
|
|
147
|
+
* @see https://dataclient.io/rest/api/resource#partialupdate
|
|
148
148
|
*/
|
|
149
149
|
partialUpdate: 'body' extends keyof O ?
|
|
150
150
|
MutateEndpoint<{
|
|
@@ -159,7 +159,7 @@ export interface Resource<
|
|
|
159
159
|
}>;
|
|
160
160
|
/** Delete an item (DELETE)
|
|
161
161
|
*
|
|
162
|
-
* @see https://dataclient.io/rest/api/
|
|
162
|
+
* @see https://dataclient.io/rest/api/resource#delete
|
|
163
163
|
*/
|
|
164
164
|
delete: RestTypeNoBody<
|
|
165
165
|
PathArgs<O['path']>,
|
package/ts4.0/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export { default as RestEndpoint } from './RestEndpoint.js';
|
|
|
2
2
|
export type { GetEndpoint, MutateEndpoint, Defaults, RestGenerics, FetchGet, FetchMutate, RestFetch, RestType, RestInstance, KeyofRestEndpoint, RestEndpointConstructorOptions, AddEndpoint, PaginationFieldEndpoint, PaginationEndpoint, } from './RestEndpoint.js';
|
|
3
3
|
export type { RestEndpoint as IRestEndpoint } from './RestEndpointTypes.js';
|
|
4
4
|
export { getUrlBase, getUrlTokens } from './RestHelpers.js';
|
|
5
|
-
export { default as
|
|
5
|
+
export { default as resource } from './resource.js';
|
|
6
|
+
export { default as createResource } from './resource.js';
|
|
6
7
|
export type { Resource } from './resourceTypes.js';
|
|
7
8
|
export type { ResourceOptions, ResourceGenerics } from './resourceTypes.js';
|
|
8
9
|
export type { ResourceExtension, ResourceEndpointExtensions, CustomResource, ExtendedResource, } from './resourceExtensionTypes.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ResourceGenerics, ResourceOptions, Resource } from './resourceTypes.js';
|
|
2
|
+
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
3
|
+
*
|
|
4
|
+
* @see https://dataclient.io/rest/api/resource
|
|
5
|
+
*/
|
|
6
|
+
export default function resource<O extends ResourceGenerics>({ path, schema, Endpoint, Collection, optimistic, paginationField, ...extraOptions }: Readonly<O> & ResourceOptions): Resource<O>;
|
|
7
|
+
//# sourceMappingURL=resource.d.ts.map
|
package/ts4.0/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']>;
|
|
@@ -102,7 +102,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
102
102
|
}>;
|
|
103
103
|
/** Update an item (PUT)
|
|
104
104
|
*
|
|
105
|
-
* @see https://dataclient.io/rest/api/
|
|
105
|
+
* @see https://dataclient.io/rest/api/resource#update
|
|
106
106
|
*/
|
|
107
107
|
update: 'body' extends keyof O ? MutateEndpoint<{
|
|
108
108
|
path: O['path'];
|
|
@@ -115,7 +115,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
115
115
|
}>;
|
|
116
116
|
/** Update an item (PATCH)
|
|
117
117
|
*
|
|
118
|
-
* @see https://dataclient.io/rest/api/
|
|
118
|
+
* @see https://dataclient.io/rest/api/resource#partialupdate
|
|
119
119
|
*/
|
|
120
120
|
partialUpdate: 'body' extends keyof O ? MutateEndpoint<{
|
|
121
121
|
path: O['path'];
|
|
@@ -128,7 +128,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
128
128
|
}>;
|
|
129
129
|
/** Delete an item (DELETE)
|
|
130
130
|
*
|
|
131
|
-
* @see https://dataclient.io/rest/api/
|
|
131
|
+
* @see https://dataclient.io/rest/api/resource#delete
|
|
132
132
|
*/
|
|
133
133
|
delete: RestTypeNoBody<PathArgs<O['path']>, O['schema'] extends schema.EntityInterface & {
|
|
134
134
|
process: any;
|
package/ts4.1/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ export { default as RestEndpoint } from './RestEndpoint.js';
|
|
|
2
2
|
export type { GetEndpoint, MutateEndpoint, Defaults, RestGenerics, FetchGet, FetchMutate, RestFetch, RestType, RestInstance, KeyofRestEndpoint, RestEndpointConstructorOptions, AddEndpoint, PaginationFieldEndpoint, PaginationEndpoint, } from './RestEndpoint.js';
|
|
3
3
|
export type { RestEndpoint as IRestEndpoint } from './RestEndpointTypes.js';
|
|
4
4
|
export { getUrlBase, getUrlTokens } from './RestHelpers.js';
|
|
5
|
-
export { default as
|
|
5
|
+
export { default as resource } from './resource.js';
|
|
6
|
+
export { default as createResource } from './resource.js';
|
|
6
7
|
export type { Resource } from './resourceTypes.js';
|
|
7
8
|
export type { ResourceOptions, ResourceGenerics } from './resourceTypes.js';
|
|
8
9
|
export type { ResourceExtension, ResourceEndpointExtensions, CustomResource, ExtendedResource, } from './resourceExtensionTypes.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ResourceGenerics, ResourceOptions, Resource } from './resourceTypes.js';
|
|
2
|
+
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
3
|
+
*
|
|
4
|
+
* @see https://dataclient.io/rest/api/resource
|
|
5
|
+
*/
|
|
6
|
+
export default function resource<O extends ResourceGenerics>({ path, schema, Endpoint, Collection, optimistic, paginationField, ...extraOptions }: Readonly<O> & ResourceOptions): Resource<O>;
|
|
7
|
+
//# sourceMappingURL=resource.d.ts.map
|
package/ts4.1/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']>;
|
|
@@ -102,7 +102,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
102
102
|
}>;
|
|
103
103
|
/** Update an item (PUT)
|
|
104
104
|
*
|
|
105
|
-
* @see https://dataclient.io/rest/api/
|
|
105
|
+
* @see https://dataclient.io/rest/api/resource#update
|
|
106
106
|
*/
|
|
107
107
|
update: 'body' extends keyof O ? MutateEndpoint<{
|
|
108
108
|
path: O['path'];
|
|
@@ -115,7 +115,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
115
115
|
}>;
|
|
116
116
|
/** Update an item (PATCH)
|
|
117
117
|
*
|
|
118
|
-
* @see https://dataclient.io/rest/api/
|
|
118
|
+
* @see https://dataclient.io/rest/api/resource#partialupdate
|
|
119
119
|
*/
|
|
120
120
|
partialUpdate: 'body' extends keyof O ? MutateEndpoint<{
|
|
121
121
|
path: O['path'];
|
|
@@ -128,7 +128,7 @@ export interface Resource<O extends ResourceGenerics = {
|
|
|
128
128
|
}>;
|
|
129
129
|
/** Delete an item (DELETE)
|
|
130
130
|
*
|
|
131
|
-
* @see https://dataclient.io/rest/api/
|
|
131
|
+
* @see https://dataclient.io/rest/api/resource#delete
|
|
132
132
|
*/
|
|
133
133
|
delete: RestTypeNoBody<PathArgs<O['path']>, O['schema'] extends schema.EntityInterface & {
|
|
134
134
|
process: any;
|
package/legacy/createResource.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
|
|
2
|
-
const _excluded = ["path", "schema", "Endpoint", "Collection", "optimistic", "paginationField"];
|
|
3
|
-
import { schema } from '@data-client/endpoint';
|
|
4
|
-
import RestEndpoint from './RestEndpoint.js';
|
|
5
|
-
import { shortenPath } from './RestHelpers.js';
|
|
6
|
-
const {
|
|
7
|
-
Invalidate,
|
|
8
|
-
Collection: BaseCollection
|
|
9
|
-
} = schema;
|
|
10
|
-
|
|
11
|
-
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
12
|
-
*
|
|
13
|
-
* @see https://dataclient.io/rest/api/createResource
|
|
14
|
-
*/
|
|
15
|
-
export default function createResource(_ref) {
|
|
16
|
-
let {
|
|
17
|
-
path,
|
|
18
|
-
schema,
|
|
19
|
-
Endpoint = RestEndpoint,
|
|
20
|
-
Collection = BaseCollection,
|
|
21
|
-
optimistic,
|
|
22
|
-
paginationField
|
|
23
|
-
} = _ref,
|
|
24
|
-
extraOptions = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
25
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
26
|
-
// if they lowercase and it looks like they meant to use upper-case version
|
|
27
|
-
if ('endpoint' in extraOptions && Endpoint === RestEndpoint && typeof extraOptions['endpoint'] === 'function' && extraOptions['endpoint'] && Object.prototype.isPrototypeOf.call(RestEndpoint.prototype, extraOptions['endpoint'].prototype)) {
|
|
28
|
-
console.warn(`You passed 'endpoint' option; did you mean to use Endpoint?
|
|
29
|
-
https://dataclient.io/rest/api/createResource#endpoint
|
|
30
|
-
This parameter must be capitalized.
|
|
31
|
-
|
|
32
|
-
This warning will not show in production.`);
|
|
33
|
-
}
|
|
34
|
-
// if they lowercase and it looks like they meant to use upper-case version
|
|
35
|
-
if ('collection' in extraOptions && Collection === BaseCollection && typeof extraOptions['collection'] === 'function' && extraOptions['collection'] && Object.prototype.isPrototypeOf.call(BaseCollection.prototype, extraOptions['collection'].prototype)) {
|
|
36
|
-
console.warn(`You passed 'collection' option; did you mean to use Collection?
|
|
37
|
-
https://dataclient.io/rest/api/createResource#collection
|
|
38
|
-
This parameter must be capitalized.
|
|
39
|
-
|
|
40
|
-
This warning will not show in production.`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
const shortenedPath = shortenPath(path);
|
|
44
|
-
const getName = name => `${schema == null ? void 0 : schema.name}.${name}`;
|
|
45
|
-
// this accounts for derivative endpoints
|
|
46
|
-
function extendMember(extended, key, options) {
|
|
47
|
-
extended[key] = extended[key].extend(options);
|
|
48
|
-
}
|
|
49
|
-
const extraMutateOptions = Object.assign({}, extraOptions);
|
|
50
|
-
const extraPartialOptions = Object.assign({}, extraOptions);
|
|
51
|
-
const get = new Endpoint(Object.assign({}, extraOptions, {
|
|
52
|
-
path,
|
|
53
|
-
schema,
|
|
54
|
-
name: getName('get')
|
|
55
|
-
}));
|
|
56
|
-
if (optimistic) {
|
|
57
|
-
extraMutateOptions.getOptimisticResponse = optimisticUpdate;
|
|
58
|
-
// TODO: Check that schema is a queryable, otherwise this doesn't make sense
|
|
59
|
-
extraPartialOptions.getOptimisticResponse = optimisticPartial(schema);
|
|
60
|
-
}
|
|
61
|
-
const getList = new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
62
|
-
paginationField: paginationField,
|
|
63
|
-
path: shortenedPath,
|
|
64
|
-
schema: new Collection([schema]),
|
|
65
|
-
name: getName('getList')
|
|
66
|
-
}));
|
|
67
|
-
const ret = {
|
|
68
|
-
get,
|
|
69
|
-
getList,
|
|
70
|
-
// TODO(deprecated): remove this once we remove creates
|
|
71
|
-
create: getList.push.extend({
|
|
72
|
-
name: getName('create')
|
|
73
|
-
}),
|
|
74
|
-
update: new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
75
|
-
path,
|
|
76
|
-
schema,
|
|
77
|
-
method: 'PUT',
|
|
78
|
-
name: getName('update')
|
|
79
|
-
})),
|
|
80
|
-
partialUpdate: new Endpoint(Object.assign({}, extraPartialOptions, {
|
|
81
|
-
path,
|
|
82
|
-
schema,
|
|
83
|
-
method: 'PATCH',
|
|
84
|
-
name: getName('partialUpdate')
|
|
85
|
-
})),
|
|
86
|
-
delete: new Endpoint(Object.assign({}, extraMutateOptions, {
|
|
87
|
-
path,
|
|
88
|
-
schema: schema.process ? new Invalidate(schema) : schema,
|
|
89
|
-
method: 'DELETE',
|
|
90
|
-
name: getName('delete'),
|
|
91
|
-
process(res, params) {
|
|
92
|
-
return res && Object.keys(res).length ? res : params;
|
|
93
|
-
},
|
|
94
|
-
getOptimisticResponse: optimistic ? optimisticDelete : undefined
|
|
95
|
-
})),
|
|
96
|
-
extend(...args) {
|
|
97
|
-
if (typeof args[0] === 'string') {
|
|
98
|
-
const [key, options] = args;
|
|
99
|
-
if (key in this) {
|
|
100
|
-
const extended = Object.assign({}, this);
|
|
101
|
-
extendMember(extended, key, options);
|
|
102
|
-
return extended;
|
|
103
|
-
} else {
|
|
104
|
-
return Object.assign({}, this, {
|
|
105
|
-
[key]: this.get.extend(options)
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
} else if (typeof args[0] === 'function') {
|
|
109
|
-
const extended = args[0](this);
|
|
110
|
-
return Object.assign({}, this, extended);
|
|
111
|
-
}
|
|
112
|
-
const overrides = args[0];
|
|
113
|
-
const extended = Object.assign({}, this);
|
|
114
|
-
for (const key in overrides) {
|
|
115
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
116
|
-
// @ts-ignore
|
|
117
|
-
extendMember(extended, key, overrides[key]);
|
|
118
|
-
}
|
|
119
|
-
return extended;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
return ret;
|
|
123
|
-
}
|
|
124
|
-
function optimisticUpdate(snap, params, body) {
|
|
125
|
-
return Object.assign({}, params, ensurePojo(body));
|
|
126
|
-
}
|
|
127
|
-
function optimisticPartial(schema) {
|
|
128
|
-
return function (snap, params, body) {
|
|
129
|
-
const data = snap.get(schema, params);
|
|
130
|
-
if (!data) throw snap.abort;
|
|
131
|
-
return Object.assign({}, params, data, ensurePojo(body));
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
function optimisticDelete(snap, params) {
|
|
135
|
-
return params;
|
|
136
|
-
}
|
|
137
|
-
function ensurePojo(body) {
|
|
138
|
-
return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJjcmVhdGVSZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiYXNzaWduIiwiZXh0cmFQYXJ0aWFsT3B0aW9ucyIsImdldCIsImdldE9wdGltaXN0aWNSZXNwb25zZSIsIm9wdGltaXN0aWNVcGRhdGUiLCJvcHRpbWlzdGljUGFydGlhbCIsImdldExpc3QiLCJyZXQiLCJjcmVhdGUiLCJwdXNoIiwidXBkYXRlIiwibWV0aG9kIiwicGFydGlhbFVwZGF0ZSIsImRlbGV0ZSIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwidW5kZWZpbmVkIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImRhdGEiLCJhYm9ydCIsIkZvcm1EYXRhIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZVJlc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IFNuYXBzaG90SW50ZXJmYWNlLCBRdWVyeWFibGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBvcHRpbWlzdGljLFxuICBwYWdpbmF0aW9uRmllbGQsXG4gIC4uLmV4dHJhT3B0aW9uc1xufTogUmVhZG9ubHk8Tz4gJiBSZXNvdXJjZU9wdGlvbnMpOiBSZXNvdXJjZTxPPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gaWYgdGhleSBsb3dlcmNhc2UgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSBtZWFudCB0byB1c2UgdXBwZXItY2FzZSB2ZXJzaW9uXG4gICAgaWYgKFxuICAgICAgJ2VuZHBvaW50JyBpbiBleHRyYU9wdGlvbnMgJiZcbiAgICAgIEVuZHBvaW50ID09PSBSZXN0RW5kcG9pbnQgJiZcbiAgICAgIHR5cGVvZiBleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIFJlc3RFbmRwb2ludC5wcm90b3R5cGUsXG4gICAgICAgIChleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gYXMgYW55KS5wcm90b3R5cGUsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBZb3UgcGFzc2VkICdlbmRwb2ludCcgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIEVuZHBvaW50P1xuaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL2NyZWF0ZVJlc291cmNlI2VuZHBvaW50XG5UaGlzIHBhcmFtZXRlciBtdXN0IGJlIGNhcGl0YWxpemVkLlxuXG5UaGlzIHdhcm5pbmcgd2lsbCBub3Qgc2hvdyBpbiBwcm9kdWN0aW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBpZiB0aGV5IGxvd2VyY2FzZSBhbmQgaXQgbG9va3MgbGlrZSB0aGV5IG1lYW50IHRvIHVzZSB1cHBlci1jYXNlIHZlcnNpb25cbiAgICBpZiAoXG4gICAgICAnY29sbGVjdGlvbicgaW4gZXh0cmFPcHRpb25zICYmXG4gICAgICBDb2xsZWN0aW9uID09PSBCYXNlQ29sbGVjdGlvbiAmJlxuICAgICAgdHlwZW9mIGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIEJhc2VDb2xsZWN0aW9uLnByb3RvdHlwZSxcbiAgICAgICAgKGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddIGFzIGFueSkucHJvdG90eXBlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgWW91IHBhc3NlZCAnY29sbGVjdGlvbicgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIENvbGxlY3Rpb24/XG5odHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvY3JlYXRlUmVzb3VyY2UjY29sbGVjdGlvblxuVGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBjYXBpdGFsaXplZC5cblxuVGhpcyB3YXJuaW5nIHdpbGwgbm90IHNob3cgaW4gcHJvZHVjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2hvcnRlbmVkUGF0aCA9IHNob3J0ZW5QYXRoKHBhdGgpO1xuICBjb25zdCBnZXROYW1lID0gKG5hbWU6IHN0cmluZykgPT4gYCR7KHNjaGVtYSBhcyBhbnkpPy5uYW1lfS4ke25hbWV9YDtcbiAgLy8gdGhpcyBhY2NvdW50cyBmb3IgZGVyaXZhdGl2ZSBlbmRwb2ludHNcbiAgZnVuY3Rpb24gZXh0ZW5kTWVtYmVyKGV4dGVuZGVkOiBhbnksIGtleTogc3RyaW5nLCBvcHRpb25zOiBhbnkpIHtcbiAgICBleHRlbmRlZFtrZXldID0gZXh0ZW5kZWRba2V5XS5leHRlbmQob3B0aW9ucyk7XG4gIH1cblxuICBjb25zdCBleHRyYU11dGF0ZU9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBleHRyYVBhcnRpYWxPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PiA9XG4gICAgbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lOiBnZXROYW1lKCdnZXQnKSxcbiAgICB9KSBhcyBhbnk7XG4gIGlmIChvcHRpbWlzdGljKSB7XG4gICAgKGV4dHJhTXV0YXRlT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNVcGRhdGU7XG4gICAgLy8gVE9ETzogQ2hlY2sgdGhhdCBzY2hlbWEgaXMgYSBxdWVyeWFibGUsIG90aGVyd2lzZSB0aGlzIGRvZXNuJ3QgbWFrZSBzZW5zZVxuICAgIChleHRyYVBhcnRpYWxPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1BhcnRpYWwoXG4gICAgICBzY2hlbWEgYXMgYW55LFxuICAgICk7XG4gIH1cbiAgY29uc3QgZ2V0TGlzdCA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgIHBhZ2luYXRpb25GaWVsZDogcGFnaW5hdGlvbkZpZWxkIGFzIHN0cmluZyxcbiAgICBwYXRoOiBzaG9ydGVuZWRQYXRoLFxuICAgIHNjaGVtYTogbmV3IENvbGxlY3Rpb24oW3NjaGVtYSBhcyBhbnldKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6IChzY2hlbWEgYXMgYW55KS5wcm9jZXNzID8gbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSkgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKHNjaGVtYTogUXVlcnlhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gc25hcC5nZXQoc2NoZW1hLCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgc25hcC5hYm9ydDtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgP1xuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgIDogYm9keTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxNQUFNLFFBQVEsdUJBQXVCO0FBUzlDLE9BQU9DLFlBQVksTUFLWixtQkFBbUI7QUFDMUIsU0FBU0MsV0FBVyxRQUFRLGtCQUFrQjtBQUU5QyxNQUFNO0VBQUVDLFVBQVU7RUFBRUMsVUFBVSxFQUFFQztBQUFlLENBQUMsR0FBR0wsTUFBTTs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxl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
|
package/lib/createResource.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ResourceGenerics, ResourceOptions, Resource } from './resourceTypes.js';
|
|
2
|
-
/** Creates collection of Endpoints for common operations on a given data/schema.
|
|
3
|
-
*
|
|
4
|
-
* @see https://dataclient.io/rest/api/createResource
|
|
5
|
-
*/
|
|
6
|
-
export default function createResource<O extends ResourceGenerics>({ path, schema, Endpoint, Collection, optimistic, paginationField, ...extraOptions }: Readonly<O> & ResourceOptions): Resource<O>;
|
|
7
|
-
//# sourceMappingURL=createResource.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createResource.d.ts","sourceRoot":"","sources":["../src/createResource.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAW5B;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,SAAS,gBAAgB,EAAE,EACjE,IAAI,EACJ,MAAM,EACN,QAAuB,EACvB,UAA2B,EAC3B,UAAU,EACV,eAAe,EACf,GAAG,YAAY,EAChB,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CA6I7C"}
|