@nestia/fetcher 2.5.17 → 2.6.0-dev.20240324

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.
@@ -1,6 +1,6 @@
1
1
  import { IConnection } from "./IConnection";
2
+ import { IFetchRoute } from "./IFetchRoute";
2
3
  import { IPropagation } from "./IPropagation";
3
- import { IFetchRoute } from "./internal/IFetchRoute";
4
4
  /**
5
5
  * Utility class for `fetch` functions used in `@nestia/sdk` with encryption.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EncryptedFetcher.js","sourceRoot":"","sources":["../src/EncryptedFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAItC,sDAAqD;AAGrD;;;;;;;;;;;;;GAaG;AACH,IAAiB,gBAAgB,CAwJhC;AAxJD,WAAiB,gBAAgB;IAuC/B,SAAsB,KAAK,CACzB,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;;gBAEpC,IACE,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,KAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,CAAA,CAAC;oBAChE,UAAU,CAAC,UAAU,KAAK,SAAS;oBAEnC,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;gBACE,OAAO,GACX,OAAO,UAAU,CAAC,UAAU,KAAK,UAAU;oBACzC,CAAC,CAAC,UAAC,SAA8B;wBAC7B,OAAA,UACE,OAA4D,EAC5D,IAAY;4BAEZ,OAAC,UAAU,CAAC,UAA0C,CAAC;gCACrD,OAAO,SAAA;gCACP,IAAI,MAAA;gCACJ,SAAS,WAAA;6BACV,CAAC;wBAJF,CAIE;oBARJ,CAQI;oBACR,CAAC,CAAC,cAAM,OAAA,cAAM,OAAA,UAAU,CAAC,UAAiC,EAA5C,CAA4C,EAAlD,CAAkD,CAAC;gBAE/D,sBAAO,yBAAW,CAAC,KAAK,CAAC;wBACvB,SAAS,EAAE,kBAAkB;wBAC7B,MAAM,EACJ,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI;4BAC/B,CAAC,CAAC,UAAC,KAAK,EAAE,OAAO;gCACb,IAAM,CAAC,GAAwB,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gCACjE,OAAO,mBAAQ,CAAC,OAAO,CACrB,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EACpC,CAAC,CAAC,GAAG,EACL,CAAC,CAAC,EAAE,CACL,CAAC;4BACJ,CAAC;4BACH,CAAC,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACtB,MAAM,EACJ,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;4BAChC,CAAC,CAAC,UAAC,KAAK,EAAE,OAAO;gCACb,IAAM,CAAC,GAAwB,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gCACjE,IAAM,CAAC,GAAW,mBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gCACvD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtC,CAAC;4BACH,CAAC,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACvB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAC;;;KACzC;IAjDqB,sBAAK,QAiD1B,CAAA;IAcD,SAAsB,SAAS,CAC7B,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;;gBAEpC,IACE,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,KAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,CAAA,CAAC;oBAChE,UAAU,CAAC,UAAU,KAAK,SAAS;oBAEnC,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;gBACE,OAAO,GACX,OAAO,UAAU,CAAC,UAAU,KAAK,UAAU;oBACzC,CAAC,CAAC,UAAC,SAA8B;wBAC7B,OAAA,UACE,OAA4D,EAC5D,IAAY;4BAEZ,OAAC,UAAU,CAAC,UAA0C,CAAC;gCACrD,OAAO,SAAA;gCACP,IAAI,MAAA;gCACJ,SAAS,WAAA;6BACV,CAAC;wBAJF,CAIE;oBARJ,CAQI;oBACR,CAAC,CAAC,cAAM,OAAA,cAAM,OAAA,UAAU,CAAC,UAAiC,EAA5C,CAA4C,EAAlD,CAAkD,CAAC;gBAE/D,sBAAO,yBAAW,CAAC,SAAS,CAAC;wBAC3B,SAAS,EAAE,kBAAkB;wBAC7B,MAAM,EACJ,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI;4BAC/B,CAAC,CAAC,UAAC,KAAK,EAAE,OAAO;gCACb,IAAM,CAAC,GAAwB,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gCACjE,OAAO,mBAAQ,CAAC,OAAO,CACrB,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,EACpC,CAAC,CAAC,GAAG,EACL,CAAC,CAAC,EAAE,CACL,CAAC;4BACJ,CAAC;4BACH,CAAC,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACtB,MAAM,EACJ,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;4BAChC,CAAC,CAAC,UAAC,KAAK,EAAE,OAAO;gCACb,IAAM,CAAC,GAAwB,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gCACjE,IAAM,CAAC,GAAW,mBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gCACvD,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtC,CAAC;4BACH,CAAC,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACvB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAoB,EAAC;;;KAC5D;IAjDqB,0BAAS,YAiD9B,CAAA;AACH,CAAC,EAxJgB,gBAAgB,gCAAhB,gBAAgB,QAwJhC"}
1
+ {"version":3,"file":"EncryptedFetcher.js","sourceRoot":"","sources":["../src/EncryptedFetcher.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /// <reference lib="dom" />
2
2
  import { IEncryptionPassword } from "./IEncryptionPassword";
3
+ import { IFetchEvent } from "./IFetchEvent";
3
4
  import { IRandomGenerator } from "./IRandomGenerator";
4
5
  /**
5
6
  * Connection information.
@@ -42,9 +43,13 @@ export interface IConnection<Headers extends object = {}> {
42
43
  */
