@compassdigital/sdk.typescript 3.0.0-beta.10 → 3.0.0-beta.11

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/gen.ts CHANGED
@@ -60,10 +60,11 @@ const operationIDs : Record<string, string> = {
60
60
  "get /promo": "get_promos",
61
61
  "get /schedule": "get_schedules",
62
62
  "get /brand": "get_brands",
63
- "get /announcement/resource": "get_resources"
63
+ "get /announcement/resource": "get_resources",
64
+ "get /order/location/brand/{id}": "get_order_location_brand",
64
65
  };
65
66
 
66
- class CodeGenerator {
67
+ export class CodeGenerator {
67
68
 
68
69
  private imports: ClientImport[] = [];
69
70
  private methods: ClientMethod[] = [];
@@ -249,7 +250,7 @@ class CodeGenerator {
249
250
  * Infer the operation name from the method and parameter.
250
251
  * These are a bunch of dirty hacks to make the generated names consistent.
251
252
  */
252
- private inferName(op: OperationDetails, service: ManifestService): OperationName {
253
+ inferName(op: OperationDetails, service: ManifestService): OperationName {
253
254
  let { method, path } = op;
254
255
  let path_segments: string[] = [];
255
256
  // use the operationId from our collection if we have one.
@@ -350,4 +351,10 @@ async function main() {
350
351
  await gen.generate(manifest);
351
352
  }
352
353
 
353
- main();
354
+ /**
355
+ * Only generate if --run flag was passed
356
+ */
357
+ const args = process.argv.splice(2);
358
+ if (args[0] === "--run") {
359
+ main();
360
+ }
package/lib/base.d.ts CHANGED
@@ -7,6 +7,10 @@ export interface RequestOptions {
7
7
  base_url?: string;
8
8
  intercept?: InterceptFn;
9
9
  }
10
+ /**
11
+ * The request data provided to intercept
12
+ * functions.
13
+ */
10
14
  export interface RequestData {
11
15
  name: string;
12
16
  service: string;
@@ -15,41 +19,117 @@ export interface RequestData {
15
19
  headers: Record<string, string>;
16
20
  body?: string;
17
21
  }
22
+ /**
23
+ * The response data expected from
24
+ * intercept functions.
25
+ */
18
26
  export interface ResponseData {
19
27
  ok: boolean;
20
28
  status: number;
21
29
  body: string;
22
30
  }
31
+ /**
32
+ * A function that performs an https request.
33
+ */
23
34
  export declare type FetchFn = (req: RequestData) => Promise<ResponseData>;
35
+ /**
36
+ * A function that intercepts an http request and returns a response.
37
+ */
24
38
  export declare type InterceptFn = (req: RequestData, fetch: FetchFn) => Promise<ResponseData>;
25
- export declare type ServiceRequestOptions = Omit<RequestOptions, "allow">;
26
- export interface ServiceClientOptions extends ServiceRequestOptions {
27
- services?: Record<string, ServiceRequestOptions>;
28
- methods?: Record<string, ServiceRequestOptions>;
39
+ /**
40
+ * We have to re-implement the promise methods instead of just existing
41
+ * the existing Promise class due to: https://github.com/microsoft/TypeScript/issues/15202
42
+ */
43
+ export declare class ResponsePromise<T> implements Promise<T> {
44
+ private promise;
45
+ /**
46
+ * Implements Promise interface.
47
+ */
48
+ [Symbol.toStringTag]: string;
49
+ constructor(promise: Promise<T>);
50
+ /**
51
+ * Implements Promise interface.
52
+ */
53
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): ResponsePromise<TResult1 | TResult2>;
54
+ /**
55
+ * Implements Promise interface.
56
+ */
57
+ catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): ResponsePromise<T | TResult>;
58
+ /**
59
+ * Implements Promise interface.
60
+ */
61
+ finally(onfinally?: (() => void) | null): ResponsePromise<T>;
62
+ /**
63
+ * Returns a promise that resolves to null if http status code
64
+ * or service error code matches one of the provided codes.
65
+ * If no codes are specified, all codes are ignored.
66
+ */
67
+ ignore(...codes: number[]): ResponsePromise<T | null>;
29
68
  }
69
+ /**
70
+ * An error returned from an api service.
71
+ */
30
72
  export declare class ServiceError extends Error {
31
73
  status: number;
32
74
  code: number;
33
75
  constructor(status: number, // http status
34
76
  code: number, // service error code
35
77
  message: string);
78
+ /**
79
+ * Returns the http status code from err.
80
+ * If err isn't an instance of ServiceError, -1 is returned.
81
+ */
36
82
  static status(err: any): number;
83
+ /**
84
+ * Returns the service error code from err.
85
+ * If err isn't an instance of ServiceError, -1 is returned.
86
+ */
37
87
  static code(err: any): number;
88
+ /**
89
+ * Returns a promise that resolves to null if http status code
90
+ * or service error code matches one of the provided codes.
91
+ * If no codes are specified, all codes are ignored.
92
+ */
38
93
  static ignore<T>(codes: number[], response: Promise<T>): Promise<T | null>;
94
+ /**
95
+ * Constructs a ServiceError from the provided response data.
96
+ */
39
97
  static from_res(res: ResponseData): ServiceError;
40
98
  }
99
+ /**
100
+ * BaseServiceClient contains the logic for executing http requests.
101
+ * This class is meant to be extended by the generated code.
102
+ */
41
103
  export declare abstract class BaseServiceClient {
42
104
  private options;
43
- constructor(options?: ServiceClientOptions);
105
+ constructor(options?: RequestOptions);
44
106
  /**
45
107
  * Combine the route and query parameters into a full url.
46
108
  */
47
109
  private build_url;
110
+ /**
111
+ * Perform the http request or pass it to the intercept function
112
+ * if one was configured.
113
+ */
48
114
  private fetch;
115
+ /**
116
+ * Returns true if the response status was a 4xx error.
117
+ */
49
118
  private is_4xx;
119
+ /**
120
+ * Returns the merged options.
121
+ */
50
122
  private get_options;
123
+ /**
124
+ * A delegate to _request that wraps the response in a ResponsePromise.
125
+ */
51
126
  protected request(service: string, name: string, method: string, route: string, body: any, options?: {
52
127
  query?: any;
53
- } & RequestOptions): Promise<any>;
128
+ } & RequestOptions): ResponsePromise<any>;
129
+ /**
130
+ * The main logic for fulfilling a request as perscribed by
131
+ * the request options.
132
+ */
133
+ private _request;
54
134
  }
55
135
  //# sourceMappingURL=base.d.ts.map
package/lib/base.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAE7B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oBAAY,OAAO,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAElE,oBAAY,WAAW,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEtF,oBAAY,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAElE,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACjD;AAED,qBAAa,YAAa,SAAQ,KAAK;IAE5B,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EAAE,cAAc;IAC9B,IAAI,EAAE,MAAM,EAAI,qBAAqB;IAC5C,OAAO,EAAE,MAAM;IASjB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAO/B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;WAOhB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAehF,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY;CAYjD;AAED,8BAAsB,iBAAiB;IACrC,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,CAAC,EAAE,oBAAoB;IAI1C;;OAEG;IACH,OAAO,CAAC,SAAS;YAoBH,KAAK;IAgBnB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,WAAW;cAiBH,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,GAAG,EACT,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,cAAmB,GAC7C,OAAO,CAAC,GAAG,CAAC;CAkChB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
package/lib/base.js CHANGED
@@ -64,9 +64,59 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
64
64
  var __importDefault = (this && this.__importDefault) || function (mod) {
65
65
  return (mod && mod.__esModule) ? mod : { "default": mod };
66
66
  };
67
+ var _a;
67
68
  Object.defineProperty(exports, "__esModule", { value: true });
68
- exports.BaseServiceClient = exports.ServiceError = void 0;
69
+ exports.BaseServiceClient = exports.ServiceError = exports.ResponsePromise = void 0;
69
70
  var cross_fetch_1 = __importDefault(require("cross-fetch"));
71
+ /**
72
+ * We have to re-implement the promise methods instead of just existing
73
+ * the existing Promise class due to: https://github.com/microsoft/TypeScript/issues/15202
74
+ */
75
+ var ResponsePromise = /** @class */ (function () {
76
+ function ResponsePromise(promise) {
77
+ this.promise = promise;
78
+ /**
79
+ * Implements Promise interface.
80
+ */
81
+ this[_a] = "[object ResponsePromise]";
82
+ }
83
+ /**
84
+ * Implements Promise interface.
85
+ */
86
+ ResponsePromise.prototype.then = function (onfulfilled, onrejected) {
87
+ return new ResponsePromise(this.promise.then(onfulfilled, onrejected));
88
+ };
89
+ /**
90
+ * Implements Promise interface.
91
+ */
92
+ ResponsePromise.prototype.catch = function (onrejected) {
93
+ return new ResponsePromise(this.promise.catch(onrejected));
94
+ };
95
+ /**
96
+ * Implements Promise interface.
97
+ */
98
+ ResponsePromise.prototype.finally = function (onfinally) {
99
+ return new ResponsePromise(this.promise.finally(onfinally));
100
+ };
101
+ /**
102
+ * Returns a promise that resolves to null if http status code
103
+ * or service error code matches one of the provided codes.
104
+ * If no codes are specified, all codes are ignored.
105
+ */
106
+ ResponsePromise.prototype.ignore = function () {
107
+ var codes = [];
108
+ for (var _i = 0; _i < arguments.length; _i++) {
109
+ codes[_i] = arguments[_i];
110
+ }
111
+ return new ResponsePromise(ServiceError.ignore(codes, this.promise));
112
+ };
113
+ return ResponsePromise;
114
+ }());
115
+ exports.ResponsePromise = ResponsePromise;
116
+ _a = Symbol.toStringTag;
117
+ /**
118
+ * An error returned from an api service.
119
+ */
70
120
  var ServiceError = /** @class */ (function (_super) {
71
121
  __extends(ServiceError, _super);
72
122
  function ServiceError(status, // http status
@@ -81,30 +131,46 @@ var ServiceError = /** @class */ (function (_super) {
81
131
  Object.setPrototypeOf(_this, ServiceError.prototype);
82
132
  return _this;
83
133
  }
134
+ /**
135
+ * Returns the http status code from err.
136
+ * If err isn't an instance of ServiceError, -1 is returned.
137
+ */
84
138
  ServiceError.status = function (err) {
85
139
  if (err instanceof ServiceError) {
86
140
  return err.status;
87
141
  }
88
142
  return -1;
89
143
  };
144
+ /**
145
+ * Returns the service error code from err.
146
+ * If err isn't an instance of ServiceError, -1 is returned.
147
+ */
90
148
  ServiceError.code = function (err) {
91
149
  if (err instanceof ServiceError) {
92
150
  return err.code;
93
151
  }
94
152
  return -1;
95
153
  };
154
+ /**
155
+ * Returns a promise that resolves to null if http status code
156
+ * or service error code matches one of the provided codes.
157
+ * If no codes are specified, all codes are ignored.
158
+ */
96
159
  ServiceError.ignore = function (codes, response) {
97
160
  return __awaiter(this, void 0, void 0, function () {
98
161
  var err_1, _i, codes_1, code;
99
- return __generator(this, function (_a) {
100
- switch (_a.label) {
162
+ return __generator(this, function (_b) {
163
+ switch (_b.label) {
101
164
  case 0:
102
- _a.trys.push([0, 2, , 3]);
165
+ _b.trys.push([0, 2, , 3]);
103
166
  return [4 /*yield*/, response];
104
- case 1: return [2 /*return*/, _a.sent()];
167
+ case 1: return [2 /*return*/, _b.sent()];
105
168
  case 2:
106
- err_1 = _a.sent();
169
+ err_1 = _b.sent();
107
170
  if (err_1 instanceof ServiceError) {
171
+ if (codes.length === 0) {
172
+ return [2 /*return*/, null];
173
+ }
108
174
  for (_i = 0, codes_1 = codes; _i < codes_1.length; _i++) {
109
175
  code = codes_1[_i];
110
176
  if (err_1.status === code || err_1.code === code) {
@@ -118,6 +184,9 @@ var ServiceError = /** @class */ (function (_super) {
118
184
  });
119
185
  });
120
186
  };
187
+ /**
188
+ * Constructs a ServiceError from the provided response data.
189
+ */
121
190
  ServiceError.from_res = function (res) {
122
191
  var message = res.body;
123
192
  var code = res.status;
@@ -134,6 +203,10 @@ var ServiceError = /** @class */ (function (_super) {
134
203
  return ServiceError;
135
204
  }(Error));
136
205
  exports.ServiceError = ServiceError;
206
+ /**
207
+ * BaseServiceClient contains the logic for executing http requests.
208
+ * This class is meant to be extended by the generated code.
209
+ */
137
210
  var BaseServiceClient = /** @class */ (function () {
138
211
  function BaseServiceClient(options) {
139
212
  this.options = options !== null && options !== void 0 ? options : {};
@@ -141,8 +214,8 @@ var BaseServiceClient = /** @class */ (function () {
141
214
  /**
142
215
  * Combine the route and query parameters into a full url.
143
216
  */
144
- BaseServiceClient.prototype.build_url = function (route, _a, params) {
145
- var base_url = _a.base_url, _b = _a.stage, stage = _b === void 0 ? "dev" : _b;
217
+ BaseServiceClient.prototype.build_url = function (route, _b, params) {
218
+ var base_url = _b.base_url, _c = _b.stage, stage = _c === void 0 ? "dev" : _c;
146
219
  var url = "https://api.compassdigital.org/" + stage + route;
147
220
  // use the base url if one was provided.
148
221
  if (base_url) {
@@ -153,8 +226,8 @@ var BaseServiceClient = /** @class */ (function () {
153
226
  }
154
227
  // add query parameters.
155
228
  var query = [];
156
- for (var _i = 0, _c = Object.entries(params); _i < _c.length; _i++) {
157
- var _d = _c[_i], name_1 = _d[0], value = _d[1];
229
+ for (var _i = 0, _d = Object.entries(params); _i < _d.length; _i++) {
230
+ var _e = _d[_i], name_1 = _e[0], value = _e[1];
158
231
  query.push(encodeURIComponent(name_1) + "=" + encodeURIComponent(value));
159
232
  }
160
233
  if (query.length > 0) {
@@ -162,12 +235,16 @@ var BaseServiceClient = /** @class */ (function () {
162
235
  }
163
236
  return url;
164
237
  };
238
+ /**
239
+ * Perform the http request or pass it to the intercept function
240
+ * if one was configured.
241
+ */
165
242
  BaseServiceClient.prototype.fetch = function (req, options) {
166
243
  return __awaiter(this, void 0, void 0, function () {
167
244
  var res;
168
- var _a;
169
- return __generator(this, function (_b) {
170
- switch (_b.label) {
245
+ var _b;
246
+ return __generator(this, function (_c) {
247
+ switch (_c.label) {
171
248
  case 0:
172
249
  if (options === null || options === void 0 ? void 0 : options.intercept) {
173
250
  return [2 /*return*/, options.intercept(req, this.fetch.bind(this))];
@@ -178,37 +255,52 @@ var BaseServiceClient = /** @class */ (function () {
178
255
  headers: req.headers,
179
256
  })];
180
257
  case 1:
181
- res = _b.sent();
182
- _a = {
258
+ res = _c.sent();
259
+ _b = {
183
260
  ok: res.ok,
184
261
  status: res.status
185
262
  };
186
263
  return [4 /*yield*/, res.text()];
187
- case 2: return [2 /*return*/, (_a.body = _b.sent(),
188
- _a)];
264
+ case 2: return [2 /*return*/, (_b.body = _c.sent(),
265
+ _b)];
189
266
  }
190
267
  });
191
268
  });
192
269
  };
270
+ /**
271
+ * Returns true if the response status was a 4xx error.
272
+ */
193
273
  BaseServiceClient.prototype.is_4xx = function (res) {
194
274
  return 400 <= res.status && res.status < 500;
195
275
  };
196
- BaseServiceClient.prototype.get_options = function (service, name, options) {
197
- var _a, _b;
198
- var service_options = (_a = this.options.services) === null || _a === void 0 ? void 0 : _a[service];
199
- var method_options = (_b = this.options.methods) === null || _b === void 0 ? void 0 : _b[name];
200
- return __assign(__assign(__assign(__assign(__assign({}, this.options), service_options), method_options), options), { headers: __assign(__assign(__assign(__assign({}, this.options.headers), method_options === null || method_options === void 0 ? void 0 : method_options.headers), service_options === null || service_options === void 0 ? void 0 : service_options.headers), options.headers) });
276
+ /**
277
+ * Returns the merged options.
278
+ */
279
+ BaseServiceClient.prototype.get_options = function (options) {
280
+ return __assign(__assign(__assign({}, this.options), options), { headers: __assign(__assign({}, this.options.headers), options.headers) });
201
281
  };
282
+ /**
283
+ * A delegate to _request that wraps the response in a ResponsePromise.
284
+ */
202
285
  BaseServiceClient.prototype.request = function (service, name, method, route, body, options) {
203
- var _a;
286
+ if (options === void 0) { options = {}; }
287
+ var promise = this._request(service, name, method, route, body, options);
288
+ return new ResponsePromise(promise);
289
+ };
290
+ /**
291
+ * The main logic for fulfilling a request as perscribed by
292
+ * the request options.
293
+ */
294
+ BaseServiceClient.prototype._request = function (service, name, method, route, body, options) {
295
+ var _b;
204
296
  if (options === void 0) { options = {}; }
205
297
  return __awaiter(this, void 0, void 0, function () {
206
298
  var url, headers, req, res, err, data;
207
- return __generator(this, function (_b) {
208
- switch (_b.label) {
299
+ return __generator(this, function (_c) {
300
+ switch (_c.label) {
209
301
  case 0:
210
- options = this.get_options(service, name, options);
211
- url = this.build_url(route, options, (_a = options.query) !== null && _a !== void 0 ? _a : {});
302
+ options = this.get_options(options);
303
+ url = this.build_url(route, options, (_b = options.query) !== null && _b !== void 0 ? _b : {});
212
304
  headers = Object.assign({
213
305
  "User-Agent": "CDL/ServiceClient"
214
306
  }, options.headers);
@@ -224,7 +316,7 @@ var BaseServiceClient = /** @class */ (function () {
224
316
  }
225
317
  return [4 /*yield*/, this.fetch(req, options)];
226
318
  case 1:
227
- res = _b.sent();
319
+ res = _c.sent();
228
320
  if (!res.ok) {
229
321
  err = ServiceError.from_res(res);
230
322
  if (options.debug) {
package/lib/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"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"}