@kontent-ai/core-sdk 12.0.0-preview.2 → 12.0.0-preview.21
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/.npmignore +1 -5
- package/LICENSE.md +1 -1
- package/README.md +177 -12
- package/dist/core-sdk-info.d.ts +2 -0
- package/dist/core-sdk-info.js +6 -0
- package/dist/core-sdk-info.js.map +1 -0
- package/dist/devkit/console.utils.d.ts +2 -0
- package/dist/devkit/console.utils.js +5 -0
- package/dist/devkit/console.utils.js.map +1 -0
- package/dist/devkit/environment.utils.d.ts +2 -0
- package/dist/devkit/environment.utils.js +12 -0
- package/dist/devkit/environment.utils.js.map +1 -0
- package/dist/devkit/script.utils.js +3 -3
- package/dist/devkit/script.utils.js.map +1 -1
- package/dist/devkit_api.d.ts +3 -0
- package/dist/devkit_api.js +3 -1
- package/dist/devkit_api.js.map +1 -1
- package/dist/http/http.adapter.d.ts +1 -1
- package/dist/http/http.adapter.js +78 -24
- package/dist/http/http.adapter.js.map +1 -1
- package/dist/http/http.models.d.ts +42 -32
- package/dist/http/http.service.js +294 -220
- package/dist/http/http.service.js.map +1 -1
- package/dist/models/core.models.d.ts +34 -29
- package/dist/models/error.models.d.ts +48 -27
- package/dist/models/error.models.js +40 -1
- package/dist/models/error.models.js.map +1 -1
- package/dist/models/json.models.d.ts +13 -4
- package/dist/models/json.models.js +10 -1
- package/dist/models/json.models.js.map +1 -1
- package/dist/models/utility.types.d.ts +16 -0
- package/dist/models/utility.types.js +2 -0
- package/dist/models/utility.types.js.map +1 -0
- package/dist/public_api.d.ts +19 -11
- package/dist/public_api.js +15 -6
- package/dist/public_api.js.map +1 -1
- package/dist/sdk/queries/fetch-sdk-query.d.ts +7 -0
- package/dist/sdk/queries/fetch-sdk-query.js +24 -0
- package/dist/sdk/queries/fetch-sdk-query.js.map +1 -0
- package/dist/sdk/queries/mutation-sdk-query.d.ts +4 -0
- package/dist/sdk/queries/mutation-sdk-query.js +17 -0
- package/dist/sdk/queries/mutation-sdk-query.js.map +1 -0
- package/dist/sdk/queries/paged-fetch-sdk-query.d.ts +6 -0
- package/dist/sdk/queries/paged-fetch-sdk-query.js +145 -0
- package/dist/sdk/queries/paged-fetch-sdk-query.js.map +1 -0
- package/dist/sdk/resolve-query.d.ts +8 -0
- package/dist/sdk/resolve-query.js +108 -0
- package/dist/sdk/resolve-query.js.map +1 -0
- package/dist/sdk/sdk-config.d.ts +3 -0
- package/dist/sdk/sdk-config.js +4 -0
- package/dist/sdk/sdk-config.js.map +1 -0
- package/dist/sdk/sdk-models.d.ts +101 -36
- package/dist/sdk/sdk-utils.d.ts +2 -0
- package/dist/sdk/sdk-utils.js +9 -0
- package/dist/sdk/sdk-utils.js.map +1 -0
- package/dist/testkit/poll.utils.d.ts +5 -0
- package/dist/testkit/poll.utils.js +24 -0
- package/dist/testkit/poll.utils.js.map +1 -0
- package/dist/testkit/testkit.utils.d.ts +20 -0
- package/dist/testkit/testkit.utils.js +100 -0
- package/dist/testkit/testkit.utils.js.map +1 -0
- package/dist/testkit_api.d.ts +3 -1
- package/dist/testkit_api.js +3 -2
- package/dist/testkit_api.js.map +1 -1
- package/dist/utils/abort.utils.d.ts +12 -0
- package/dist/utils/abort.utils.js +29 -0
- package/dist/utils/abort.utils.js.map +1 -0
- package/dist/utils/core.utils.d.ts +3 -1
- package/dist/utils/core.utils.js +22 -2
- package/dist/utils/core.utils.js.map +1 -1
- package/dist/utils/error.utils.d.ts +18 -7
- package/dist/utils/error.utils.js +35 -7
- package/dist/utils/error.utils.js.map +1 -1
- package/dist/utils/header.utils.d.ts +6 -1
- package/dist/utils/header.utils.js +37 -6
- package/dist/utils/header.utils.js.map +1 -1
- package/dist/utils/retry.utils.d.ts +16 -11
- package/dist/utils/retry.utils.js +131 -63
- package/dist/utils/retry.utils.js.map +1 -1
- package/dist/utils/sdk-version.utils.js +2 -2
- package/dist/utils/sdk-version.utils.js.map +1 -1
- package/dist/utils/try-catch.utils.d.ts +15 -0
- package/dist/utils/{try.utils.js → try-catch.utils.js} +1 -1
- package/dist/utils/try-catch.utils.js.map +1 -0
- package/dist/utils/type.utils.d.ts +2 -0
- package/dist/utils/type.utils.js +5 -0
- package/dist/utils/type.utils.js.map +1 -0
- package/dist/utils/url.utils.d.ts +5 -0
- package/dist/utils/url.utils.js +10 -0
- package/dist/utils/url.utils.js.map +1 -0
- package/package.json +61 -64
- package/dist/models/utility.models.d.ts +0 -20
- package/dist/models/utility.models.js +0 -2
- package/dist/models/utility.models.js.map +0 -1
- package/dist/sdk/sdk-queries.d.ts +0 -30
- package/dist/sdk/sdk-queries.js +0 -152
- package/dist/sdk/sdk-queries.js.map +0 -1
- package/dist/sdk-info.d.ts +0 -5
- package/dist/sdk-info.js +0 -6
- package/dist/sdk-info.js.map +0 -1
- package/dist/testkit/test.utils.d.ts +0 -15
- package/dist/testkit/test.utils.js +0 -42
- package/dist/testkit/test.utils.js.map +0 -1
- package/dist/utils/try.utils.d.ts +0 -14
- package/dist/utils/try.utils.js.map +0 -1
- package/lib/devkit/script.utils.ts +0 -12
- package/lib/devkit_api.ts +0 -3
- package/lib/http/http.adapter.ts +0 -38
- package/lib/http/http.models.ts +0 -122
- package/lib/http/http.service.ts +0 -320
- package/lib/models/core.models.ts +0 -89
- package/lib/models/error.models.ts +0 -83
- package/lib/models/json.models.ts +0 -9
- package/lib/models/utility.models.ts +0 -21
- package/lib/public_api.ts +0 -45
- package/lib/sdk/sdk-models.ts +0 -85
- package/lib/sdk/sdk-queries.ts +0 -232
- package/lib/sdk-info.ts +0 -5
- package/lib/testkit/test.utils.ts +0 -79
- package/lib/testkit/testkit.models.ts +0 -7
- package/lib/testkit_api.ts +0 -3
- package/lib/utils/core.utils.ts +0 -3
- package/lib/utils/error.utils.ts +0 -48
- package/lib/utils/header.utils.ts +0 -40
- package/lib/utils/retry.utils.ts +0 -156
- package/lib/utils/sdk-version.utils.ts +0 -16
- package/lib/utils/try.utils.ts +0 -30
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { PickStringLiteral } from "./utility.
|
|
1
|
+
import type { ErrorDetailsFor, KontentSdkError } from "./error.models.js";
|
|
2
|
+
import type { LiteralUnion, PickStringLiteral } from "./utility.types.js";
|
|
3
3
|
/**
|
|
4
4
|
* SDK info for identification of the SDK
|
|
5
5
|
*/
|
|
@@ -24,51 +24,56 @@ export type Header = {
|
|
|
24
24
|
readonly value: string;
|
|
25
25
|
};
|
|
26
26
|
export type HttpMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
|
|
27
|
-
export type
|
|
27
|
+
export type ValidationError = {
|
|
28
28
|
readonly message: string;
|
|
29
29
|
readonly path?: string;
|
|
30
30
|
readonly line?: number;
|
|
31
31
|
readonly position?: number;
|
|
32
32
|
};
|
|
33
|
-
export type
|
|
33
|
+
export type ErrorResponseData = {
|
|
34
34
|
readonly message: string;
|
|
35
|
-
readonly
|
|
36
|
-
readonly error_code
|
|
37
|
-
readonly validation_errors?: readonly
|
|
35
|
+
readonly request_id: string;
|
|
36
|
+
readonly error_code: number;
|
|
37
|
+
readonly validation_errors?: readonly ValidationError[];
|
|
38
38
|
};
|
|
39
39
|
export type RetryStrategyOptions = {
|
|
40
40
|
/**
|
|
41
41
|
* Maximum number of retry attempts.
|
|
42
42
|
*
|
|
43
|
-
* If not provided, the default
|
|
43
|
+
* If not provided, the default number of retries defined within the SDK will be used.
|
|
44
44
|
*/
|
|
45
45
|
readonly maxRetries?: number;
|
|
46
46
|
/**
|
|
47
|
-
*
|
|
47
|
+
* Determines whether an adapter error should be retried.
|
|
48
48
|
*
|
|
49
|
-
*
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*
|
|
49
|
+
* Adapter errors occur when the HTTP adapter fails to execute the request
|
|
50
|
+
* (e.g. network failures, connection timeouts, or other transport-level issues).
|
|
51
|
+
*
|
|
52
|
+
* This callback is evaluated only after SDK-defined retry rules are checked.
|
|
53
|
+
* The SDK handles the following cases directly:
|
|
54
|
+
*
|
|
55
|
+
* - Retried automatically:
|
|
56
|
+
* - HTTP 429 (rate limit exceeded)
|
|
57
|
+
*
|
|
58
|
+
* - Not retried automatically:
|
|
59
|
+
* - Invalid request body (`invalidBody`)
|
|
60
|
+
* - Invalid URL (`invalidUrl`)
|
|
61
|
+
* - 404 Not Found (`notFound`)
|
|
62
|
+
* - 401 Unauthorized (`unauthorized`)
|
|
63
|
+
* - API business/validation error response (`kontentErrorResponse`)
|
|
54
64
|
*
|
|
55
|
-
* If not provided, the default implementation will be used.
|
|
56
65
|
*/
|
|
57
|
-
readonly
|
|
66
|
+
readonly canRetryAdapterError?: (error: KontentSdkError<ErrorDetailsFor<"adapterError">>) => boolean;
|
|
58
67
|
/**
|
|
59
|
-
*
|
|
68
|
+
* Controls logging for retry attempts.
|
|
60
69
|
*
|
|
61
|
-
* If
|
|
62
|
-
* If
|
|
63
|
-
*
|
|
70
|
+
* If undefined, no retry logging occurs (default behavior).
|
|
71
|
+
* If set to `'logToConsole'`, retries are logged to the console.
|
|
72
|
+
* If a function is provided, it is called with the retry attempt and url.
|
|
64
73
|
*/
|
|
65
|
-
readonly logRetryAttempt?:
|
|
74
|
+
readonly logRetryAttempt?: "logToConsole" | ((retryAttempt: number, url: string) => void);
|
|
75
|
+
};
|
|
76
|
+
export type ResolvedRetryStrategyOptions = Pick<Required<RetryStrategyOptions>, "maxRetries" | "canRetryAdapterError"> & {
|
|
77
|
+
readonly logRetryAttempt: undefined | ((retryAttempt: number, url: string) => void);
|
|
78
|
+
readonly getDelayBetweenRetriesMs: (error: KontentSdkError) => number;
|
|
66
79
|
};
|
|
67
|
-
/**
|
|
68
|
-
* Adds intellisense for string union type, but also allows any string
|
|
69
|
-
*/
|
|
70
|
-
export type LiteralUnion<T extends string | undefined> = T | (string & NonNullable<unknown>);
|
|
71
|
-
/**
|
|
72
|
-
* Adds intellisense for number union type, but also allows any number
|
|
73
|
-
*/
|
|
74
|
-
export type LiteralUnionNumber<T extends number | undefined> = T | (number & NonNullable<unknown>);
|
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
import type { ZodError } from "zod";
|
|
2
|
-
import type { AdapterResponse,
|
|
2
|
+
import type { AdapterPayload, AdapterResponse, HttpPayload, HttpRequestBody } from "../http/http.models.js";
|
|
3
3
|
import type { SuccessfulHttpResponse } from "../sdk/sdk-models.js";
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
export type
|
|
7
|
-
export type CoreSdkErrorDetails<TReason extends ErrorReason = ErrorReason> = (Details<"invalidResponse", {
|
|
8
|
-
readonly kontentErrorResponse: KontentErrorResponseData | undefined;
|
|
9
|
-
} & Pick<AdapterResponse<HttpServiceStatus>, "isValidResponse" | "responseHeaders" | "status" | "statusText">> | Details<"notFound", {
|
|
10
|
-
readonly kontentErrorResponse: KontentErrorResponseData | undefined;
|
|
11
|
-
} & Pick<AdapterResponse<404>, "isValidResponse" | "responseHeaders" | "status" | "statusText">> | Details<"invalidBody", {
|
|
12
|
-
readonly originalError: unknown;
|
|
13
|
-
}> | Details<"invalidUrl", {
|
|
14
|
-
readonly originalError: unknown;
|
|
15
|
-
}> | Details<"unknown", {
|
|
16
|
-
readonly originalError: unknown;
|
|
17
|
-
}> | Details<"validationFailed", {
|
|
18
|
-
readonly reason: "validationFailed";
|
|
4
|
+
import type { ErrorResponseData, ResolvedRetryStrategyOptions } from "./core.models.js";
|
|
5
|
+
export type ErrorReason = ErrorDetails["reason"];
|
|
6
|
+
export type ErrorDetails = ReasonData<"adapterError", ErrorWithOriginalError> | ReasonData<"unauthorized", ErrorWithKontentResponse> | ReasonData<"invalidResponse", ErrorWithKontentResponse> | ReasonData<"parseError", ErrorWithOriginalError> | ReasonData<"notFound", ErrorWithKontentResponse> | ReasonData<"invalidBody", ErrorWithOriginalError> | ReasonData<"invalidUrl", ErrorWithOriginalError> | ReasonData<"aborted", ErrorWithOriginalError> | ReasonData<"validationFailed", {
|
|
19
7
|
readonly zodError: ZodError;
|
|
20
|
-
readonly response: SuccessfulHttpResponse<
|
|
8
|
+
readonly response: SuccessfulHttpResponse<HttpPayload, HttpRequestBody>;
|
|
21
9
|
readonly url: string;
|
|
22
|
-
}> |
|
|
10
|
+
}> | ReasonData<"noResponses", {
|
|
23
11
|
readonly url: string;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
export type CoreSdkError<TReason extends ErrorReason = ErrorReason> = {
|
|
12
|
+
}>;
|
|
13
|
+
export interface BaseErrorData {
|
|
28
14
|
/**
|
|
29
15
|
* The message of the error
|
|
30
16
|
*/
|
|
@@ -36,13 +22,48 @@ export type CoreSdkError<TReason extends ErrorReason = ErrorReason> = {
|
|
|
36
22
|
/**
|
|
37
23
|
* Used retry strategy.
|
|
38
24
|
*/
|
|
39
|
-
readonly retryStrategyOptions
|
|
25
|
+
readonly retryStrategyOptions: ResolvedRetryStrategyOptions | undefined;
|
|
40
26
|
/**
|
|
41
27
|
* The number of times the request has been retried.
|
|
42
28
|
*/
|
|
43
|
-
readonly retryAttempt
|
|
44
|
-
}
|
|
45
|
-
|
|
29
|
+
readonly retryAttempt: number | undefined;
|
|
30
|
+
}
|
|
31
|
+
export declare class KontentSdkError<TDetails extends ErrorDetails = ErrorDetails> extends Error implements BaseErrorData {
|
|
32
|
+
readonly details: TDetails;
|
|
33
|
+
readonly url: string;
|
|
34
|
+
readonly retryStrategyOptions: ResolvedRetryStrategyOptions | undefined;
|
|
35
|
+
readonly retryAttempt: number | undefined;
|
|
36
|
+
constructor({ baseErrorData: { message, url, retryStrategyOptions, retryAttempt }, details, }: {
|
|
37
|
+
readonly baseErrorData: BaseErrorData;
|
|
38
|
+
readonly details: TDetails;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Http adapter should throw this error when the request is aborted.
|
|
43
|
+
*
|
|
44
|
+
* The error is then handled by the HttpService and converted to a KontentSdkError with the reason "aborted".
|
|
45
|
+
*/
|
|
46
|
+
export declare class AdapterAbortError extends Error {
|
|
47
|
+
constructor(error: unknown);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Http adapter should throw this error when the response is not valid JSON or BLOB.
|
|
51
|
+
*
|
|
52
|
+
* The error is then handled by the HttpService and converted to a KontentSdkError with the reason "parseError".
|
|
53
|
+
*/
|
|
54
|
+
export declare class AdapterParseError extends Error {
|
|
55
|
+
constructor(error: unknown);
|
|
56
|
+
}
|
|
57
|
+
export type ErrorDetailsFor<TReason extends ErrorReason> = Extract<ErrorDetails, {
|
|
58
|
+
readonly reason: TReason;
|
|
59
|
+
}>;
|
|
60
|
+
type ErrorWithKontentResponse = {
|
|
61
|
+
readonly kontentErrorResponse: ErrorResponseData | undefined;
|
|
62
|
+
} & Pick<AdapterResponse<AdapterPayload>, "responseHeaders" | "status" | "statusText">;
|
|
63
|
+
type ErrorWithOriginalError = {
|
|
64
|
+
readonly originalError: unknown;
|
|
65
|
+
};
|
|
66
|
+
type ReasonData<TReason extends ErrorReason, TData> = {
|
|
46
67
|
readonly reason: TReason;
|
|
47
|
-
} &
|
|
68
|
+
} & TData;
|
|
48
69
|
export {};
|
|
@@ -1,2 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
import { match, P } from "ts-pattern";
|
|
2
|
+
export class KontentSdkError extends Error {
|
|
3
|
+
details;
|
|
4
|
+
url;
|
|
5
|
+
retryStrategyOptions;
|
|
6
|
+
retryAttempt;
|
|
7
|
+
constructor({ baseErrorData: { message, url, retryStrategyOptions, retryAttempt }, details, }) {
|
|
8
|
+
super(toFriendlyMessage(message, details));
|
|
9
|
+
this.url = url;
|
|
10
|
+
this.retryStrategyOptions = retryStrategyOptions;
|
|
11
|
+
this.retryAttempt = retryAttempt;
|
|
12
|
+
this.details = details;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Http adapter should throw this error when the request is aborted.
|
|
17
|
+
*
|
|
18
|
+
* The error is then handled by the HttpService and converted to a KontentSdkError with the reason "aborted".
|
|
19
|
+
*/
|
|
20
|
+
export class AdapterAbortError extends Error {
|
|
21
|
+
constructor(error) {
|
|
22
|
+
super(`Adapter has aborted the request. ${error instanceof Error ? error.message : "No details provided"}`, { cause: error });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Http adapter should throw this error when the response is not valid JSON or BLOB.
|
|
27
|
+
*
|
|
28
|
+
* The error is then handled by the HttpService and converted to a KontentSdkError with the reason "parseError".
|
|
29
|
+
*/
|
|
30
|
+
export class AdapterParseError extends Error {
|
|
31
|
+
constructor(error) {
|
|
32
|
+
super(`Adapter failed to parse the response. ${error instanceof Error ? error.message : "No details provided"}`, { cause: error });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function toFriendlyMessage(message, error) {
|
|
36
|
+
return match(error)
|
|
37
|
+
.returnType()
|
|
38
|
+
.with({ reason: P.union("invalidResponse", "notFound"), kontentErrorResponse: P.nonNullable }, (m) => `${message} ${m.kontentErrorResponse.message}`)
|
|
39
|
+
.otherwise(() => message);
|
|
40
|
+
}
|
|
2
41
|
//# sourceMappingURL=error.models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../lib/models/error.models.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"error.models.js","sourceRoot":"","sources":["../../lib/models/error.models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAsDtC,MAAM,OAAO,eAA8D,SAAQ,KAAK;IAC9E,OAAO,CAAW;IAClB,GAAG,CAAS;IACZ,oBAAoB,CAA2C;IAC/D,YAAY,CAAqB;IAE1C,YAAY,EACX,aAAa,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,EACnE,OAAO,GAIP;QACA,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C,YAAY,KAAc;QACzB,KAAK,CAAC,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/H,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC3C,YAAY,KAAc;QACzB,KAAK,CAAC,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpI,CAAC;CACD;AAgBD,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAmB;IAC9D,OAAO,KAAK,CAAC,KAAK,CAAC;SACjB,UAAU,EAAU;SACpB,IAAI,CACJ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,WAAW,EAAE,EACvF,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,CACrD;SACA,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type JsonValue = string | number | null | boolean | JsonObject | JsonArray
|
|
3
|
-
export
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export type JsonValue = string | number | null | boolean | JsonObject | JsonArray;
|
|
3
|
+
export type JsonObject = {
|
|
4
4
|
readonly [property: string]: JsonValue;
|
|
5
|
-
}
|
|
5
|
+
};
|
|
6
6
|
export type JsonArray = readonly JsonValue[];
|
|
7
|
+
/**
|
|
8
|
+
* Runtime validator for the core SDK `JsonValue` type.
|
|
9
|
+
*
|
|
10
|
+
* Matches:
|
|
11
|
+
* - string | number | boolean | null
|
|
12
|
+
* - readonly JsonValue[]
|
|
13
|
+
* - { readonly [property: string]: JsonValue }
|
|
14
|
+
*/
|
|
15
|
+
export declare const jsonValueSchema: z.ZodType<JsonValue>;
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import z from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Runtime validator for the core SDK `JsonValue` type.
|
|
4
|
+
*
|
|
5
|
+
* Matches:
|
|
6
|
+
* - string | number | boolean | null
|
|
7
|
+
* - readonly JsonValue[]
|
|
8
|
+
* - { readonly [property: string]: JsonValue }
|
|
9
|
+
*/
|
|
10
|
+
export const jsonValueSchema = z.lazy(() => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(jsonValueSchema).readonly(), z.record(z.string(), jsonValueSchema)]));
|
|
2
11
|
//# sourceMappingURL=json.models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.models.js","sourceRoot":"","sources":["../../lib/models/json.models.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"json.models.js","sourceRoot":"","sources":["../../lib/models/json.models.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAUpB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAChE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CACpI,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an empty object type.
|
|
3
|
+
*/
|
|
4
|
+
export type EmptyObject = Record<string, never>;
|
|
5
|
+
/**
|
|
6
|
+
* Picks a string literal type from a union type.
|
|
7
|
+
*/
|
|
8
|
+
export type PickStringLiteral<T extends string, U extends T> = U;
|
|
9
|
+
/**
|
|
10
|
+
* Adds intellisense for string union type, but also allows any string
|
|
11
|
+
*/
|
|
12
|
+
export type LiteralUnion<T extends string | undefined> = T | (string & NonNullable<unknown>);
|
|
13
|
+
/**
|
|
14
|
+
* Adds intellisense for number union type, but also allows any number
|
|
15
|
+
*/
|
|
16
|
+
export type LiteralUnionNumber<T extends number | undefined> = T | (number & NonNullable<unknown>);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utility.types.js","sourceRoot":"","sources":["../../lib/models/utility.types.ts"],"names":[],"mappings":""}
|
package/dist/public_api.d.ts
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
+
/** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
|
|
1
2
|
export { getDefaultHttpAdapter } from "./http/http.adapter.js";
|
|
2
|
-
export type {
|
|
3
|
+
export type { AdapterBody, AdapterDownloadFileOptions, AdapterExecuteRequestOptions, AdapterPayload, AdapterResponse, DefaultHttpServiceConfig, DownloadFileRequestOptions, ExecuteRequestOptions, GetNextPageData, HttpAdapter, HttpPayload, HttpRequestBody, HttpResponse, HttpResult, HttpService, HttpServiceStatus, PaginationConfig, UploadFileRequestOptions, } from "./http/http.models.js";
|
|
3
4
|
export { getDefaultHttpService } from "./http/http.service.js";
|
|
4
|
-
export type { CommonHeaderNames, Header, HttpMethod, RetryStrategyOptions, SDKInfo, } from "./models/core.models.js";
|
|
5
|
-
export
|
|
6
|
-
export type
|
|
7
|
-
export type { EmptyObject,
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export {
|
|
5
|
+
export type { CommonHeaderNames, ContinuationHeaderName, ErrorResponseData, Header, HttpMethod, RetryStrategyOptions, SDKInfo, ValidationError, } from "./models/core.models.js";
|
|
6
|
+
export { AdapterAbortError, AdapterParseError, type ErrorDetails, type ErrorDetailsFor, type ErrorReason, KontentSdkError, } from "./models/error.models.js";
|
|
7
|
+
export { type JsonArray, type JsonObject, type JsonValue, jsonValueSchema } from "./models/json.models.js";
|
|
8
|
+
export type { EmptyObject, PickStringLiteral } from "./models/utility.types.js";
|
|
9
|
+
export { createFetchQuery } from "./sdk/queries/fetch-sdk-query.js";
|
|
10
|
+
export { createMutationQuery } from "./sdk/queries/mutation-sdk-query.js";
|
|
11
|
+
export { createPagedFetchQuery } from "./sdk/queries/paged-fetch-sdk-query.js";
|
|
12
|
+
export { kontentUuidSchema, nilUuid } from "./sdk/sdk-config.js";
|
|
13
|
+
export type { FetchQuery, FetchQueryRequest, MutationQuery, MutationQueryRequest, PagedFetchQuery, PagingQueryResult, Query, QueryResponse, QueryResponseMeta, QueryResult, SafePagingQueryResult, SdkConfig, SuccessfulHttpResponse, } from "./sdk/sdk-models.js";
|
|
14
|
+
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
15
|
+
export { isDefined } from "./utils/core.utils.js";
|
|
16
|
+
export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
|
|
17
|
+
export { extractContinuationToken, getSdkIdHeader } from "./utils/header.utils.js";
|
|
18
|
+
export { resolveDefaultRetryStrategyOptions } from "./utils/retry.utils.js";
|
|
19
|
+
export { tryCatch, tryCatchAsync } from "./utils/try-catch.utils.js";
|
|
20
|
+
export { getCodenameSchema } from "./utils/type.utils.js";
|
|
21
|
+
export { getEndpointUrl } from "./utils/url.utils.js";
|
package/dist/public_api.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
/** biome-ignore-all lint/performance/noBarrelFile: One barrel for exported API is fine */
|
|
2
2
|
export { getDefaultHttpAdapter } from "./http/http.adapter.js";
|
|
3
3
|
export { getDefaultHttpService } from "./http/http.service.js";
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
4
|
+
export { AdapterAbortError, AdapterParseError, KontentSdkError, } from "./models/error.models.js";
|
|
5
|
+
export { jsonValueSchema } from "./models/json.models.js";
|
|
6
|
+
export { createFetchQuery } from "./sdk/queries/fetch-sdk-query.js";
|
|
7
|
+
export { createMutationQuery } from "./sdk/queries/mutation-sdk-query.js";
|
|
8
|
+
export { createPagedFetchQuery } from "./sdk/queries/paged-fetch-sdk-query.js";
|
|
9
|
+
export { kontentUuidSchema, nilUuid } from "./sdk/sdk-config.js";
|
|
10
|
+
export { isPagingQuery } from "./sdk/sdk-utils.js";
|
|
11
|
+
export { isDefined } from "./utils/core.utils.js";
|
|
12
|
+
export { isKontent404Error, isKontentSdkError } from "./utils/error.utils.js";
|
|
13
|
+
export { extractContinuationToken, getSdkIdHeader } from "./utils/header.utils.js";
|
|
14
|
+
export { resolveDefaultRetryStrategyOptions } from "./utils/retry.utils.js";
|
|
15
|
+
export { tryCatch, tryCatchAsync } from "./utils/try-catch.utils.js";
|
|
16
|
+
export { getCodenameSchema } from "./utils/type.utils.js";
|
|
17
|
+
export { getEndpointUrl } from "./utils/url.utils.js";
|
|
9
18
|
//# sourceMappingURL=public_api.js.map
|
package/dist/public_api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"public_api.js","sourceRoot":"","sources":["../lib/public_api.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAqB/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAW/D,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EAIjB,eAAe,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAmD,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAgBjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared query models/types intended to be reused across SDKs (e.g. Sync, Delivery, Management)
|
|
3
|
+
* to keep common code and behavior consistent.
|
|
4
|
+
*/
|
|
5
|
+
import type { JsonValue } from "../../models/json.models.js";
|
|
6
|
+
import type { FetchQuery, FetchQueryRequest } from "../sdk-models.js";
|
|
7
|
+
export declare function createFetchQuery<TResponsePayload extends JsonValue, TMeta, TError>(data: FetchQueryRequest<TResponsePayload, TMeta, TError>): FetchQuery<TResponsePayload, TMeta, TError>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { resolveQuery } from "../resolve-query.js";
|
|
2
|
+
export function createFetchQuery(data) {
|
|
3
|
+
const fetchSafe = async () => await resolveQuery({
|
|
4
|
+
...data,
|
|
5
|
+
method: "GET",
|
|
6
|
+
request: {
|
|
7
|
+
...data.request,
|
|
8
|
+
body: null,
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
return {
|
|
12
|
+
schema: data.zodSchema,
|
|
13
|
+
url: data.request.url,
|
|
14
|
+
fetchSafe,
|
|
15
|
+
fetch: async () => {
|
|
16
|
+
const { success, response, error } = await fetchSafe();
|
|
17
|
+
if (!success) {
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
return response;
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=fetch-sdk-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-sdk-query.js","sourceRoot":"","sources":["../../../lib/sdk/queries/fetch-sdk-query.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAC/B,IAAwD;IAExD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAC5B,MAAM,YAAY,CAAwC;QACzD,GAAG,IAAI;QACP,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACR,GAAG,IAAI,CAAC,OAAO;YACf,IAAI,EAAE,IAAI;SACV;KACD,CAAC,CAAC;IACJ,OAAO;QACN,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;QACrB,SAAS;QACT,KAAK,EAAE,KAAK,IAAI,EAAE;YACjB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACb,CAAC;YACD,OAAO,QAAQ,CAAC;QACjB,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { HttpRequestBody } from "../../http/http.models.js";
|
|
2
|
+
import type { JsonValue } from "../../models/json.models.js";
|
|
3
|
+
import type { MutationQuery, MutationQueryRequest } from "../sdk-models.js";
|
|
4
|
+
export declare function createMutationQuery<TResponsePayload extends JsonValue, TRequestBody extends HttpRequestBody, TMeta, TError>(data: MutationQueryRequest<TResponsePayload, TRequestBody, TMeta, TError>): MutationQuery<TResponsePayload, TMeta, TError>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { resolveQuery } from "../resolve-query.js";
|
|
2
|
+
export function createMutationQuery(data) {
|
|
3
|
+
const executeSafe = async () => await resolveQuery(data);
|
|
4
|
+
return {
|
|
5
|
+
schema: data.zodSchema,
|
|
6
|
+
url: data.request.url,
|
|
7
|
+
executeSafe,
|
|
8
|
+
execute: async () => {
|
|
9
|
+
const { success, response, error } = await executeSafe();
|
|
10
|
+
if (!success) {
|
|
11
|
+
throw error;
|
|
12
|
+
}
|
|
13
|
+
return response;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=mutation-sdk-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-sdk-query.js","sourceRoot":"","sources":["../../../lib/sdk/queries/mutation-sdk-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,mBAAmB,CAClC,IAAyE;IAEzE,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,YAAY,CAAgD,IAAI,CAAC,CAAC;IAExG,OAAO;QACN,MAAM,EAAE,IAAI,CAAC,SAAS;QACtB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;QACrB,WAAW;QACX,OAAO,EAAE,KAAK,IAAI,EAAE;YACnB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACb,CAAC;YACD,OAAO,QAAQ,CAAC;QACjB,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { GetNextPageData } from "../../http/http.models.js";
|
|
2
|
+
import type { JsonValue } from "../../models/json.models.js";
|
|
3
|
+
import type { FetchQueryRequest, PagedFetchQuery } from "../sdk-models.js";
|
|
4
|
+
export declare function createPagedFetchQuery<TResponsePayload extends JsonValue, TMeta, TError>(data: FetchQueryRequest<TResponsePayload, TMeta, TError> & {
|
|
5
|
+
readonly getNextPageData: GetNextPageData<TResponsePayload, TMeta>;
|
|
6
|
+
}): PagedFetchQuery<TResponsePayload, TMeta, TError>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { match, P } from "ts-pattern";
|
|
2
|
+
import { createSdkError } from "../../utils/error.utils.js";
|
|
3
|
+
import { createFetchQuery } from "./fetch-sdk-query.js";
|
|
4
|
+
export function createPagedFetchQuery(data) {
|
|
5
|
+
const getPagingData = (config) => {
|
|
6
|
+
return {
|
|
7
|
+
...data,
|
|
8
|
+
method: "GET",
|
|
9
|
+
pageIndex: 0,
|
|
10
|
+
paginationConfig: config ?? {},
|
|
11
|
+
request: {
|
|
12
|
+
...data.request,
|
|
13
|
+
body: null,
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
const fetchQuery = createFetchQuery(data);
|
|
18
|
+
return {
|
|
19
|
+
schema: fetchQuery.schema,
|
|
20
|
+
url: fetchQuery.url,
|
|
21
|
+
fetchPage: async () => await fetchQuery.fetch(),
|
|
22
|
+
fetchPageSafe: async () => await fetchQuery.fetchSafe(),
|
|
23
|
+
fetchAllPages: async (config) => {
|
|
24
|
+
const { success, error, lastContinuationToken, partialResponses, responses } = await fetchAllPages(getPagingData(config));
|
|
25
|
+
if (!success) {
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
lastContinuationToken,
|
|
30
|
+
responses,
|
|
31
|
+
partialResponses,
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
fetchAllPagesSafe: async (config) => await fetchAllPages(getPagingData(config)),
|
|
35
|
+
pagesSafe: (config) => createPagingQueryIterator(getPagingData(config)),
|
|
36
|
+
pages: async function* (config) {
|
|
37
|
+
const iterator = createPagingQueryIterator(getPagingData(config));
|
|
38
|
+
for await (const result of iterator) {
|
|
39
|
+
if (!result.success) {
|
|
40
|
+
throw result.error;
|
|
41
|
+
}
|
|
42
|
+
yield result.response;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async function* createPagingQueryIterator(data) {
|
|
48
|
+
let nextPageState = { hasNextPage: true, pageSource: "firstRequest" };
|
|
49
|
+
let pageIndex = 0;
|
|
50
|
+
while (isNextPageAvailable(nextPageState)) {
|
|
51
|
+
const urlToUse = nextPageState?.nextPageUrl ?? data.request.url;
|
|
52
|
+
const { success, response, error } = await createFetchQuery({
|
|
53
|
+
...data,
|
|
54
|
+
request: {
|
|
55
|
+
...data.request,
|
|
56
|
+
url: urlToUse,
|
|
57
|
+
continuationToken: nextPageState.continuationToken,
|
|
58
|
+
},
|
|
59
|
+
}).fetchSafe();
|
|
60
|
+
if (!success) {
|
|
61
|
+
yield { success: false, error };
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
yield { success: true, response };
|
|
65
|
+
pageIndex++;
|
|
66
|
+
nextPageState = resolveNextPageState({
|
|
67
|
+
getNextPageData: data.getNextPageData,
|
|
68
|
+
paginationConfig: data.paginationConfig,
|
|
69
|
+
pageIndex: pageIndex,
|
|
70
|
+
response,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function resolveNextPageState({ paginationConfig, getNextPageData, pageIndex, response, }) {
|
|
75
|
+
return match({ getNextPageData, paginationConfig, pageIndex, response })
|
|
76
|
+
.returnType()
|
|
77
|
+
.with({ paginationConfig: { maxPagesCount: 0 } }, () => ({
|
|
78
|
+
hasNextPage: false,
|
|
79
|
+
}))
|
|
80
|
+
.with({ paginationConfig: { maxPagesCount: pageIndex } }, () => ({
|
|
81
|
+
hasNextPage: false,
|
|
82
|
+
}))
|
|
83
|
+
.otherwise((m) => {
|
|
84
|
+
const responsePageData = m.getNextPageData(m.response);
|
|
85
|
+
return match(responsePageData)
|
|
86
|
+
.returnType()
|
|
87
|
+
.with({ continuationToken: P.string.minLength(1) }, (m) => ({
|
|
88
|
+
hasNextPage: true,
|
|
89
|
+
pageSource: "continuationToken",
|
|
90
|
+
continuationToken: m.continuationToken,
|
|
91
|
+
}))
|
|
92
|
+
.with({ nextPageUrl: P.string.minLength(1) }, (m) => ({
|
|
93
|
+
hasNextPage: true,
|
|
94
|
+
pageSource: "nextPageUrl",
|
|
95
|
+
nextPageUrl: m.nextPageUrl,
|
|
96
|
+
}))
|
|
97
|
+
.otherwise(() => ({
|
|
98
|
+
hasNextPage: false,
|
|
99
|
+
}));
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
async function fetchAllPages(data) {
|
|
103
|
+
const responses = [];
|
|
104
|
+
for await (const result of createPagingQueryIterator(data)) {
|
|
105
|
+
if (!result.success) {
|
|
106
|
+
return { success: false, error: result.error, partialResponses: responses };
|
|
107
|
+
}
|
|
108
|
+
responses.push(result.response);
|
|
109
|
+
}
|
|
110
|
+
return validateAndBuildPagingResult({
|
|
111
|
+
responses,
|
|
112
|
+
initialUrl: data.request.url,
|
|
113
|
+
mapError: data.mapError,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function validateAndBuildPagingResult({ responses, initialUrl, mapError, }) {
|
|
117
|
+
const lastResponse = responses.at(-1);
|
|
118
|
+
if (!lastResponse) {
|
|
119
|
+
return {
|
|
120
|
+
success: false,
|
|
121
|
+
partialResponses: responses,
|
|
122
|
+
error: mapError(createSdkError({
|
|
123
|
+
baseErrorData: {
|
|
124
|
+
retryStrategyOptions: undefined,
|
|
125
|
+
retryAttempt: undefined,
|
|
126
|
+
url: initialUrl,
|
|
127
|
+
message: "No responses were processed. Expected at least one response to be fetched when using paging queries.",
|
|
128
|
+
},
|
|
129
|
+
details: {
|
|
130
|
+
reason: "noResponses",
|
|
131
|
+
url: initialUrl,
|
|
132
|
+
},
|
|
133
|
+
})),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
success: true,
|
|
138
|
+
responses: responses,
|
|
139
|
+
lastContinuationToken: lastResponse.meta.continuationToken,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function isNextPageAvailable(nextPageState) {
|
|
143
|
+
return nextPageState.hasNextPage;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=paged-fetch-sdk-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paged-fetch-sdk-query.js","sourceRoot":"","sources":["../../../lib/sdk/queries/paged-fetch-sdk-query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared query models/types intended to be reused across SDKs (e.g. Sync, Delivery, Management)
|
|
3
|
+
* to keep common code and behavior consistent.
|
|
4
|
+
*/
|
|
5
|
+
import type { HttpRequestBody } from "../http/http.models.js";
|
|
6
|
+
import type { JsonValue } from "../models/json.models.js";
|
|
7
|
+
import type { QueryPromiseResult, ResolveQueryData } from "./sdk-models.js";
|
|
8
|
+
export declare function resolveQuery<TResponsePayload extends JsonValue, TRequestBody extends HttpRequestBody, TMeta, TError>({ config, request, mapMetadata, zodSchema, sdkInfo, method, abortSignal, mapError, }: ResolveQueryData<TResponsePayload, TRequestBody, TMeta, TError>): QueryPromiseResult<TResponsePayload, TMeta, TError>;
|