43
44
  simulate?: boolean | Partial<IRandomGenerator>;
44
45
  /**
45
- * Additional options for the `fetch` function.
46
+ * Logger function.
47
+ *
48
+ * This function is called when the fetch event is completed.
49
+ *
50
+ * @param event Event information of the fetch event.
46
51
  */
47
- options?: IConnection.IOptions;
52
+ logger?: (event: IFetchEvent) => Promise<void>;
48
53
  /**
49
54
  * Encryption password of its closure function.
50
55
  *
@@ -53,6 +58,10 @@ export interface IConnection<Headers extends object = {}> {
53
58
  * security reason.
54
59
  */
55
60
  encryption?: IEncryptionPassword | IEncryptionPassword.Closure;
61
+ /**
62
+ * Additional options for the `fetch` function.
63
+ */
64
+ options?: IConnection.IOptions;
56
65
  /**
57
66
  * Custom fetch function.
58
67
  *
@@ -0,0 +1,11 @@
1
+ import { IFetchRoute } from "./IFetchRoute";
2
+ export interface IFetchEvent {
3
+ route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">;
4
+ path: string;
5
+ status: number | null;
6
+ input: any;
7
+ output: any;
8
+ started_at: Date;
9
+ respond_at: Date | null;
10
+ completed_at: Date;
11
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // export namespace IFetchEvent {
4
+ // export interface IFunction {
5
+ // (connection: IConnection, ...args: any[]): Promise<any>;
6
+ // METADATA: {
7
+ // method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS";
8
+ // path: string;
9
+ // request: null | {
10
+ // type: string;
11
+ // encrypted: boolean;
12
+ // };
13
+ // response: null | {
14
+ // type: string;
15
+ // encrypted: boolean;
16
+ // };
17
+ // };
18
+ // status: null | number;
19
+ // }
20
+ // }
21
+ //# sourceMappingURL=IFetchEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFetchEvent.js","sourceRoot":"","sources":["../src/IFetchEvent.ts"],"names":[],"mappings":";;AAaA,iCAAiC;AACjC,iCAAiC;AACjC,+DAA+D;AAC/D,kBAAkB;AAClB,kFAAkF;AAClF,sBAAsB;AACtB,0BAA0B;AAC1B,wBAAwB;AACxB,8BAA8B;AAC9B,WAAW;AACX,2BAA2B;AAC3B,wBAAwB;AACxB,8BAA8B;AAC9B,WAAW;AACX,SAAS;AACT,6BAA6B;AAC7B,MAAM;AACN,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"IFetchRoute.js","sourceRoot":"","sources":["../../src/internal/IFetchRoute.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"IFetchRoute.js","sourceRoot":"","sources":["../src/IFetchRoute.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { IConnection } from "./IConnection";
2
+ import { IFetchRoute } from "./IFetchRoute";
2
3
  import { IPropagation } from "./IPropagation";
3
- import { IFetchRoute } from "./internal/IFetchRoute";
4
4
  /**
5
5
  * Utility class for `fetch` functions used in `@nestia/sdk`.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"PlainFetcher.js","sourceRoot":"","sources":["../src/PlainFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,sDAAqD;AAGrD;;;;;;;;;;;;;;GAcG;AACH,IAAiB,YAAY,CAoF5B;AApFD,WAAiB,YAAY;IAuC3B,SAAsB,KAAK,CACzB,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;gBAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;oBACzE,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;gBACJ,sBAAO,yBAAW,CAAC,KAAK,CAAC;wBACvB,SAAS,EAAE,cAAc;wBACzB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACxB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAC;;;KACzC;IAfqB,kBAAK,QAe1B,CAAA;IAcD,SAAsB,SAAS,CAC7B,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;gBAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;oBACzE,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;gBACJ,sBAAO,yBAAW,CAAC,SAAS,CAAC;wBAC3B,SAAS,EAAE,cAAc;wBACzB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACxB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAoB,EAAC;;;KAC5D;IAfqB,sBAAS,YAe9B,CAAA;AACH,CAAC,EApFgB,YAAY,4BAAZ,YAAY,QAoF5B"}
1
+ {"version":3,"file":"PlainFetcher.js","sourceRoot":"","sources":["../src/PlainFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sDAAqD;AAErD;;;;;;;;;;;;;;GAcG;AACH,IAAiB,YAAY,CAoF5B;AApFD,WAAiB,YAAY;IAuC3B,SAAsB,KAAK,CACzB,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;gBAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;oBACzE,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;gBACJ,sBAAO,yBAAW,CAAC,KAAK,CAAC;wBACvB,SAAS,EAAE,cAAc;wBACzB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACxB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAC;;;KACzC;IAfqB,kBAAK,QAe1B,CAAA;IAcD,SAAsB,SAAS,CAC7B,UAAuB,EACvB,KAAwE,EACxE,KAAa,EACb,SAAoC;;;;gBAEpC,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,IAAI;oBACzE,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;gBACJ,sBAAO,yBAAW,CAAC,SAAS,CAAC;wBAC3B,SAAS,EAAE,cAAc;wBACzB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;wBACxB,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,KAAK,EAAL,CAAK;qBACzB,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAoB,EAAC;;;KAC5D;IAfqB,sBAAS,YAe9B,CAAA;AACH,CAAC,EApFgB,YAAY,4BAAZ,YAAY,QAoF5B"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ export * from "./HttpError";
1
2
  export * from "./IConnection";
2
3
  export * from "./IEncryptionPassword";
4
+ export * from "./IFetchEvent";
5
+ export * from "./IFetchRoute";
3
6
  export * from "./IPropagation";
4
7
  export * from "./IRandomGenerator";
5
- export * from "./HttpError";
6
8
  export * from "./Primitive";
7
9
  export * from "./Resolved";
package/lib/index.js CHANGED
@@ -14,11 +14,13 @@ 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
+ __exportStar(require("./HttpError"), exports);
17
18
  __exportStar(require("./IConnection"), exports);
18
19
  __exportStar(require("./IEncryptionPassword"), exports);
20
+ __exportStar(require("./IFetchEvent"), exports);
21
+ __exportStar(require("./IFetchRoute"), exports);
19
22
  __exportStar(require("./IPropagation"), exports);
20
23
  __exportStar(require("./IRandomGenerator"), exports);
21
- __exportStar(require("./HttpError"), exports);
22
24
  __exportStar(require("./Primitive"), exports);
23
25
  __exportStar(require("./Resolved"), exports);
24
26
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,wDAAsC;AACtC,iDAA+B;AAC/B,qDAAmC;AACnC,8CAA4B;AAC5B,8CAA4B;AAC5B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,gDAA8B;AAC9B,wDAAsC;AACtC,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,qDAAmC;AACnC,8CAA4B;AAC5B,6CAA2B"}
@@ -1,6 +1,6 @@
1
1
  import { IConnection } from "../IConnection";
2
+ import { IFetchRoute } from "../IFetchRoute";
2
3
  import { IPropagation } from "../IPropagation";
3
- import { IFetchRoute } from "./IFetchRoute";
4
4
  export declare namespace FetcherBase {
5
5
  interface IProps {
6
6
  className: string;
@@ -118,20 +118,19 @@ var FetcherBase;
118
118
  */
