syncables 0.10.0 → 0.11.0
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 +10 -8
- package/build/src/syncable.js +114 -56
- package/build/src/syncable.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,16 +38,18 @@ components:
|
|
|
38
38
|
|
|
39
39
|
Under `paths['/widgets']['get']['responses']['200']['content']['application/json']`, add an object `syncable`, in which you can specify:
|
|
40
40
|
* `name`: a `string` descriptor of the collection, e.g. `"widgets"`
|
|
41
|
-
* `
|
|
42
|
-
* `query`: an object containing query parameters to add in addition to the
|
|
41
|
+
* `paginationStrategy`: one of `pageNumber`, `offset`, `pageToken`, `dateRange`, `rangeHeader`, or `confirmationBased`.
|
|
42
|
+
* `query`: an object containing query parameters to add in addition to the pagination-related ones
|
|
43
43
|
* `itemsPathInResponse`: path within the response body schema, as an array of strings, that contains the array of items (default: `[]` for the response body root)
|
|
44
44
|
* `defaultPageSize`: tell Syncable how many items per page (max) to expect by default
|
|
45
|
-
* `forcePageSize`: if possible, let Syncable tell the API which page size to use (not applicable to
|
|
46
|
-
* when using `forcePageSize`, you can add `forcePageSizeParamInQuery` if it's not `pageSize` (not applicable to
|
|
47
|
-
* for a `pageNumber`
|
|
48
|
-
* for an `offset`
|
|
49
|
-
* for a `pageToken`
|
|
50
|
-
* for a `dateRange`
|
|
45
|
+
* `forcePageSize`: if possible, let Syncable tell the API which page size to use (not applicable to pagination strategy `dateRange`)
|
|
46
|
+
* when using `forcePageSize`, you can add `forcePageSizeParamInQuery` if it's not `pageSize` (not applicable to pagination strategies `dateRange` and `rangeHeader`).
|
|
47
|
+
* for a `pageNumber` pagination strategy, you can add `pageNumberParamInQuery` if it's not `page`.
|
|
48
|
+
* for an `offset` pagination strategy, you can add `offsetParamInQuery` if it's not `offset`.
|
|
49
|
+
* for a `pageToken` pagination strategy, you can add `pageTokenParamInQuery` if it's not `pageToken` and `pageTokenPathInResponse` if it's not `['nextPageToken']`
|
|
50
|
+
* for a `dateRange` pagination strategy, you can add `startDateParamInQuery` if it's not `startDate`, `endDateParamInQuery` if it's not `endDate`, `startDate` if it's not `'20000101000000'`, and `endDate` if it's not `'99990101000000'`
|
|
51
|
+
* for a `confirmationBased` pagination strategy, `confirmOperation.path` and `confirmOperation.method`. Then at that operation, you can add `confirmOperation.pathTemplate`.
|
|
52
|
+
* `idField` to indicate which property of response items is used as the unique identifier (currently only used for confirmationBased pagination).
|
|
51
53
|
|
|
52
54
|
## Usage
|
|
53
55
|
### Create the OAD
|
package/build/src/syncable.js
CHANGED
|
@@ -40,58 +40,87 @@ export class Syncable extends EventEmitter {
|
|
|
40
40
|
specObj = parse(this.specStr);
|
|
41
41
|
}
|
|
42
42
|
const schema = await dereference(specObj);
|
|
43
|
+
let solution = null;
|
|
43
44
|
for (const path of Object.keys(schema.paths)) {
|
|
44
45
|
const pathItem = schema.paths[path];
|
|
45
46
|
if (pathItem.get && pathItem.get.responses['200']) {
|
|
46
|
-
|
|
47
|
+
// console.log('Checking 200 response content', path, typeof (pathItem.get.responses['200'] as any).content);
|
|
48
|
+
if (
|
|
47
49
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
-
pathItem.get.responses['200'].content
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
-
schema.servers[0].url
|
|
56
|
-
: '',
|
|
57
|
-
urlPath: path,
|
|
58
|
-
name: response.syncable.name,
|
|
59
|
-
pagingStrategy: response.syncable.pagingStrategy,
|
|
60
|
-
query: response.syncable.query || {},
|
|
61
|
-
itemsPathInResponse: response.syncable.itemsPathInResponse || [],
|
|
62
|
-
defaultPageSize: response.syncable.defaultPageSize,
|
|
63
|
-
forcePageSize: response.syncable.forcePageSize,
|
|
64
|
-
forcePageSizeParamInQuery: response.syncable.forcePageSizeParamInQuery,
|
|
65
|
-
};
|
|
50
|
+
typeof pathItem.get.responses['200'].content !== 'object') {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
+
Object.keys(pathItem.get.responses['200'].content).forEach((contentType) => {
|
|
55
|
+
// console.log('Checking path', path, contentType);
|
|
66
56
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
-
|
|
68
|
-
if (response.syncable
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
response.syncable.
|
|
79
|
-
|
|
80
|
-
.
|
|
57
|
+
const response = pathItem.get.responses['200'].content[contentType];
|
|
58
|
+
if (response.syncable &&
|
|
59
|
+
response.syncable.name === this.syncableName) {
|
|
60
|
+
const config = {
|
|
61
|
+
baseUrl:
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
+
schema.servers && schema.servers.length > 0
|
|
64
|
+
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
schema.servers[0].url
|
|
66
|
+
: '',
|
|
67
|
+
urlPath: path,
|
|
68
|
+
name: response.syncable.name,
|
|
69
|
+
paginationStrategy: response.syncable.paginationStrategy,
|
|
70
|
+
query: response.syncable.query || {},
|
|
71
|
+
itemsPathInResponse: response.syncable.itemsPathInResponse || [],
|
|
72
|
+
defaultPageSize: response.syncable.defaultPageSize,
|
|
73
|
+
forcePageSize: response.syncable.forcePageSize,
|
|
74
|
+
forcePageSizeParamInQuery: response.syncable.forcePageSizeParamInQuery,
|
|
75
|
+
idField: response.syncable.idField || 'id',
|
|
76
|
+
};
|
|
77
|
+
// console.log('baseUrl:', config.baseUrl, (schema as any).servers);
|
|
78
|
+
if (response.syncable.paginationStrategy === 'pageNumber') {
|
|
79
|
+
config.pageNumberParamInQuery =
|
|
80
|
+
response.syncable.pageNumberParamInQuery || 'page';
|
|
81
|
+
}
|
|
82
|
+
else if (response.syncable.paginationStrategy === 'offset') {
|
|
83
|
+
config.offsetParamInQuery =
|
|
84
|
+
response.syncable.offsetParamInQuery || 'offset';
|
|
85
|
+
}
|
|
86
|
+
else if (response.syncable.paginationStrategy === 'pageToken') {
|
|
87
|
+
config.pageTokenParamInQuery =
|
|
88
|
+
response.syncable.pageTokenParamInQuery || 'pageToken';
|
|
89
|
+
config.nextPageTokenPathInResponse = response.syncable
|
|
90
|
+
.nextPageTokenPathInResponse || ['nextPageToken'];
|
|
91
|
+
}
|
|
92
|
+
else if (response.syncable.paginationStrategy === 'dateRange') {
|
|
93
|
+
config.startDateParamInQuery =
|
|
94
|
+
response.syncable.startDateParamInQuery || 'startDate';
|
|
95
|
+
config.endDateParamInQuery =
|
|
96
|
+
response.syncable.endDateParamInQuery || 'endDate';
|
|
97
|
+
config.startDate =
|
|
98
|
+
response.syncable.startDate || '20000101000000';
|
|
99
|
+
config.endDate = response.syncable.endDate || '99990101000000';
|
|
100
|
+
}
|
|
101
|
+
else if (response.syncable.paginationStrategy === 'confirmationBased') {
|
|
102
|
+
// console.log('setting confirmOperation', response.syncable.confirmOperation);
|
|
103
|
+
const confirmOperationSpec = response.syncable.confirmOperation;
|
|
104
|
+
const confirmConfig = specObj.paths[confirmOperationSpec.path][confirmOperationSpec.method]?.responses['200']?.content?.['application/json']?.confirmOperation;
|
|
105
|
+
// console.log(confirmConfig);
|
|
106
|
+
config.confirmOperation = {
|
|
107
|
+
pathTemplate: confirmConfig.pathTemplate,
|
|
108
|
+
method: confirmOperationSpec.method,
|
|
109
|
+
path: confirmOperationSpec.path,
|
|
110
|
+
};
|
|
111
|
+
// console.log('determined confirmOperation config', config.confirmOperation);
|
|
112
|
+
// throw new Error('debug');
|
|
113
|
+
}
|
|
114
|
+
this.config = config;
|
|
115
|
+
// console.log('Found syncable config:', this.config, response.syncable);
|
|
116
|
+
solution = schema;
|
|
81
117
|
}
|
|
82
|
-
|
|
83
|
-
config.startDateParamInQuery =
|
|
84
|
-
response.syncable.startDateParamInQuery || 'startDate';
|
|
85
|
-
config.endDateParamInQuery =
|
|
86
|
-
response.syncable.endDateParamInQuery || 'endDate';
|
|
87
|
-
config.startDate = response.syncable.startDate || '20000101000000';
|
|
88
|
-
config.endDate = response.syncable.endDate || '99990101000000';
|
|
89
|
-
}
|
|
90
|
-
this.config = config;
|
|
91
|
-
return schema;
|
|
92
|
-
}
|
|
118
|
+
});
|
|
93
119
|
}
|
|
94
120
|
}
|
|
121
|
+
if (solution) {
|
|
122
|
+
return solution;
|
|
123
|
+
}
|
|
95
124
|
throw new Error(`Syncable with name "${this.syncableName}" not found in spec`);
|
|
96
125
|
}
|
|
97
126
|
async doFetch(url, headers = {}, minNumItemsToExpect = 1) {
|
|
@@ -197,26 +226,31 @@ export class Syncable extends EventEmitter {
|
|
|
197
226
|
}
|
|
198
227
|
async dateRangeFetch() {
|
|
199
228
|
let allData = [];
|
|
200
|
-
let startDate = this.config.startDate
|
|
201
|
-
|
|
202
|
-
|
|
229
|
+
let startDate = parseInt(this.config.startDate, 10);
|
|
230
|
+
let endDate = parseInt(this.config.endDate, 10);
|
|
231
|
+
if (isNaN(startDate)) {
|
|
232
|
+
startDate = 20000101000000;
|
|
233
|
+
}
|
|
234
|
+
if (isNaN(endDate)) {
|
|
235
|
+
endDate = 99990101000000;
|
|
236
|
+
}
|
|
237
|
+
let cursor = startDate;
|
|
238
|
+
const increment = /* this.config.increment || */ 10000000000; // yearly increments
|
|
239
|
+
while (cursor <= endDate) {
|
|
203
240
|
const url = this.getUrl();
|
|
204
241
|
Object.entries(this.config.query || {}).forEach(([key, value]) => {
|
|
205
242
|
url.searchParams.append(key, value);
|
|
206
243
|
});
|
|
207
244
|
if (startDate) {
|
|
208
|
-
url.searchParams.append('startDate',
|
|
245
|
+
url.searchParams.append('startDate', cursor.toString());
|
|
209
246
|
}
|
|
210
247
|
if (endDate) {
|
|
211
|
-
url.searchParams.append('endDate',
|
|
248
|
+
url.searchParams.append('endDate', (cursor + increment - 1).toString());
|
|
212
249
|
}
|
|
250
|
+
// console.log('date range fetching', url.toString());
|
|
213
251
|
const data = await this.doFetch(url.toString());
|
|
214
252
|
allData = allData.concat(data.items);
|
|
215
|
-
|
|
216
|
-
break;
|
|
217
|
-
}
|
|
218
|
-
// Assuming items are sorted by date ascending
|
|
219
|
-
startDate = data.items[data.items.length - 1].date; // FIXME
|
|
253
|
+
cursor += increment;
|
|
220
254
|
}
|
|
221
255
|
return allData;
|
|
222
256
|
}
|
|
@@ -243,8 +277,30 @@ export class Syncable extends EventEmitter {
|
|
|
243
277
|
}
|
|
244
278
|
return allData;
|
|
245
279
|
}
|
|
280
|
+
async confirmationBasedFetch() {
|
|
281
|
+
let allData = [];
|
|
282
|
+
let thisBatch;
|
|
283
|
+
do {
|
|
284
|
+
thisBatch = await this.doFetch(this.getUrl().toString());
|
|
285
|
+
// console.log('fetched batch', thisBatch.items.length, thisBatch);
|
|
286
|
+
// console.log('confirming', this.config.confirmOperation);
|
|
287
|
+
allData = allData.concat(thisBatch.items);
|
|
288
|
+
const promises = Promise.all(thisBatch.items.map(async (item) => {
|
|
289
|
+
const itemId = item[this.config.idField].toString();
|
|
290
|
+
// console.log('parsed out item id', item, itemId)
|
|
291
|
+
const confirmationUrl = urljoin(this.config.baseUrl, this.config.confirmOperation.pathTemplate.replace('{id}', itemId));
|
|
292
|
+
// console.log('confirming', confirmationUrl);
|
|
293
|
+
await this.fetchFunction(confirmationUrl, {
|
|
294
|
+
method: this.config.confirmOperation.method,
|
|
295
|
+
headers: Object.assign({}, this.authHeaders),
|
|
296
|
+
});
|
|
297
|
+
}));
|
|
298
|
+
await promises;
|
|
299
|
+
} while (thisBatch.hasMore);
|
|
300
|
+
return allData;
|
|
301
|
+
}
|
|
246
302
|
async doFullFetch() {
|
|
247
|
-
switch (this.config['
|
|
303
|
+
switch (this.config['paginationStrategy']) {
|
|
248
304
|
case 'pageNumber':
|
|
249
305
|
return this.pageNumberFetch();
|
|
250
306
|
case 'offset':
|
|
@@ -255,8 +311,10 @@ export class Syncable extends EventEmitter {
|
|
|
255
311
|
return this.dateRangeFetch();
|
|
256
312
|
case 'rangeHeader':
|
|
257
313
|
return this.rangeHeaderFetch();
|
|
314
|
+
case 'confirmationBased':
|
|
315
|
+
return this.confirmationBasedFetch();
|
|
258
316
|
default:
|
|
259
|
-
throw new Error(`Unknown paging strategy: ${this.config['
|
|
317
|
+
throw new Error(`Unknown paging strategy: ${this.config['paginationStrategy']}`);
|
|
260
318
|
}
|
|
261
319
|
}
|
|
262
320
|
async fullFetch() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncable.js","sourceRoot":"","sources":["../../src/syncable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"syncable.js","sourceRoot":"","sources":["../../src/syncable.ts"],"names":[],"mappings":"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"}
|