@emmvish/stable-request 1.1.0 → 1.1.2
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 +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utilities/prepare-api-request-data.js +5 -5
- package/dist/utilities/prepare-api-request-data.js.map +1 -1
- package/dist/utilities/prepare-api-request-options.js +3 -3
- package/dist/utilities/prepare-api-request-options.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## stable-request
|
|
2
2
|
|
|
3
|
-
`stable-request` is a TypeScript-first HTTP reliability
|
|
3
|
+
`stable-request` is a TypeScript-first HTTP reliability toolkit for workflow-driven API integrations, that goes beyond status-code retries by validating response content, handling eventual consistency, coordinating batch workflows with intelligent grouping, and providing deep observability into every request attempt. It is designed for real-world distributed systems where HTTP success does not guarantee business success.
|
|
4
4
|
|
|
5
5
|
## Why stable-request?
|
|
6
6
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { stableRequest, stableApiGateway } from './core/index.js';
|
|
2
2
|
export { INVALID_AXIOS_RESPONSES, REQUEST_METHODS, RESPONSE_ERRORS, RETRY_STRATEGIES, VALID_REQUEST_PROTOCOLS } from './enums/index.js';
|
|
3
|
-
export type { API_GATEWAY_OPTIONS, API_GATEWAY_REQUEST, API_GATEWAY_REQUEST_OPTIONS_TYPE, API_GATEWAY_RESPONSE, CONCURRENT_REQUEST_EXECUTION_OPTIONS, ERROR_LOG, ReqFnResponse, REQUEST_DATA, REQUEST_METHOD_TYPES, RETRY_STRATEGY_TYPES, SEQUENTIAL_REQUEST_EXECUTION_OPTIONS, STABLE_REQUEST, SUCCESSFUL_ATTEMPT_DATA, VALID_REQUEST_PROTOCOL_TYPES, TRIAL_MODE_OPTIONS } from './types/index.js';
|
|
3
|
+
export type { API_GATEWAY_OPTIONS, API_GATEWAY_REQUEST, API_GATEWAY_REQUEST_OPTIONS_TYPE, API_GATEWAY_RESPONSE, CONCURRENT_REQUEST_EXECUTION_OPTIONS, ERROR_LOG, ReqFnResponse, REQUEST_DATA, RequestGroup, REQUEST_METHOD_TYPES, RETRY_STRATEGY_TYPES, SEQUENTIAL_REQUEST_EXECUTION_OPTIONS, STABLE_REQUEST, SUCCESSFUL_ATTEMPT_DATA, VALID_REQUEST_PROTOCOL_TYPES, TRIAL_MODE_OPTIONS } from './types/index.js';
|
|
4
4
|
export { delay, executeConcurrently, executeSequentially, extractCommonRequestConfigOptions, generateAxiosRequestConfig, getNewDelayTime, isRetryableError, prepareApiRequestData, prepareApiRequestOptions, reqFn, safelyExecuteUnknownFunction, safelyStringify, validateTrialModeProbabilities } from './utilities/index.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EACpC,cAAc,EACd,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EACjC,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EACpC,cAAc,EACd,uBAAuB,EACvB,4BAA4B,EAC5B,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EACjC,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,gBAAgB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAqB1B,OAAO,EACH,KAAK,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,EACL,4BAA4B,EAC5B,eAAe,EACf,8BAA8B,EACjC,MAAM,sBAAsB,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface API_GATEWAY_OPTIONS<RequestDataType = any, ResponseDataType = a
|
|
|
16
16
|
commonHandleErrors?: (reqData: AxiosRequestConfig<RequestDataType>, error: ERROR_LOG, maxSerializableChars?: number) => any | Promise<any>;
|
|
17
17
|
commonHandleSuccessfulAttemptData?: (reqData: AxiosRequestConfig<RequestDataType>, successfulAttemptData: SUCCESSFUL_ATTEMPT_DATA<ResponseDataType>, maxSerializableChars?: number) => any | Promise<any>;
|
|
18
18
|
concurrentExecution?: boolean;
|
|
19
|
-
requestGroups?: RequestGroup[];
|
|
19
|
+
requestGroups?: RequestGroup<RequestDataType, ResponseDataType>[];
|
|
20
20
|
stopOnFirstError?: boolean;
|
|
21
21
|
}
|
|
22
22
|
export type API_GATEWAY_REQUEST_OPTIONS_TYPE<RequestDataType, ResponseDataType> = Omit<STABLE_REQUEST<RequestDataType, ResponseDataType>, 'reqData'> & Partial<Pick<STABLE_REQUEST<RequestDataType, ResponseDataType>, 'reqData'>>;
|
|
@@ -48,9 +48,9 @@ export interface ERROR_LOG {
|
|
|
48
48
|
type: RESPONSE_ERROR_TYPES;
|
|
49
49
|
isRetryable: boolean;
|
|
50
50
|
}
|
|
51
|
-
export interface RequestGroup {
|
|
51
|
+
export interface RequestGroup<RequestDataType = any, ResponseDataType = any> {
|
|
52
52
|
id: string;
|
|
53
|
-
commonConfig?: Omit<API_GATEWAY_OPTIONS, "concurrentExecution" | "stopOnFirstError">;
|
|
53
|
+
commonConfig?: Omit<API_GATEWAY_OPTIONS<RequestDataType, ResponseDataType>, "concurrentExecution" | "stopOnFirstError">;
|
|
54
54
|
}
|
|
55
55
|
export interface ReqFnResponse<ResponseDataType = any> {
|
|
56
56
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9J,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpJ,kBAAkB,CAAC,EAAE,CACnB,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC5C,KAAK,EAAE,SAAS,EAChB,oBAAoB,CAAC,EAAE,MAAM,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,iCAAiC,CAAC,EAAE,CAClC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC5C,qBAAqB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,EAChE,oBAAoB,CAAC,EAAE,MAAM,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9J,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wBAAwB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpJ,kBAAkB,CAAC,EAAE,CACnB,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC5C,KAAK,EAAE,SAAS,EAChB,oBAAoB,CAAC,EAAE,MAAM,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,iCAAiC,CAAC,EAAE,CAClC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC5C,qBAAqB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,EAChE,oBAAoB,CAAC,EAAE,MAAM,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,CAAC;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,gCAAgC,CAAC,eAAe,EAAE,gBAAgB,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnO,MAAM,WAAW,mBAAmB,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,gCAAgC,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,oBAAoB,CAAC,gBAAgB,GAAG,GAAG;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oCAAoC,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,CAAA;AAE1M,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAY,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,GAAG,kBAAkB,CAAC,CAAA;CACxH;AAED,MAAM,WAAW,aAAa,CAAC,gBAAgB,GAAG,GAAG;IACnD,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,GAAG;QAAE,SAAS,EAAE,kBAAkB,CAAA;KAAE,CAAC;CAC7D;AAED,MAAM,MAAM,oBAAoB,GAC5B,eAAe,CAAC,GAAG,GACnB,eAAe,CAAC,IAAI,GACpB,eAAe,CAAC,MAAM,GACtB,eAAe,CAAC,KAAK,GACrB,eAAe,CAAC,GAAG,CAAC;AAExB,MAAM,WAAW,YAAY,CAAC,eAAe,GAAG,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,4BAA4B,CAAC;IACxC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,oBAAoB,GAAG,eAAe,CAAC,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC;AAEzF,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC;AAEnH,MAAM,MAAM,oCAAoC,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,CAAA;AAErL,MAAM,WAAW,cAAc,CAAC,eAAe,GAAG,GAAG,EAAE,gBAAgB,GAAG,GAAG;IAC3E,OAAO,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxJ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC5C,KAAK,EAAE,SAAS,EAChB,oBAAoB,CAAC,EAAE,MAAM,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,CAC5B,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAC5C,qBAAqB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,EAChE,oBAAoB,CAAC,EAAE,MAAM,KAC1B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9I,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB,CAAC,gBAAgB,GAAG,GAAG;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,4BAA4B,GACpC,uBAAuB,CAAC,IAAI,GAC5B,uBAAuB,CAAC,KAAK,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export function prepareApiRequestData(request, commonRequestExecutionOptions) {
|
|
2
2
|
const { requestOptions: localOptions } = request;
|
|
3
|
-
const reqGroup = request.groupId ? commonRequestExecutionOptions.requestGroups?.find(group => group.id === request.groupId) : undefined;
|
|
3
|
+
const reqGroup = (request.groupId && Array.isArray(commonRequestExecutionOptions.requestGroups)) ? commonRequestExecutionOptions.requestGroups?.find(group => group.id === request.groupId) : undefined;
|
|
4
4
|
const result = {
|
|
5
|
-
...(commonRequestExecutionOptions.
|
|
6
|
-
...(reqGroup
|
|
7
|
-
...localOptions.reqData
|
|
5
|
+
...(commonRequestExecutionOptions.commonRequestData || {}),
|
|
6
|
+
...(reqGroup?.commonConfig?.commonRequestData || {}),
|
|
7
|
+
...(localOptions.reqData || {})
|
|
8
8
|
};
|
|
9
|
-
if (!result.
|
|
9
|
+
if (!result.hostname) {
|
|
10
10
|
console.log('stable-request: Hostname is missing in gateway request data. Setting it to an empty string to avoid errors.');
|
|
11
11
|
result.hostname = '';
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-api-request-data.js","sourceRoot":"","sources":["../../src/utilities/prepare-api-request-data.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACjC,OAA+D,EAC/D,6BACmG;IAEnG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare-api-request-data.js","sourceRoot":"","sources":["../../src/utilities/prepare-api-request-data.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACjC,OAA+D,EAC/D,6BACmG;IAEnG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzM,MAAM,MAAM,GAAG;QACX,GAAG,CAAC,6BAA6B,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC1D,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,iBAAiB,IAAI,EAAE,CAAC;QACpD,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;KAClC,CAAC;IAEF,IAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,6GAA6G,CAAC,CAAC;QAC3H,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,MAAuC,CAAC;AACnD,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { PrepareApiRequestOptionsMapping } from "../constants/index.js";
|
|
2
2
|
export function prepareApiRequestOptions(request, commonRequestExecutionOptions) {
|
|
3
3
|
const { requestOptions: localOptions } = request;
|
|
4
|
-
const reqGroup = request.groupId ? commonRequestExecutionOptions.requestGroups?.find(group => group.id === request.groupId) : undefined;
|
|
4
|
+
const reqGroup = (request.groupId && Array.isArray(commonRequestExecutionOptions.requestGroups)) ? commonRequestExecutionOptions.requestGroups?.find(group => group.id === request.groupId) : undefined;
|
|
5
5
|
const result = {};
|
|
6
6
|
for (const mapping of PrepareApiRequestOptionsMapping) {
|
|
7
7
|
if (localOptions.hasOwnProperty(mapping.localKey)) {
|
|
8
8
|
result[mapping.targetKey] = localOptions[mapping.localKey];
|
|
9
9
|
}
|
|
10
|
-
else if (reqGroup &&
|
|
11
|
-
result[mapping.targetKey] =
|
|
10
|
+
else if (reqGroup?.commonConfig && reqGroup.commonConfig.hasOwnProperty(mapping.groupCommonKey)) {
|
|
11
|
+
result[mapping.targetKey] = reqGroup.commonConfig[mapping.groupCommonKey];
|
|
12
12
|
}
|
|
13
13
|
else if (commonRequestExecutionOptions.hasOwnProperty(mapping.commonKey)) {
|
|
14
14
|
result[mapping.targetKey] = commonRequestExecutionOptions[mapping.commonKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-api-request-options.js","sourceRoot":"","sources":["../../src/utilities/prepare-api-request-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAUxE,MAAM,UAAU,wBAAwB,CACpC,OAA+D,EAC/D,6BACmG;IAEnG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare-api-request-options.js","sourceRoot":"","sources":["../../src/utilities/prepare-api-request-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAUxE,MAAM,UAAU,wBAAwB,CACpC,OAA+D,EAC/D,6BACmG;IAEnG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxM,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,OAAO,IAAI,+BAA+B,EAAE,CAAC;QACpD,IAAI,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAI,YAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxE,CAAC;aAAM,IAAG,QAAQ,EAAE,YAAY,IAAK,QAAQ,CAAC,YAAoB,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACxG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAI,QAAQ,CAAC,YAAoB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACvF,CAAC;aAAM,IAAI,6BAA6B,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAI,6BAAqC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC;IAED,OAAO,MAA4E,CAAC;AACxF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emmvish/stable-request",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "stable-request is a TypeScript-first HTTP reliability
|
|
3
|
+
"version": "1.1.2",
|
|
4
|
+
"description": "stable-request is a TypeScript-first HTTP reliability toolkit for workflow-driven API integrations, that goes beyond status-code retries by validating response content, handling eventual consistency, coordinating batch workflows with intelligent grouping, and providing deep observability into every request attempt. It is designed for real-world distributed systems where HTTP success does not guarantee business success. It also provides extensive support for managing multiple requests so as to achieve workflow automation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|