119
119
  var _Propagate = function (method) {
120
120
  return function (props) {
121
- return function (connection, route, input, stringify) { return __awaiter(_this, void 0, void 0, function () {
122
- var headers, init, path, url, response, _a, result, _b, type, text, query, _c, _d, _e, _f;
123
- var _g, _h, _j, _k, _l, _m, _o, _p, _q;
124
- return __generator(this, function (_r) {
125
- switch (_r.label) {
121
+ return function (connection, metadata, input, stringify) { return __awaiter(_this, void 0, void 0, function () {
122
+ var headers, init, path, url, event, response, _a, result, _b, type, text, query, _c, _d, _e, _f, exp_1, _g;
123
+ var _h, _j, _k, _l, _m, _o, _p, _q, _r;
124
+ return __generator(this, function (_s) {
125
+ switch (_s.label) {
126
126
  case 0:
127
- headers = __assign({}, ((_g = connection.headers) !== null && _g !== void 0 ? _g : {}));
128
- if (input !== undefined) {
129
- if (((_h = route.request) === null || _h === void 0 ? void 0 : _h.type) === undefined)
127
+ headers = __assign({}, ((_h = connection.headers) !== null && _h !== void 0 ? _h : {}));
128
+ if (input !== undefined)
129
+ if (((_j = metadata.request) === null || _j === void 0 ? void 0 : _j.type) === undefined)
130
130
  throw new Error("Error on ".concat(props.className, ".fetch(): no content-type being configured."));
131
- else if (route.request.type !== "multipart/form-data")
132
- headers["Content-Type"] = route.request.type;
133
- }
134
- init = __assign(__assign({}, ((_j = connection.options) !== null && _j !== void 0 ? _j : {})), { method: route.method, headers: (function () {
131
+ else if (metadata.request.type !== "multipart/form-data")
132
+ headers["Content-Type"] = metadata.request.type;
133
+ init = __assign(__assign({}, ((_k = connection.options) !== null && _k !== void 0 ? _k : {})), { method: metadata.method, headers: (function () {
135
134
  var e_1, _a, e_2, _b;
136
135
  var output = [];
137
136
  try {
@@ -170,43 +169,58 @@ var FetcherBase;
170
169
  if (input !== undefined)
171
170
  init.body = props.encode(
172
171
  // BODY TRANSFORM
173
- ((_k = route.request) === null || _k === void 0 ? void 0 : _k.type) === "application/x-www-form-urlencoded"
172
+ ((_l = metadata.request) === null || _l === void 0 ? void 0 : _l.type) === "application/x-www-form-urlencoded"
174
173
  ? request_query_body(input)
175
- : ((_l = route.request) === null || _l === void 0 ? void 0 : _l.type) === "multipart/form-data"
174
+ : ((_m = metadata.request) === null || _m === void 0 ? void 0 : _m.type) === "multipart/form-data"
176
175
  ? request_form_data_body(input)
177
- : ((_m = route.request) === null || _m === void 0 ? void 0 : _m.type) !== "text/plain"
176
+ : ((_o = metadata.request) === null || _o === void 0 ? void 0 : _o.type) !== "text/plain"
178
177
  ? (stringify !== null && stringify !== void 0 ? stringify : JSON.stringify)(input)
179
178
  : input, headers);
180
179
  path = connection.host[connection.host.length - 1] !== "/" &&
181
- route.path[0] !== "/"
182
- ? "/".concat(route.path)
183
- : route.path;
180
+ metadata.path[0] !== "/"
181
+ ? "/".concat(metadata.path)
182
+ : metadata.path;
184
183
  url = new URL("".concat(connection.host).concat(path));
185
- if (!((_o = connection.fetch) !== null && _o !== void 0)) return [3 /*break*/, 1];
186
- _a = _o;
187
- return [3 /*break*/, 3];
188
- case 1: return [4 /*yield*/, polyfill.get()];
189
- case 2:
190
- _a = (_r.sent());
191
- _r.label = 3;
192
- case 3: return [4 /*yield*/, (_a)(url.href, init)];
193
- case 4:
194
- response = _r.sent();
184
+ event = {
185
+ route: metadata,
186
+ path: path,
187
+ status: null,
188
+ input: input,
189
+ output: undefined,
190
+ started_at: new Date(),
191
+ respond_at: null,
192
+ completed_at: null,
193
+ };
194
+ _s.label = 1;
195
+ case 1:
196
+ _s.trys.push([1, 15, 16, 21]);
197
+ if (!((_p = connection.fetch) !== null && _p !== void 0)) return [3 /*break*/, 2];
198
+ _a = _p;
199
+ return [3 /*break*/, 4];
200
+ case 2: return [4 /*yield*/, polyfill.get()];
201
+ case 3:
202
+ _a = (_s.sent());
203
+ _s.label = 4;
204
+ case 4: return [4 /*yield*/, (_a)(url.href, init)];
205
+ case 5:
206
+ response = _s.sent();
207
+ event.respond_at = new Date();
208
+ event.status = response.status;
195
209
  result = {
196
210
  success: response.status === 200 ||
197
211
  response.status === 201 ||
198
- response.status == route.status,
212
+ response.status == metadata.status,
199
213
  status: response.status,
200
214
  headers: response_headers_to_object(response.headers),
201
215
  data: undefined,
202
216
  };
203
- if (!(result.success === false)) return [3 /*break*/, 6];
217
+ if (!(result.success === false)) return [3 /*break*/, 7];
204
218
  // WHEN FAILED
205
219
  _b = result;
206
220
  return [4 /*yield*/, response.text()];
207
- case 5:
221
+ case 6:
208
222
  // WHEN FAILED
209
- _b.data = _r.sent();
223
+ _b.data = _s.sent();
210
224
  type = response.headers.get("content-type");
211
225
  if (method !== "fetch" &&
212
226
  type &&
@@ -214,35 +228,57 @@ var FetcherBase;
214
228
  try {
215
229
  result.data = JSON.parse(result.data);
216
230
  }
217
- catch (_s) { }
218
- return [3 /*break*/, 13];
219
- case 6:
220
- if (!(route.method === "HEAD")) return [3 /*break*/, 7];
221
- result.data = undefined;
222
- return [3 /*break*/, 13];
231
+ catch (_t) { }
232
+ return [3 /*break*/, 14];
223
233
  case 7:
224
- if (!(((_p = route.response) === null || _p === void 0 ? void 0 : _p.type) === "application/json")) return [3 /*break*/, 9];
225
- return [4 /*yield*/, response.text()];
234
+ if (!(metadata.method === "HEAD")) return [3 /*break*/, 8];
235
+ result.data = undefined;
236
+ return [3 /*break*/, 14];
226
237
  case 8:
227
- text = _r.sent();
228
- result.data = text.length ? JSON.parse(text) : undefined;
229
- return [3 /*break*/, 13];
238
+ if (!(((_q = metadata.response) === null || _q === void 0 ? void 0 : _q.type) === "application/json")) return [3 /*break*/, 10];
239
+ return [4 /*yield*/, response.text()];
230
240
  case 9:
231
- if (!(((_q = route.response) === null || _q === void 0 ? void 0 : _q.type) === "application/x-www-form-urlencoded")) return [3 /*break*/, 11];
241
+ text = _s.sent();
242
+ result.data = text.length ? JSON.parse(text) : undefined;
243
+ return [3 /*break*/, 14];
244
+ case 10:
245
+ if (!(((_r = metadata.response) === null || _r === void 0 ? void 0 : _r.type) === "application/x-www-form-urlencoded")) return [3 /*break*/, 12];
232
246
  _c = URLSearchParams.bind;
233
247
  return [4 /*yield*/, response.text()];
234
- case 10:
235
- query = new (_c.apply(URLSearchParams, [void 0, _r.sent()]))();
236
- result.data = route.parseQuery ? route.parseQuery(query) : query;
237
- return [3 /*break*/, 13];
238
248
  case 11:
249
+ query = new (_c.apply(URLSearchParams, [void 0, _s.sent()]))();
250
+ result.data = metadata.parseQuery
251
+ ? metadata.parseQuery(query)
252
+ : query;
253
+ return [3 /*break*/, 14];
254
+ case 12:
239
255
  _d = result;
240
256
  _f = (_e = props).decode;
241
257
  return [4 /*yield*/, response.text()];
242
- case 12:
243
- _d.data = _f.apply(_e, [_r.sent(), result.headers]);
244
- _r.label = 13;
245
- case 13: return [2 /*return*/, result];
258
+ case 13:
259
+ _d.data = _f.apply(_e, [_s.sent(), result.headers]);
260
+ _s.label = 14;
261
+ case 14:
262
+ event.output = result.data;
263
+ return [2 /*return*/, result];
264
+ case 15:
265
+ exp_1 = _s.sent();
266
+ throw exp_1;
267
+ case 16:
268
+ event.completed_at = new Date();
269
+ if (!connection.logger) return [3 /*break*/, 20];
270
+ _s.label = 17;
271
+ case 17:
272
+ _s.trys.push([17, 19, , 20]);
273
+ return [4 /*yield*/, connection.logger(event)];
274
+ case 18:
275
+ _s.sent();
276
+ return [3 /*break*/, 20];
277
+ case 19:
278
+ _g = _s.sent();
279
+ return [3 /*break*/, 20];
280
+ case 20: return [7 /*endfinally*/];
281
+ case 21: return [2 /*return*/];
246
282
  }
247
283
  });
248
284
  }); };
@@ -1 +1 @@
1
- {"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FetcherBase.js","sourceRoot":"","sources":["../../src/internal/FetcherBase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/fetcher",
3
- "version": "2.5.17",
3
+ "version": "2.6.0-dev.20240324",
4
4
  "description": "Fetcher library of Nestia SDK",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -1,9 +1,9 @@
1
1
  import { AesPkcs5 } from "./AesPkcs5";
2
2
  import { IConnection } from "./IConnection";
3
3
  import { IEncryptionPassword } from "./IEncryptionPassword";
4
+ import { IFetchRoute } from "./IFetchRoute";
4
5
  import { IPropagation } from "./IPropagation";
5
6
  import { FetcherBase } from "./internal/FetcherBase";
6
- import { IFetchRoute } from "./internal/IFetchRoute";
7
7
 
8
8
  /**
9
9
  * Utility class for `fetch` functions used in `@nestia/sdk` with encryption.
@@ -1,5 +1,6 @@
1
1
  /// <reference lib="dom" />
2
2
  import { IEncryptionPassword } from "./IEncryptionPassword";
3
+ import { IFetchEvent } from "./IFetchEvent";
3
4
  import { IRandomGenerator } from "./IRandomGenerator";
4
5
 
5
6
  /**
@@ -47,9 +48,13 @@ export interface IConnection<Headers extends object = {}> {
47
48
  simulate?: boolean | Partial<IRandomGenerator>;
48
49
 
49
50
  /**
50
- * Additional options for the `fetch` function.
51
+ * Logger function.
52
+ *
53
+ * This function is called when the fetch event is completed.
54
+ *
55
+ * @param event Event information of the fetch event.
51
56
  */
52
- options?: IConnection.IOptions;
57
+ logger?: (event: IFetchEvent) => Promise<void>;
53
58
 
54
59
  /**
55
60
  * Encryption password of its closure function.
@@ -60,6 +65,11 @@ export interface IConnection<Headers extends object = {}> {
60
65
  */
61
66
  encryption?: IEncryptionPassword | IEncryptionPassword.Closure;
62
67
 
68
+ /**
69
+ * Additional options for the `fetch` function.
70
+ */
71
+ options?: IConnection.IOptions;
72
+
63
73
  /**
64
74
  * Custom fetch function.
65
75
  *
@@ -0,0 +1,31 @@
1
+ // import { IConnection } from "./IConnection";
2
+ import { IFetchRoute } from "./IFetchRoute";
3
+
4
+ export interface IFetchEvent {
5
+ route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">;
6
+ path: string;
7
+ status: number | null;
8
+ input: any;
9
+ output: any;
10
+ started_at: Date;
11
+ respond_at: Date | null;
12
+ completed_at: Date;
13
+ }
14
+ // export namespace IFetchEvent {
15
+ // export interface IFunction {
16
+ // (connection: IConnection, ...args: any[]): Promise<any>;
17
+ // METADATA: {
18
+ // method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS";
19
+ // path: string;
20
+ // request: null | {
21
+ // type: string;
22
+ // encrypted: boolean;
23
+ // };
24
+ // response: null | {
25
+ // type: string;
26
+ // encrypted: boolean;
27
+ // };
28
+ // };
29
+ // status: null | number;
30
+ // }
31
+ // }
@@ -1,7 +1,7 @@
1
1
  import { IConnection } from "./IConnection";
2
+ import { IFetchRoute } from "./IFetchRoute";
2
3
  import { IPropagation } from "./IPropagation";
3
4
  import { FetcherBase } from "./internal/FetcherBase";
4
- import { IFetchRoute } from "./internal/IFetchRoute";
5
5
 
6
6
  /**
7
7
  * Utility class for `fetch` functions used in `@nestia/sdk`.
package/src/index.ts CHANGED
@@ -1,7 +1,9 @@
1
+ export * from "./HttpError";
1
2
  export * from "./IConnection";
2
3
  export * from "./IEncryptionPassword";
4
+ export * from "./IFetchEvent";
5
+ export * from "./IFetchRoute";
3
6
  export * from "./IPropagation";
4
7
  export * from "./IRandomGenerator";
5
- export * from "./HttpError";
6
8
  export * from "./Primitive";
7
9
  export * from "./Resolved";
@@ -2,8 +2,9 @@ import import2 from "import2";
2
2
 
3
3
  import { HttpError } from "../HttpError";
4
4
  import { IConnection } from "../IConnection";
5
+ import { IFetchEvent } from "../IFetchEvent";
6
+ import { IFetchRoute } from "../IFetchRoute";
5
7
  import { IPropagation } from "../IPropagation";
6
- import { IFetchRoute } from "./IFetchRoute";
7
8
  import { Singleton } from "./Singleton";
8
9
 
9
10
  export namespace FetcherBase {
@@ -62,7 +63,9 @@ export namespace FetcherBase {
62
63
  (props: IProps) =>
63
64
  async <Input>(
64
65
  connection: IConnection,
65
- route: IFetchRoute<"DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT">,
66
+ metadata: IFetchRoute<
67
+ "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"
68
+ >,
66
69
  input?: Input,
67
70
  stringify?: (input: Input) => string,
68
71
  ): Promise<IPropagation<any, any>> => {
@@ -73,19 +76,18 @@ export namespace FetcherBase {
73
76
  const headers: Record<string, IConnection.HeaderValue | undefined> = {
74
77
  ...(connection.headers ?? {}),
75
78
  };
76
- if (input !== undefined) {
77
- if (route.request?.type === undefined)
79
+ if (input !== undefined)
80
+ if (metadata.request?.type === undefined)
78
81
  throw new Error(
79
82
  `Error on ${props.className}.fetch(): no content-type being configured.`,
80
83
  );
81
- else if (route.request.type !== "multipart/form-data")
82
- headers["Content-Type"] = route.request.type;
83
- }
84
+ else if (metadata.request.type !== "multipart/form-data")
85
+ headers["Content-Type"] = metadata.request.type;
84
86
 
85
87
  // INIT REQUEST DATA
86
88
  const init: RequestInit = {
87
89
  ...(connection.options ?? {}),
88
- method: route.method,
90
+ method: metadata.method,
89
91
  headers: (() => {
90
92
  const output: [string, string][] = [];
91
93
  for (const [key, value] of Object.entries(headers))
@@ -101,11 +103,11 @@ export namespace FetcherBase {
101
103
  if (input !== undefined)
102
104
  init.body = props.encode(
103
105
  // BODY TRANSFORM
104
- route.request?.type === "application/x-www-form-urlencoded"
106
+ metadata.request?.type === "application/x-www-form-urlencoded"
105
107
  ? request_query_body(input)
106
- : route.request?.type === "multipart/form-data"
108
+ : metadata.request?.type === "multipart/form-data"
107
109
  ? request_form_data_body(input as any)
108
- : route.request?.type !== "text/plain"
110
+ : metadata.request?.type !== "text/plain"
109
111
  ? (stringify ?? JSON.stringify)(input)
110
112
  : input,
111
113
  headers,
@@ -117,55 +119,81 @@ export namespace FetcherBase {
117
119
  // URL SPECIFICATION
118
120
  const path: string =
119
121
  connection.host[connection.host.length - 1] !== "/" &&
120
- route.path[0] !== "/"
121
- ? `/${route.path}`
122
- : route.path;
122
+ metadata.path[0] !== "/"
123
+ ? `/${metadata.path}`
124
+ : metadata.path;
123
125
  const url: URL = new URL(`${connection.host}${path}`);
124
126
 
125
127
  // DO FETCH
126
- const response: Response = await (
127
- connection.fetch ?? (await polyfill.get())
128
- )(url.href, init);
128
+ const event: IFetchEvent = {
129
+ route: metadata,
130
+ path,
131
+ status: null,
132
+ input,
133
+ output: undefined,
134
+ started_at: new Date(),
135
+ respond_at: null,
136
+ completed_at: null!,
137
+ };
138
+ try {
139
+ // TRY FETCH
140
+ const response: Response = await (
141
+ connection.fetch ?? (await polyfill.get())
142
+ )(url.href, init);
143
+ event.respond_at = new Date();
144
+ event.status = response.status;
129
145
 
130
- // CONSTRUCT RESULT DATA
131
- const result: IPropagation<any, any> = {
132
- success:
133
- response.status === 200 ||
134
- response.status === 201 ||
135
- response.status == route.status,
136
- status: response.status,
137
- headers: response_headers_to_object(response.headers),
138
- data: undefined!,
139
- } as any;
140
- if ((result as any).success === false) {
141
- // WHEN FAILED
142
- result.data = await response.text();
143
- const type = response.headers.get("content-type");
144
- if (
145
- method !== "fetch" &&
146
- type &&
147
- type.indexOf("application/json") !== -1
148
- )
146
+ // CONSTRUCT RESULT DATA
147
+ const result: IPropagation<any, any> = {
148
+ success:
149
+ response.status === 200 ||
150
+ response.status === 201 ||
151
+ response.status == metadata.status,
152
+ status: response.status,
153
+ headers: response_headers_to_object(response.headers),
154
+ data: undefined!,
155
+ } as any;
156
+ if ((result as any).success === false) {
157
+ // WHEN FAILED
158
+ result.data = await response.text();
159
+ const type = response.headers.get("content-type");
160
+ if (
161
+ method !== "fetch" &&
162
+ type &&
163
+ type.indexOf("application/json") !== -1
164
+ )
165
+ try {
166
+ result.data = JSON.parse(result.data);
167
+ } catch {}
168
+ } else {
169
+ // WHEN SUCCESS
170
+ if (metadata.method === "HEAD") result.data = undefined!;
171
+ else if (metadata.response?.type === "application/json") {
172
+ const text: string = await response.text();
173
+ result.data = text.length ? JSON.parse(text) : undefined;
174
+ } else if (
175
+ metadata.response?.type === "application/x-www-form-urlencoded"
176
+ ) {
177
+ const query: URLSearchParams = new URLSearchParams(
178
+ await response.text(),
179
+ );
180
+ result.data = metadata.parseQuery
181
+ ? metadata.parseQuery(query)
182
+ : query;
183
+ } else
184
+ result.data = props.decode(await response.text(), result.headers);
185
+ }
186
+ event.output = result.data;
187
+ return result;
188
+ } catch (exp) {
189
+ throw exp;
190
+ } finally {
191
+ event.completed_at = new Date();
192
+ if (connection.logger)
149
193
  try {
150
- result.data = JSON.parse(result.data);
194
+ await connection.logger(event);
151
195
  } catch {}
152
- } else {
153
- // WHEN SUCCESS
154
- if (route.method === "HEAD") result.data = undefined!;
155
- else if (route.response?.type === "application/json") {
156
- const text: string = await response.text();
157
- result.data = text.length ? JSON.parse(text) : undefined;
158
- } else if (
159
- route.response?.type === "application/x-www-form-urlencoded"
160
- ) {
161
- const query: URLSearchParams = new URLSearchParams(
162
- await response.text(),
163
- );
164
- result.data = route.parseQuery ? route.parseQuery(query) : query;
165
- } else
166
- result.data = props.decode(await response.text(), result.headers);
167
196
  }
168
- return result;
169
197
  };
170
198
  }
171
199
 
File without changes
File without changes