chainflow 0.1.7 → 0.1.8

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
@@ -1,5 +1,5 @@
1
1
  <h1 align="center" style="border-bottom: none;">🌊hainflow</h1>
2
- <h3 align="center">A library to create dynamic and composable API call workflows.</h3>
2
+ <h3 align="center">An Open Source library to create dynamic and composable API call workflows.</h3>
3
3
  <div align="center">
4
4
 
5
5
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://github.com/edwinlzs/chainflow/blob/main/LICENSE)
@@ -11,22 +11,23 @@
11
11
  [![codecov](https://img.shields.io/codecov/c/gh/edwinlzs/chainflow?token=O55JNRTCM5&style=flat-square&color=23a133)](https://codecov.io/gh/edwinlzs/chainflow)
12
12
  </div>
13
13
 
14
- ## Not Released Yet
15
-
16
- Hi! If you are here, you're a bit early. I'm still setting up some stuff for the first release. Check back in later!
17
-
18
14
  ## Documentation
19
15
 
20
16
  Read the guides over at [Chainflow Docs](https://edwinlzs.github.io/chainflow-docs/) to get started!
21
17
 
22
- ## Use Cases
18
+ ## When might Chainflow be useful?
19
+
20
+ 1. **_Setting up demo data_**
21
+
22
+ Say you have an application that you're developing new features for and you'd like to demonstrate those features. You may need your app to be in a certain context and hence your database in a specific state - perhaps a user has to be logged in with certain permissions, and to have already created a "group" in the app and added other users to that group. You may use raw SQL or other DB scripts to put your DB into that state by inserting users, roles, etc.. However, those scripts could miss out on important side effects relevant to the business context of your app that tend to be built into the services exposed by your backend server. Hence, you can use Chainflow to help compose API call workflows to setup the data in your app by calling the revelant service endpoints you have built e.g. `POST /user`, `POST /role`. You can then minimize your use of database scripts to mainly data that is not configurable with existing endpoints.
23
+
24
+ 2. **_Speeding up development_**
23
25
 
24
- Create multiple sets of API call workflows with this library that can be used to:
26
+ Similar to setting up demo data, often while coding new features you may want to test out how they behave in your app, and again you may want your app to be in a specific state locally for that. You can write API call workflow scripts built with Chainflow to help move your app into those states quickly.
25
27
 
26
- 1. Insert demo data via your app's APIs (instead of SQL/db scripts)
27
- 2. Simulate frontend interactions with backend APIs
28
- 3. UI-agnostic end-to-end testing of backend APIs
29
- 4. Test edge cases on backend endpoints with input variations
28
+ 3. **_Testing your endpoints_**
29
+
30
+ An API call workflow could behave as if it were a frontend client calling the backend. In that way, you can create UI-agnostic end-to-end testing of backend endpoints by using API call workflows to simulate how a frontend would interact with the backend.
30
31
 
31
32
  ## Basic Usage
32
33
 
@@ -142,6 +143,27 @@ const origin = originServer('127.0.0.1:3001').headers({ token: 'some-token' });
142
143
  const getInfo = origin.get('/info'); // getInfo endpoint will have the headers defined above
143
144
  ```
144
145
 
146
+ ### Default headers
147
+
148
+ Chainflow attaches default headers to all requests made by any endpoint with the value:
149
+
150
+ ```typescript
151
+ 'content-type': 'application/json',
152
+ 'User-Agent': 'Chainflow/[major.minor version number]',
153
+ ```
154
+
155
+ If you'd like to change this, pass your default headers to the `defaultHeaders` util.
156
+
157
+ ```typescript
158
+ import { defaultHeaders } from 'chainflow';
159
+
160
+ defaultHeaders({ 'content-type': 'application/xml' });
161
+ ```
162
+
163
+ Pass in `true` as the second argument if you want to replace the entire set of default headers. Otherwise, the example above only overwrites the `content-type` default header and keeps `User-Agent`.
164
+
165
+ ### Initializing Values
166
+
145
167
  The request payloads under `Basic Usage` are defined with only _default_ values - i.e. the values which a Chainflow use if there are no response values from other endpoint calls linked to it.
146
168
 
147
169
  However, you can also use the following features to more flexibly define the values used in a request.
@@ -361,7 +383,9 @@ flow1.extend(flow2).run(); // calls endpoint 1, 2 and 3
361
383
  ### `config`
362
384
 
363
385
  `respParser`
364
- By default, Chainflows will parse response bodies as JSON objects. To change this, you can call `.config` to change that configuration on an `endpoint` (or on an `OriginServer`, to apply it to all endpoints created from it) like so:
386
+ By default, a chainflow parses response bodies as JSON objects UNLESS the status code is `204` or the `content-type` header does not contain `application/json` (to avoid errors when parsing an empty body), upon which they will instead parse it as text.
387
+
388
+ To set a specific parsing format, you can call `.config` to change that configuration on an `endpoint` (or on an `OriginServer`, to apply it to all endpoints created from it) like so:
365
389
 
366
390
  ```typescript
367
391
  import { RESP_PARSER } from 'chainflow';
@@ -385,12 +409,11 @@ There are 4 supported ways to parse response bodies (as provided by the underlyi
385
409
  Another configuration option is how to validate the response to an endpoint. By default, Chainflow rejects responses that have HTTP status code 400 and above and throws an error. You can pass in a custom `respValidator` to change when a response is rejected.
386
410
 
387
411
  ```typescript
388
- const getUser = origin.get("/user").config({
412
+ const getUser = origin.get('/user').config({
389
413
  respValidator: (resp) => {
390
- if (resp.statusCode !== 201)
391
- return { valid: false, msg: "Failed to retrieve users." };
392
- if (!Object.keys(resp.body as Record<string, unknown>).includes("id"))
393
- return { valid: false, msg: "Response did not provide user ID." };
414
+ if (resp.statusCode !== 201) return { valid: false, msg: 'Failed to retrieve users.' };
415
+ if (!Object.keys(resp.body as Record<string, unknown>).includes('id'))
416
+ return { valid: false, msg: 'Response did not provide user ID.' };
394
417
  return { valid: true };
395
418
  },
396
419
  });
@@ -22,13 +22,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
22
22
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
24
  };
25
- var _Endpoint_instances, _Endpoint_addr, _Endpoint_path, _Endpoint_method, _Endpoint_req, _Endpoint_resp, _Endpoint_config, _Endpoint_store, _Endpoint_extractPathParams, _Endpoint_insertPathParams, _Endpoint_insertQueryParams, _Endpoint_validateResp, _Endpoint_findMissingValues, _Endpoint_parseResponse;
25
+ var _Endpoint_instances, _Endpoint_addr, _Endpoint_path, _Endpoint_method, _Endpoint_req, _Endpoint_resp, _Endpoint_config, _Endpoint_store, _Endpoint_extractPathParams, _Endpoint_insertPathParams, _Endpoint_insertQueryParams, _Endpoint_validateResp, _Endpoint_findMissingValues, _Endpoint_parseResponseBody;
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.Endpoint = exports.RESP_PARSER = void 0;
28
28
  const id_1 = require("./utils/id");
29
29
  const inputNode_1 = require("../core/inputNode");
30
30
  const reqBuilder_1 = require("./reqBuilder");
31
- const client_1 = __importDefault(require("./utils/client"));
31
+ const client_1 = require("./utils/client");
32
32
  const errors_1 = require("./errors");
33
33
  const deepmerge_1 = __importDefault(require("@fastify/deepmerge"));
34
34
  const sourceNode_1 = require("../core/sourceNode");
@@ -157,7 +157,7 @@ class Endpoint {
157
157
  headers = deepmerge(headers, opts.headers);
158
158
  callPath = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_insertPathParams).call(this, callPath, pathParams);
159
159
  callPath = __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_insertQueryParams).call(this, callPath, queryParams);
160
- const resp = yield client_1.default.request({
160
+ const resp = yield client_1.httpClient.request({
161
161
  addr: __classPrivateFieldGet(this, _Endpoint_addr, "f"),
162
162
  path: callPath,
163
163
  method: __classPrivateFieldGet(this, _Endpoint_method, "f").toUpperCase(),
@@ -166,7 +166,7 @@ class Endpoint {
166
166
  });
167
167
  if (resp == null)
168
168
  throw new errors_1.InvalidResponseError('No response received.');
169
- const parsedResp = Object.assign(Object.assign({}, resp), { body: resp.body.body && (yield __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseResponse).call(this, resp.body)) });
169
+ const parsedResp = Object.assign(Object.assign({}, resp), { body: yield __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_parseResponseBody).call(this, resp) });
170
170
  const results = (_c = (_b = (_a = __classPrivateFieldGet(this, _Endpoint_config, "f")).respValidator) === null || _b === void 0 ? void 0 : _b.call(_a, parsedResp)) !== null && _c !== void 0 ? _c : __classPrivateFieldGet(this, _Endpoint_instances, "m", _Endpoint_validateResp).call(this, parsedResp);
171
171
  if (!results.valid)
172
172
  throw new errors_1.InvalidResponseError(results.msg);
@@ -229,18 +229,21 @@ _Endpoint_addr = new WeakMap(), _Endpoint_path = new WeakMap(), _Endpoint_method
229
229
  }
230
230
  }
231
231
  return finalMissingValues;
232
- }, _Endpoint_parseResponse = function _Endpoint_parseResponse(body) {
232
+ }, _Endpoint_parseResponseBody = function _Endpoint_parseResponseBody(resp) {
233
233
  return __awaiter(this, void 0, void 0, function* () {
234
234
  switch (__classPrivateFieldGet(this, _Endpoint_config, "f").respParser) {
235
235
  case RESP_PARSER.ARRAY_BUFFER:
236
- return yield body.arrayBuffer();
236
+ return yield resp.body.arrayBuffer();
237
237
  case RESP_PARSER.BLOB:
238
- return yield body.blob();
238
+ return yield resp.body.blob();
239
239
  case RESP_PARSER.TEXT:
240
- return yield body.text();
240
+ return yield resp.body.text();
241
241
  case RESP_PARSER.JSON:
242
+ return yield resp.body.json();
242
243
  default:
243
- return yield body.json();
244
+ if ((0, client_1.checkJsonSafe)(resp))
245
+ return yield resp.body.json();
246
+ return yield resp.body.text();
244
247
  }
245
248
  });
246
249
  };
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/http/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../src/http/endpoint.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,20 @@
1
+ import { Dispatcher } from 'undici';
1
2
  export type SUPPORTED_METHOD_UPPERCASE = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS';
2
3
  /** @todo evaluate if defaults should change */
3
- export declare const defaultHeaders: {
4
- connection: string;
5
- accept: string;
6
- 'content-type': string;
7
- };
8
- declare const _default: {
4
+ export declare let _defaultHeaders: Record<string, string> | undefined;
5
+ export declare const defaultHeaders: (headers?: Record<string, string>, replace?: boolean) => void;
6
+ export declare const httpClient: {
9
7
  request: ({ addr, path, method, body, headers, }: {
10
8
  addr: string;
11
9
  path: string;
12
10
  method: SUPPORTED_METHOD_UPPERCASE;
13
11
  body?: any;
14
12
  headers?: Record<string, string> | undefined;
15
- }) => Promise<import("undici/types/dispatcher").default.ResponseData | null>;
13
+ }) => Promise<Dispatcher.ResponseData | null>;
16
14
  };
17
- export default _default;
15
+ /**
16
+ * Check required to avoid errors when attempting `json()` on an empty body.
17
+ * Refer to issue under `ResponseData` at
18
+ * https://github.com/nodejs/undici/blob/main/docs/docs/api/Dispatcher.md
19
+ */
20
+ export declare const checkJsonSafe: (resp: Dispatcher.ResponseData) => boolean;
@@ -9,25 +9,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.defaultHeaders = void 0;
12
+ exports.checkJsonSafe = exports.httpClient = exports.defaultHeaders = exports._defaultHeaders = void 0;
13
13
  const undici_1 = require("undici");
14
14
  const logger_1 = require("../logger");
15
15
  /** @todo evaluate if defaults should change */
16
- exports.defaultHeaders = {
17
- connection: 'keep-alive',
18
- accept: '*/*',
16
+ exports._defaultHeaders = {
19
17
  'content-type': 'application/json',
20
- // 'User-Agent': 'Chainflow/0.1',
18
+ 'User-Agent': 'Chainflow/0.1',
21
19
  };
20
+ const defaultHeaders = (headers, replace) => {
21
+ replace
22
+ ? (exports._defaultHeaders = headers)
23
+ : (exports._defaultHeaders = Object.assign(Object.assign({}, exports._defaultHeaders), headers));
24
+ };
25
+ exports.defaultHeaders = defaultHeaders;
22
26
  /** Sends a HTTP request. */
23
27
  const request = ({ addr, path, method, body, headers, }) => __awaiter(void 0, void 0, void 0, function* () {
24
- const finalHeaders = Object.assign(Object.assign({}, exports.defaultHeaders), headers);
28
+ const finalHeaders = Object.assign(Object.assign({}, exports._defaultHeaders), headers);
25
29
  (0, logger_1.log)(`[${method}] [${addr}${path}] with headers %O${body ? ' and payload %O' : ''}`, finalHeaders, body !== null && body !== void 0 ? body : '');
26
30
  try {
27
31
  const resp = yield (0, undici_1.request)(`${addr}${path}`, {
28
32
  method,
29
- body: JSON.stringify(body),
30
- headers: finalHeaders,
33
+ body: body ? JSON.stringify(body) : null,
34
+ headers: Object.keys(finalHeaders).length > 0 ? finalHeaders : null,
31
35
  });
32
36
  return resp;
33
37
  }
@@ -36,5 +40,15 @@ const request = ({ addr, path, method, body, headers, }) => __awaiter(void 0, vo
36
40
  return null;
37
41
  }
38
42
  });
39
- exports.default = { request };
43
+ exports.httpClient = { request };
44
+ /**
45
+ * Check required to avoid errors when attempting `json()` on an empty body.
46
+ * Refer to issue under `ResponseData` at
47
+ * https://github.com/nodejs/undici/blob/main/docs/docs/api/Dispatcher.md
48
+ */
49
+ const checkJsonSafe = (resp) => {
50
+ var _a;
51
+ return Boolean(resp.statusCode !== 204 && ((_a = resp.headers['content-type']) === null || _a === void 0 ? void 0 : _a.includes('application/json')));
52
+ };
53
+ exports.checkJsonSafe = checkJsonSafe;
40
54
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/utils/client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAkD;AAClD,sCAAsC;AAItC,+CAA+C;AAClC,QAAA,cAAc,GAAG;IAC5B,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,kBAAkB;IAClC,iCAAiC;CAClC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,OAAO,GAAG,CAAO,EACrB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,GAOR,EAAE,EAAE;IACH,MAAM,YAAY,mCACb,sBAAc,GACd,OAAO,CACX,CAAC;IAEF,IAAA,YAAG,EACD,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,oBAAoB,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9E,YAAY,EACZ,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CACX,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAa,EAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YACjD,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,aAAI,EAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,kBAAe,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/http/utils/client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA8D;AAC9D,sCAAsC;AAItC,+CAA+C;AACpC,QAAA,eAAe,GAAuC;IAC/D,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,OAAgC,EAAE,OAAiB,EAAE,EAAE;IACpF,OAAO;QACL,CAAC,CAAC,CAAC,uBAAe,GAAG,OAAO,CAAC;QAC7B,CAAC,CAAC,CAAC,uBAAe,mCACX,uBAAe,GACf,OAAO,CACX,CAAC,CAAC;AACT,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB;AAEF,4BAA4B;AAC5B,MAAM,OAAO,GAAG,CAAO,EACrB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,GAOR,EAAE,EAAE;IACH,MAAM,YAAY,mCACb,uBAAe,GACf,OAAO,CACX,CAAC;IAEF,IAAA,YAAG,EACD,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,oBAAoB,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EAC9E,YAAY,EACZ,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CACX,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAA,gBAAa,EAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YACjD,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACxC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;SACpE,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAA,aAAI,EAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAA,CAAC;AAEW,QAAA,UAAU,GAAG,EAAE,OAAO,EAAE,CAAC;AAEtC;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,IAA6B,EAAW,EAAE;;IACtE,OAAO,OAAO,CACZ,IAAI,CAAC,UAAU,KAAK,GAAG,KAAI,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,0CAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA,CACtF,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB"}
package/dist/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from './http/endpoint';
7
7
  export * from './http/reqBuilder';
8
8
  export * from './http/originServer';
9
9
  export { enableLogs } from './http/logger';
10
+ export { defaultHeaders } from './http/utils/client';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.enableLogs = void 0;
17
+ exports.defaultHeaders = exports.enableLogs = void 0;
18
18
  __exportStar(require("./core/chainflow"), exports);
19
19
  __exportStar(require("./core/utils/initializers"), exports);
20
20
  __exportStar(require("./core/inputNode"), exports);
@@ -25,4 +25,6 @@ __exportStar(require("./http/reqBuilder"), exports);
25
25
  __exportStar(require("./http/originServer"), exports);
26
26
  var logger_1 = require("./http/logger");
27
27
  Object.defineProperty(exports, "enableLogs", { enumerable: true, get: function () { return logger_1.enableLogs; } });
28
+ var client_1 = require("./http/utils/client");
29
+ Object.defineProperty(exports, "defaultHeaders", { enumerable: true, get: function () { return client_1.defaultHeaders; } });
28
30
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C;AAC1C,mDAAiC;AACjC,oDAAkC;AAClC,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC;AACpC,wCAA2C;AAAlC,oGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4DAA0C;AAC1C,mDAAiC;AACjC,oDAAkC;AAClC,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC;AAClC,sDAAoC;AACpC,wCAA2C;AAAlC,oGAAA,UAAU,OAAA;AACnB,8CAAqD;AAA5C,wGAAA,cAAc,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chainflow",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Build dynamic and composable API workflows",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",