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 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
- * `pagingStrategy`: one of `pageNumber`, `offset`, `pageToken`, `dateRange` or (experimental) `rangeHeader`
42
- * `query`: an object containing query parameters to add in addition to the paging-related ones
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 paging strategy `dateRange`)
46
- * when using `forcePageSize`, you can add `forcePageSizeParamInQuery` if it's not `pageSize` (not applicable to paging strategies `dateRange` and `rangeHeader`).
47
- * for a `pageNumber` paging strategy, you can add `pageNumberParamInQuery` if it's not `page`.
48
- * for an `offset` paging strategy, you can add `offsetParamInQuery` if it's not `offset`.
49
- * for a `pageToken` paging strategy, you can add `pageTokenParamInQuery` if it's not `pageToken` and `pageTokenPathInResponse` if it's not `['nextPageToken']`
50
- * for a `dateRange` paging 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'`
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
@@ -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
- const response =
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['application/json'];
49
- if (response.syncable && response.syncable.name === this.syncableName) {
50
- const config = {
51
- baseUrl:
52
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
- schema.servers && schema.servers.length > 0
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
- console.log('baseUrl:', config.baseUrl, schema.servers);
68
- if (response.syncable.pagingStrategy === 'pageNumber') {
69
- config.pageNumberParamInQuery =
70
- response.syncable.pageNumberParamInQuery || 'page';
71
- }
72
- else if (response.syncable.pagingStrategy === 'offset') {
73
- config.offsetParamInQuery =
74
- response.syncable.offsetParamInQuery || 'offset';
75
- }
76
- else if (response.syncable.pagingStrategy === 'pageToken') {
77
- config.pageTokenParamInQuery =
78
- response.syncable.pageTokenParamInQuery || 'pageToken';
79
- config.nextPageTokenPathInResponse = response.syncable
80
- .nextPageTokenPathInResponse || ['nextPageToken'];
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
- else if (response.syncable.pagingStrategy === 'dateRange') {
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 || null;
201
- const endDate = this.config.endDate || null;
202
- while (true) {
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', startDate);
245
+ url.searchParams.append('startDate', cursor.toString());
209
246
  }
210
247
  if (endDate) {
211
- url.searchParams.append('endDate', 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
- if (data.items.length === 0 || !data.hasMore) {
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['pagingStrategy']) {
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['pagingStrategy']}`);
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syncables",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Generate sync engine code from OpenAPI specifications",
5
5
  "main": "build/src/syncable.js",
6
6
  "type": "module",