ketting 7.4.0 → 7.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/ketting.min.js +1 -1
- package/browser/ketting.min.js.map +1 -1
- package/dist/client.d.ts +2 -2
- package/dist/client.js +33 -12
- package/dist/client.js.map +1 -1
- package/dist/resource.d.ts +1 -1
- package/dist/resource.js +6 -2
- package/dist/resource.js.map +1 -1
- package/dist/src/client.d.ts +2 -2
- package/dist/src/resource.d.ts +1 -1
- package/dist/src/state/interface.d.ts +8 -5
- package/dist/state/interface.d.ts +8 -5
- package/dist/state/interface.js.map +1 -1
- package/package.json +4 -1
- package/src/client.ts +38 -14
- package/src/resource.ts +6 -3
- package/src/state/interface.ts +8 -5
package/dist/client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fetcher, FetchMiddleware } from './http/fetcher';
|
|
2
2
|
import Resource from './resource';
|
|
3
3
|
import { State, StateFactory } from './state';
|
|
4
|
-
import { LinkVariables } from './link';
|
|
4
|
+
import { Link, LinkVariables } from './link';
|
|
5
5
|
import { FollowPromiseOne } from './follow-promise';
|
|
6
6
|
import { StateCache } from './cache';
|
|
7
7
|
export default class Client {
|
|
@@ -62,7 +62,7 @@ export default class Client {
|
|
|
62
62
|
* @example
|
|
63
63
|
* const res = ketting.go(); // bookmark
|
|
64
64
|
*/
|
|
65
|
-
go<TResource = any>(uri?: string): Resource<TResource>;
|
|
65
|
+
go<TResource = any>(uri?: string | Link): Resource<TResource>;
|
|
66
66
|
/**
|
|
67
67
|
* Adds a fetch middleware, which will be executed for
|
|
68
68
|
* each fetch() call.
|
package/dist/client.js
CHANGED
|
@@ -77,11 +77,14 @@ class Client {
|
|
|
77
77
|
*/
|
|
78
78
|
go(uri) {
|
|
79
79
|
let absoluteUri;
|
|
80
|
-
if (uri
|
|
80
|
+
if (uri === undefined) {
|
|
81
|
+
absoluteUri = this.bookmarkUri;
|
|
82
|
+
}
|
|
83
|
+
else if (typeof uri === 'string') {
|
|
81
84
|
absoluteUri = (0, uri_1.resolve)(this.bookmarkUri, uri);
|
|
82
85
|
}
|
|
83
86
|
else {
|
|
84
|
-
absoluteUri =
|
|
87
|
+
absoluteUri = (0, uri_1.resolve)(uri);
|
|
85
88
|
}
|
|
86
89
|
if (!this.resources.has(absoluteUri)) {
|
|
87
90
|
const resource = new resource_1.default(this, absoluteUri);
|
|
@@ -114,18 +117,25 @@ class Client {
|
|
|
114
117
|
* embedded states.
|
|
115
118
|
*/
|
|
116
119
|
cacheState(state) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
+
// Flatten the list of state objects.
|
|
121
|
+
const newStates = flattenState(state);
|
|
122
|
+
// Register all cache dependencies.
|
|
123
|
+
for (const nState of newStates) {
|
|
124
|
+
for (const invByLink of nState.links.getMany('inv-by')) {
|
|
125
|
+
this.addCacheDependency((0, uri_1.resolve)(invByLink), nState.uri);
|
|
126
|
+
}
|
|
120
127
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
resource.emit('update', state);
|
|
128
|
+
// Store all new caches
|
|
129
|
+
for (const nState of newStates) {
|
|
130
|
+
this.cache.store(nState);
|
|
125
131
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this.
|
|
132
|
+
// Emit 'update' events
|
|
133
|
+
for (const nState of newStates) {
|
|
134
|
+
const resource = this.resources.get(nState.uri);
|
|
135
|
+
if (resource) {
|
|
136
|
+
// We have a resource for this object, notify it as well.
|
|
137
|
+
resource.emit('update', nState);
|
|
138
|
+
}
|
|
129
139
|
}
|
|
130
140
|
}
|
|
131
141
|
/**
|
|
@@ -227,4 +237,15 @@ function expandCacheDependencies(uris, dependencies, output) {
|
|
|
227
237
|
}
|
|
228
238
|
return output;
|
|
229
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Take a State object, find all it's embedded resources and return a flat
|
|
242
|
+
* array of all resources at any depth.
|
|
243
|
+
*/
|
|
244
|
+
function flattenState(state, result = new Set()) {
|
|
245
|
+
result.add(state);
|
|
246
|
+
for (const embedded of state.getEmbedded()) {
|
|
247
|
+
flattenState(embedded, result);
|
|
248
|
+
}
|
|
249
|
+
return result;
|
|
250
|
+
}
|
|
230
251
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAAA,4CAA0D;AAC1D,yCAAkC;AAElC,mCAQiB;AACjB,sCAA+C;AAC/C,oCAAqC;AAGrC,mCAAmD;AACnD,+CAAwD;AACxD,+DAA2D;AAC3D,mDAAsD;AAEtD,MAAqB,MAAM;IA+CzB,YAAY,WAAmB;QAtC/B;;;;;;;;WAQG;QACH,mBAAc,GAEV;YACA,gCAAgC,EAAE,CAAC,uBAAe,EAAE,KAAK,CAAC;YAC1D,sBAAsB,EAAE,CAAC,uBAAe,EAAE,KAAK,CAAC;YAChD,0BAA0B,EAAE,CAAC,2BAAmB,EAAE,KAAK,CAAC;YACxD,4BAA4B,EAAE,CAAC,yBAAiB,EAAE,KAAK,CAAC;YACxD,iCAAiC,EAAE,CAAC,sBAAc,EAAE,KAAK,CAAC;YAC1D,kBAAkB,EAAE,CAAC,uBAAe,EAAE,KAAK,CAAC;YAC5C,WAAW,EAAE,CAAC,wBAAgB,EAAE,KAAK,CAAC;SACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/resource.d.ts
CHANGED
|
@@ -105,7 +105,7 @@ export declare class Resource<T = any> extends EventEmitter {
|
|
|
105
105
|
*
|
|
106
106
|
* This function doesn't do any HTTP requests.
|
|
107
107
|
*/
|
|
108
|
-
go<TGoResource = any>(uri: string): Resource<TGoResource>;
|
|
108
|
+
go<TGoResource = any>(uri: string | Link): Resource<TGoResource>;
|
|
109
109
|
/**
|
|
110
110
|
* Does a HTTP request on the current resource URI
|
|
111
111
|
*/
|
package/dist/resource.js
CHANGED
|
@@ -195,8 +195,12 @@ class Resource extends events_1.EventEmitter {
|
|
|
195
195
|
* This function doesn't do any HTTP requests.
|
|
196
196
|
*/
|
|
197
197
|
go(uri) {
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
if (typeof uri === 'string') {
|
|
199
|
+
return this.client.go((0, uri_1.resolve)(this.uri, uri));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
return this.client.go(uri);
|
|
203
|
+
}
|
|
200
204
|
}
|
|
201
205
|
/**
|
|
202
206
|
* Does a HTTP request on the current resource URI
|
package/dist/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Fetcher, FetchMiddleware } from './http/fetcher';
|
|
2
2
|
import Resource from './resource';
|
|
3
3
|
import { State, StateFactory } from './state';
|
|
4
|
-
import { LinkVariables } from './link';
|
|
4
|
+
import { Link, LinkVariables } from './link';
|
|
5
5
|
import { FollowPromiseOne } from './follow-promise';
|
|
6
6
|
import { StateCache } from './cache';
|
|
7
7
|
export default class Client {
|
|
@@ -62,7 +62,7 @@ export default class Client {
|
|
|
62
62
|
* @example
|
|
63
63
|
* const res = ketting.go(); // bookmark
|
|
64
64
|
*/
|
|
65
|
-
go<TResource = any>(uri?: string): Resource<TResource>;
|
|
65
|
+
go<TResource = any>(uri?: string | Link): Resource<TResource>;
|
|
66
66
|
/**
|
|
67
67
|
* Adds a fetch middleware, which will be executed for
|
|
68
68
|
* each fetch() call.
|
package/dist/src/resource.d.ts
CHANGED
|
@@ -105,7 +105,7 @@ export declare class Resource<T = any> extends EventEmitter {
|
|
|
105
105
|
*
|
|
106
106
|
* This function doesn't do any HTTP requests.
|
|
107
107
|
*/
|
|
108
|
-
go<TGoResource = any>(uri: string): Resource<TGoResource>;
|
|
108
|
+
go<TGoResource = any>(uri: string | Link): Resource<TGoResource>;
|
|
109
109
|
/**
|
|
110
110
|
* Does a HTTP request on the current resource URI
|
|
111
111
|
*/
|
|
@@ -75,13 +75,16 @@ export declare type State<T = any> = {
|
|
|
75
75
|
*/
|
|
76
76
|
contentHeaders(): Headers;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
79
|
-
* own URI.
|
|
78
|
+
* Some formats support embedding resources inside other resources.
|
|
80
79
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
80
|
+
* Please note: generally you should always use the .follow() and
|
|
81
|
+
* .followAll() functions to get access to linked embedded resources.
|
|
83
82
|
*
|
|
84
|
-
*
|
|
83
|
+
* There's several operations that change the State in the Ketting Cache,
|
|
84
|
+
* and usually this erases any associated embedded resources.
|
|
85
|
+
*
|
|
86
|
+
* .follow() and .followAll() will return the embedded resources, and also
|
|
87
|
+
* keeps their respective states fresh when changes are made.
|
|
85
88
|
*/
|
|
86
89
|
getEmbedded(): State[];
|
|
87
90
|
/**
|
|
@@ -75,13 +75,16 @@ export declare type State<T = any> = {
|
|
|
75
75
|
*/
|
|
76
76
|
contentHeaders(): Headers;
|
|
77
77
|
/**
|
|
78
|
-
*
|
|
79
|
-
* own URI.
|
|
78
|
+
* Some formats support embedding resources inside other resources.
|
|
80
79
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
80
|
+
* Please note: generally you should always use the .follow() and
|
|
81
|
+
* .followAll() functions to get access to linked embedded resources.
|
|
83
82
|
*
|
|
84
|
-
*
|
|
83
|
+
* There's several operations that change the State in the Ketting Cache,
|
|
84
|
+
* and usually this erases any associated embedded resources.
|
|
85
|
+
*
|
|
86
|
+
* .follow() and .followAll() will return the embedded resources, and also
|
|
87
|
+
* keeps their respective states fresh when changes are made.
|
|
85
88
|
*/
|
|
86
89
|
getEmbedded(): State[];
|
|
87
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/state/interface.ts"],"names":[],"mappings":";;;AACA,kCAA+C;
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/state/interface.ts"],"names":[],"mappings":";;;AACA,kCAA+C;AA6H/C,SAAgB,OAAO,CAAC,KAA0B;IAEhD,OAAO,CACL,OAAQ,KAAa,CAAC,GAAG,KAAK,QAAQ;QACrC,KAAa,CAAC,KAAK,YAAY,YAAK;QACpC,KAAa,CAAC,OAAO,YAAY,OAAO,CAC1C,CAAC;AAEJ,CAAC;AARD,0BAQC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ketting",
|
|
3
|
-
"version": "7.4.
|
|
3
|
+
"version": "7.4.1",
|
|
4
4
|
"description": "Opiniated HATEAOS / Rest client.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"browser": "browser/ketting.min.js",
|
|
@@ -34,6 +34,9 @@
|
|
|
34
34
|
"browser/ketting.min.js.map",
|
|
35
35
|
"LICENSE"
|
|
36
36
|
],
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=12"
|
|
39
|
+
},
|
|
37
40
|
"types": "dist/index.d.ts",
|
|
38
41
|
"dependencies": {
|
|
39
42
|
"fetch-mw-oauth2": "^1.0.0",
|
package/src/client.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from './state';
|
|
13
13
|
import { parseContentType } from './http/util';
|
|
14
14
|
import { resolve } from './util/uri';
|
|
15
|
-
import { LinkVariables } from './link';
|
|
15
|
+
import { Link, LinkVariables } from './link';
|
|
16
16
|
import { FollowPromiseOne } from './follow-promise';
|
|
17
17
|
import { StateCache, ForeverCache } from './cache';
|
|
18
18
|
import cacheExpireMiddleware from './middlewares/cache';
|
|
@@ -105,13 +105,15 @@ export default class Client {
|
|
|
105
105
|
* @example
|
|
106
106
|
* const res = ketting.go(); // bookmark
|
|
107
107
|
*/
|
|
108
|
-
go<TResource = any>(uri?: string): Resource<TResource> {
|
|
108
|
+
go<TResource = any>(uri?: string|Link): Resource<TResource> {
|
|
109
109
|
|
|
110
110
|
let absoluteUri;
|
|
111
|
-
if (uri
|
|
111
|
+
if (uri === undefined) {
|
|
112
|
+
absoluteUri = this.bookmarkUri;
|
|
113
|
+
} else if (typeof uri === 'string') {
|
|
112
114
|
absoluteUri = resolve(this.bookmarkUri, uri);
|
|
113
115
|
} else {
|
|
114
|
-
absoluteUri =
|
|
116
|
+
absoluteUri = resolve(uri);
|
|
115
117
|
}
|
|
116
118
|
if (!this.resources.has(absoluteUri)) {
|
|
117
119
|
const resource = new Resource(this, absoluteUri);
|
|
@@ -153,20 +155,28 @@ export default class Client {
|
|
|
153
155
|
*/
|
|
154
156
|
cacheState(state: State) {
|
|
155
157
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
158
|
+
// Flatten the list of state objects.
|
|
159
|
+
const newStates = flattenState(state);
|
|
160
|
+
|
|
161
|
+
// Register all cache dependencies.
|
|
162
|
+
for(const nState of newStates) {
|
|
163
|
+
for(const invByLink of nState.links.getMany('inv-by')) {
|
|
164
|
+
this.addCacheDependency(resolve(invByLink), nState.uri);
|
|
165
|
+
}
|
|
159
166
|
}
|
|
160
167
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
resource.emit('update', state);
|
|
168
|
+
// Store all new caches
|
|
169
|
+
for(const nState of newStates) {
|
|
170
|
+
this.cache.store(nState);
|
|
165
171
|
}
|
|
166
172
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
this.
|
|
173
|
+
// Emit 'update' events
|
|
174
|
+
for(const nState of newStates) {
|
|
175
|
+
const resource = this.resources.get(nState.uri);
|
|
176
|
+
if (resource) {
|
|
177
|
+
// We have a resource for this object, notify it as well.
|
|
178
|
+
resource.emit('update', nState);
|
|
179
|
+
}
|
|
170
180
|
}
|
|
171
181
|
|
|
172
182
|
}
|
|
@@ -305,3 +315,17 @@ function expandCacheDependencies(uris: Set<string>, dependencies: Map<string, Se
|
|
|
305
315
|
return output;
|
|
306
316
|
|
|
307
317
|
}
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Take a State object, find all it's embedded resources and return a flat
|
|
321
|
+
* array of all resources at any depth.
|
|
322
|
+
*/
|
|
323
|
+
function flattenState(state: State, result: Set<State> = new Set<State>()): Set<State> {
|
|
324
|
+
|
|
325
|
+
result.add(state);
|
|
326
|
+
for(const embedded of state.getEmbedded()) {
|
|
327
|
+
flattenState(embedded, result);
|
|
328
|
+
}
|
|
329
|
+
return result;
|
|
330
|
+
|
|
331
|
+
}
|
package/src/resource.ts
CHANGED
|
@@ -261,10 +261,13 @@ export class Resource<T = any> extends EventEmitter {
|
|
|
261
261
|
*
|
|
262
262
|
* This function doesn't do any HTTP requests.
|
|
263
263
|
*/
|
|
264
|
-
go<TGoResource = any>(uri: string): Resource<TGoResource> {
|
|
264
|
+
go<TGoResource = any>(uri: string|Link): Resource<TGoResource> {
|
|
265
265
|
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
if (typeof uri === 'string') {
|
|
267
|
+
return this.client.go(resolve(this.uri, uri));
|
|
268
|
+
} else {
|
|
269
|
+
return this.client.go(uri);
|
|
270
|
+
}
|
|
268
271
|
|
|
269
272
|
}
|
|
270
273
|
|
package/src/state/interface.ts
CHANGED
|
@@ -88,13 +88,16 @@ export type State<T = any> = {
|
|
|
88
88
|
contentHeaders(): Headers;
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
92
|
-
* own URI.
|
|
91
|
+
* Some formats support embedding resources inside other resources.
|
|
93
92
|
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
93
|
+
* Please note: generally you should always use the .follow() and
|
|
94
|
+
* .followAll() functions to get access to linked embedded resources.
|
|
96
95
|
*
|
|
97
|
-
*
|
|
96
|
+
* There's several operations that change the State in the Ketting Cache,
|
|
97
|
+
* and usually this erases any associated embedded resources.
|
|
98
|
+
*
|
|
99
|
+
* .follow() and .followAll() will return the embedded resources, and also
|
|
100
|
+
* keeps their respective states fresh when changes are made.
|
|
98
101
|
*/
|
|
99
102
|
getEmbedded(): State[];
|
|
100
103
|
|