@luvio/compiler 0.63.2 → 0.66.0
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/dist/codegen/adapter/adapter-browser-factory.js +2 -2
- package/dist/codegen/adapter/adapter-network-cache-policy.js +10 -2
- package/dist/codegen/adapter/adapter-network-cache-policy.js.map +1 -1
- package/dist/codegen/adapter/adapter-network.d.ts +2 -1
- package/dist/codegen/adapter/adapter-network.js +21 -4
- package/dist/codegen/adapter/adapter-network.js.map +1 -1
- package/dist/codegen/adapter/adapter-prepare-request.d.ts +6 -0
- package/dist/codegen/adapter/adapter-prepare-request.js +215 -0
- package/dist/codegen/adapter/adapter-prepare-request.js.map +1 -0
- package/dist/codegen/adapter/constants.d.ts +1 -0
- package/dist/codegen/adapter/constants.js +2 -1
- package/dist/codegen/adapter/constants.js.map +1 -1
- package/dist/codegen/adapter/index.js +3 -1
- package/dist/codegen/adapter/index.js.map +1 -1
- package/dist/codegen/pagination-utils/cursor-based.js +8 -6
- package/dist/codegen/pagination-utils/cursor-based.js.map +1 -1
- package/dist/codegen/pagination-utils/synthetic-cursor.d.ts +1 -0
- package/dist/codegen/pagination-utils/synthetic-cursor.js +274 -0
- package/dist/codegen/pagination-utils/synthetic-cursor.js.map +1 -0
- package/dist/codegen/resource/create-resource-request.js +3 -1
- package/dist/codegen/resource/create-resource-request.js.map +1 -1
- package/dist/codegen/shape/shape-ingest-paginated.js +89 -7
- package/dist/codegen/shape/shape-ingest-paginated.js.map +1 -1
- package/dist/codegen/shape/shape-select-paginated.js +87 -4
- package/dist/codegen/shape/shape-select-paginated.js.map +1 -1
- package/dist/generate.js +9 -0
- package/dist/generate.js.map +1 -1
- package/dist/intermediate/mock-payload.d.ts +1 -1
- package/dist/intermediate/resource.d.ts +2 -0
- package/dist/intermediate/resource.js.map +1 -1
- package/dist/parser/main.js +11 -3
- package/dist/parser/main.js.map +1 -1
- package/dist/utils/imports.js +1 -2
- package/dist/utils/imports.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generatePaginationUtils = void 0;
|
|
7
|
+
const deindent_1 = __importDefault(require("../../utils/deindent"));
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
const cursor_based_1 = require("./cursor-based");
|
|
10
|
+
const TYPES = (0, deindent_1.default) `
|
|
11
|
+
import { ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER}, ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER} } from './cursor';
|
|
12
|
+
|
|
13
|
+
export { ${constants_1.PAGINATION_PARAMS_INTERFACE_IDENTIFIER} } from './cursor';
|
|
14
|
+
|
|
15
|
+
export type ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER} = {
|
|
16
|
+
clientTokens: Record<string, number>;
|
|
17
|
+
serverTokens: string[];
|
|
18
|
+
__END__?: number;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export interface ${constants_1.PAGE_METADATA_IDENTIFIER} {
|
|
22
|
+
startOffset?: number;
|
|
23
|
+
endOffset?: number;
|
|
24
|
+
nextServerToken?: ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER};
|
|
25
|
+
metadataProperties: Record<string, unknown>;
|
|
26
|
+
};
|
|
27
|
+
`;
|
|
28
|
+
const CLIENT_TOKEN_FROM_OFFSET = (0, deindent_1.default) `
|
|
29
|
+
export function clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}, offset: number): string | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER} {
|
|
30
|
+
const { clientTokens } = ${constants_1.PAGINATION_METADATA_IDENTIFIER};
|
|
31
|
+
|
|
32
|
+
const tokens = Object.keys(clientTokens);
|
|
33
|
+
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
34
|
+
const token = tokens[i];
|
|
35
|
+
if (clientTokens[token] === offset) {
|
|
36
|
+
return token;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
const OFFSET_FROM_CLIENT_TOKEN = (0, deindent_1.default) `
|
|
42
|
+
export function offsetFromClientToken(${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}, token: string | undefined): number {
|
|
43
|
+
if (token === undefined) {
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const offset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.clientTokens[token];
|
|
48
|
+
return offset === undefined ? -1 : offset;
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
const OFFSET_FROM_SERVER_TOKEN = (0, deindent_1.default) `
|
|
52
|
+
export function offsetFromServerToken(${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}, token: string): number {
|
|
53
|
+
return ${constants_1.PAGINATION_METADATA_IDENTIFIER}.serverTokens.indexOf(token);
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
const NEXT_TOKEN = (0, deindent_1.default) `
|
|
57
|
+
export function getNextPageTokens(
|
|
58
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
59
|
+
pageEndOffset: number
|
|
60
|
+
): {
|
|
61
|
+
clientToken: ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER} | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER};
|
|
62
|
+
serverToken: ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER} | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER};
|
|
63
|
+
} {
|
|
64
|
+
const listEndOffset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
65
|
+
|
|
66
|
+
if (listEndOffset === undefined || pageEndOffset < listEndOffset) {
|
|
67
|
+
const clientToken = clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}, pageEndOffset);
|
|
68
|
+
if (clientToken === undefined) {
|
|
69
|
+
return {
|
|
70
|
+
clientToken: undefined,
|
|
71
|
+
serverToken: undefined,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
clientToken,
|
|
77
|
+
serverToken: ${constants_1.PAGINATION_METADATA_IDENTIFIER}.serverTokens[pageEndOffset]
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
clientToken: null,
|
|
83
|
+
serverToken: null,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
const PREVIOUS_TOKEN = (0, deindent_1.default) `
|
|
88
|
+
export function getPreviousClientToken(
|
|
89
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
90
|
+
startOffset: number,
|
|
91
|
+
pageSize: number
|
|
92
|
+
): ${cursor_based_1.NULLABLE_TOKEN_TYPE_IDENTIFIER} | ${cursor_based_1.TOKEN_MISSING_TYPE_IDENTIFIER} {
|
|
93
|
+
const previousPageOffset = startOffset - pageSize;
|
|
94
|
+
if (previousPageOffset < 0) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const listEndOffset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
99
|
+
if (listEndOffset !== undefined && previousPageOffset >= listEndOffset) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}, previousPageOffset);
|
|
104
|
+
}
|
|
105
|
+
`;
|
|
106
|
+
const PAGE_END_OFFSET = (0, deindent_1.default) `
|
|
107
|
+
export function pageEndOffset(
|
|
108
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
109
|
+
startOffset: number,
|
|
110
|
+
pageSize: number
|
|
111
|
+
): number {
|
|
112
|
+
const listEndOffset = ${constants_1.PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
113
|
+
const nextPageOffset = startOffset + pageSize;
|
|
114
|
+
if (listEndOffset === undefined) {
|
|
115
|
+
return nextPageOffset;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return Math.min(nextPageOffset, listEndOffset);
|
|
119
|
+
}
|
|
120
|
+
`;
|
|
121
|
+
const GET_PAGE_TOKEN_AND_OFFSET = (0, deindent_1.default) `
|
|
122
|
+
export function getPageTokenAndOffset(
|
|
123
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
124
|
+
token: string | undefined,
|
|
125
|
+
): [string, number] | undefined {
|
|
126
|
+
if (token === undefined) {
|
|
127
|
+
const startToken = clientTokenFromOffset(${constants_1.PAGINATION_METADATA_IDENTIFIER}, 0);
|
|
128
|
+
if (startToken === undefined) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
return [startToken, 0];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const startOffset = offsetFromClientToken(${constants_1.PAGINATION_METADATA_IDENTIFIER}, token);
|
|
135
|
+
if (startOffset < 0) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return [token, startOffset];
|
|
140
|
+
}
|
|
141
|
+
`;
|
|
142
|
+
const SERVER_TOKEN_FOR_AT_MOST = (0, deindent_1.default) `
|
|
143
|
+
export function serverTokenForAtMost(
|
|
144
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
145
|
+
maxOffset: number
|
|
146
|
+
): [string | undefined, number] {
|
|
147
|
+
const { serverTokens } = ${constants_1.PAGINATION_METADATA_IDENTIFIER};
|
|
148
|
+
for (let i = maxOffset; i >= 0; i--) {
|
|
149
|
+
const token = serverTokens[i];
|
|
150
|
+
if (token !== undefined) {
|
|
151
|
+
return [token, i];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return [undefined, -1];
|
|
156
|
+
}
|
|
157
|
+
`;
|
|
158
|
+
const GENERATE_CLIENT_TOKEN = (0, deindent_1.default) `
|
|
159
|
+
export function generateClientToken(offset: number): string {
|
|
160
|
+
return 'client:' + offset;
|
|
161
|
+
}
|
|
162
|
+
`;
|
|
163
|
+
const ADD_TOKENS = (0, deindent_1.default) `
|
|
164
|
+
export function addTokens(
|
|
165
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER},
|
|
166
|
+
offset: number,
|
|
167
|
+
clientToken: string,
|
|
168
|
+
serverToken?: string
|
|
169
|
+
) {
|
|
170
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}.clientTokens[clientToken] = offset;
|
|
171
|
+
if (serverToken !== undefined) {
|
|
172
|
+
${constants_1.PAGINATION_METADATA_IDENTIFIER}.serverTokens[offset] = serverToken;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
`;
|
|
176
|
+
const MERGE_METADATA = (0, deindent_1.default) `
|
|
177
|
+
export function mergeMetadata(
|
|
178
|
+
existingMetadata: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER} | undefined,
|
|
179
|
+
incomingMetadata: ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER}
|
|
180
|
+
): ${constants_1.PAGINATION_METADATA_TYPE_IDENTIFIER} {
|
|
181
|
+
if (existingMetadata === undefined) {
|
|
182
|
+
return incomingMetadata;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
const clientTokens = {
|
|
186
|
+
...existingMetadata.clientTokens,
|
|
187
|
+
...incomingMetadata.clientTokens
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
const serverTokens = mergeArrays(existingMetadata.serverTokens, incomingMetadata.serverTokens);
|
|
191
|
+
const ${cursor_based_1.LIST_END_IDENTIFIER} = incomingMetadata.hasOwnProperty('${cursor_based_1.LIST_END_IDENTIFIER}') ? incomingMetadata.${cursor_based_1.LIST_END_IDENTIFIER} : existingMetadata.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
192
|
+
|
|
193
|
+
return {
|
|
194
|
+
clientTokens,
|
|
195
|
+
serverTokens,
|
|
196
|
+
${cursor_based_1.LIST_END_IDENTIFIER}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function mergeArrays(existing: string[], incoming: string[]) {
|
|
201
|
+
const merged = [];
|
|
202
|
+
const len = Math.max(existing.length, incoming.length);
|
|
203
|
+
for (let i = 0; i < len; i++) {
|
|
204
|
+
const value = incoming[i] || existing[i];
|
|
205
|
+
merged.push(value);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return merged;
|
|
209
|
+
}
|
|
210
|
+
`;
|
|
211
|
+
const EQUALS_METADATA = (0, deindent_1.default) `
|
|
212
|
+
export function equalsMetadata(
|
|
213
|
+
existingMetadata: PaginationMetadata,
|
|
214
|
+
incomingMetadata: PaginationMetadata
|
|
215
|
+
): boolean {
|
|
216
|
+
const {
|
|
217
|
+
clientTokens: existingClientTokens,
|
|
218
|
+
serverTokens: existingServerTokens,
|
|
219
|
+
${cursor_based_1.LIST_END_IDENTIFIER}: existingListEnd
|
|
220
|
+
} = existingMetadata;
|
|
221
|
+
const {
|
|
222
|
+
clientTokens: incomingClientTokens,
|
|
223
|
+
serverTokens: incomingServerTokens,
|
|
224
|
+
${cursor_based_1.LIST_END_IDENTIFIER}: incomingListEnd
|
|
225
|
+
} = incomingMetadata;
|
|
226
|
+
|
|
227
|
+
const existingKeys = Object.keys(existingClientTokens);
|
|
228
|
+
const incomingKeys = Object.keys(incomingClientTokens);
|
|
229
|
+
|
|
230
|
+
const clientTokensLength = existingKeys.length;
|
|
231
|
+
if (clientTokensLength !== incomingKeys.length) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
for (let i = 0; i < clientTokensLength; i++) {
|
|
236
|
+
const key = existingKeys[i];
|
|
237
|
+
if (existingClientTokens[key] !== incomingClientTokens[key]) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const serverTokensLength = existingServerTokens.length;
|
|
243
|
+
if (serverTokensLength !== incomingServerTokens.length) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
for (let i = 0; i < serverTokensLength; i++) {
|
|
248
|
+
if (existingServerTokens[i] !== incomingServerTokens[i]) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return existingListEnd === incomingListEnd;
|
|
254
|
+
}
|
|
255
|
+
`;
|
|
256
|
+
function generatePaginationUtils() {
|
|
257
|
+
return [
|
|
258
|
+
TYPES,
|
|
259
|
+
CLIENT_TOKEN_FROM_OFFSET,
|
|
260
|
+
OFFSET_FROM_CLIENT_TOKEN,
|
|
261
|
+
OFFSET_FROM_SERVER_TOKEN,
|
|
262
|
+
NEXT_TOKEN,
|
|
263
|
+
PREVIOUS_TOKEN,
|
|
264
|
+
PAGE_END_OFFSET,
|
|
265
|
+
GET_PAGE_TOKEN_AND_OFFSET,
|
|
266
|
+
SERVER_TOKEN_FOR_AT_MOST,
|
|
267
|
+
GENERATE_CLIENT_TOKEN,
|
|
268
|
+
ADD_TOKENS,
|
|
269
|
+
MERGE_METADATA,
|
|
270
|
+
EQUALS_METADATA,
|
|
271
|
+
].join('\n\n');
|
|
272
|
+
}
|
|
273
|
+
exports.generatePaginationUtils = generatePaginationUtils;
|
|
274
|
+
//# sourceMappingURL=synthetic-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"synthetic-cursor.js","sourceRoot":"","sources":["../../../src/codegen/pagination-utils/synthetic-cursor.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,2CAKqB;AAErB,iDAIwB;AAExB,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAA;eACP,6CAA8B,KAAK,4CAA6B;;eAEhE,kDAAsC;;kBAEnC,+CAAmC;;;;;;uBAM9B,oCAAwB;;;4BAGnB,6CAA8B;;;CAGzD,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;4CACG,0CAA8B,KAAK,+CAAmC,+BAA+B,4CAA6B;mCAC3I,0CAA8B;;;;;;;;;;CAUhE,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;4CACG,0CAA8B,KAAK,+CAAmC;;;;;yBAKzF,0CAA8B;;;CAGtD,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;4CACG,0CAA8B,KAAK,+CAAmC;iBACjG,0CAA8B;;CAE9C,CAAC;AAEF,MAAM,UAAU,GAAG,IAAA,kBAAQ,EAAA;;UAEjB,0CAA8B,KAAK,+CAAmC;;;uBAGzD,6CAA8B,MAAM,4CAA6B;uBACjE,6CAA8B,MAAM,4CAA6B;;gCAExD,0CAA8B,IAAI,kCAAmB;;;wDAG7B,0CAA8B;;;;;;;;;;+BAUvD,0CAA8B;;;;;;;;;CAS5D,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAAA;;UAErB,0CAA8B,KAAK,+CAAmC;;;SAGvE,6CAA8B,MAAM,4CAA6B;;;;;;gCAM1C,0CAA8B,IAAI,kCAAmB;;;;;uCAK9C,0CAA8B;;CAEpE,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,kBAAQ,EAAA;;UAEtB,0CAA8B,KAAK,+CAAmC;;;;gCAIhD,0CAA8B,IAAI,kCAAmB;;;;;;;;CAQpF,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAA,kBAAQ,EAAA;;UAEhC,0CAA8B,KAAK,+CAAmC;;;;uDAIzB,0CAA8B;;;;;;;oDAOjC,0CAA8B;;;;;;;CAOjF,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAA,kBAAQ,EAAA;;UAE/B,0CAA8B,KAAK,+CAAmC;;;mCAG7C,0CAA8B;;;;;;;;;;CAUhE,CAAC;AAEF,MAAM,qBAAqB,GAAG,IAAA,kBAAQ,EAAA;;;;CAIrC,CAAC;AAEF,MAAM,UAAU,GAAG,IAAA,kBAAQ,EAAA;;UAEjB,0CAA8B,KAAK,+CAAmC;;;;;UAKtE,0CAA8B;;cAE1B,0CAA8B;;;CAG3C,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,kBAAQ,EAAA;;4BAEH,+CAAmC;4BACnC,+CAAmC;SACtD,+CAAmC;;;;;;;;;;;gBAW5B,kCAAmB,uCAAuC,kCAAmB,yBAAyB,kCAAmB,uBAAuB,kCAAmB;;;;;cAKrK,kCAAmB;;;;;;;;;;;;;;CAchC,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,kBAAQ,EAAA;;;;;;;;cAQlB,kCAAmB;;;;;cAKnB,kCAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BhC,CAAC;AAEF,SAAgB,uBAAuB;IACnC,OAAO;QACH,KAAK;QACL,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;QACxB,UAAU;QACV,cAAc;QACd,eAAe;QACf,yBAAyB;QACzB,wBAAwB;QACxB,qBAAqB;QACrB,UAAU;QACV,cAAc;QACd,eAAe;KAClB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC;AAhBD,0DAgBC"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.generateCreateResourceRequest = exports.CREATE_RESOURCE_REQUEST_IDENTIFIER = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const resource_1 = require("../../intermediate/resource");
|
|
9
|
+
const constants_1 = require("../adapter/constants");
|
|
9
10
|
const utils_1 = require("../../intermediate/utils");
|
|
10
11
|
const deindent_1 = __importDefault(require("../../utils/deindent"));
|
|
11
12
|
const format_1 = require("../../utils/format");
|
|
@@ -117,7 +118,7 @@ function generateCreateResourceRequest(importContext, resource, compilerConfig,
|
|
|
117
118
|
const fulfillProperty = fulfillIdentifier === '' ? '' : `fulfill: ${fulfillIdentifier},`;
|
|
118
119
|
const resourceRequestConfig = importContext.importRamlArtifact(id, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
119
120
|
return (0, deindent_1.default) `
|
|
120
|
-
export function ${exports.CREATE_RESOURCE_REQUEST_IDENTIFIER}(${CONFIG_IDENTIFIER}: ${resourceRequestConfig}) {
|
|
121
|
+
export function ${exports.CREATE_RESOURCE_REQUEST_IDENTIFIER}(${CONFIG_IDENTIFIER}: ${resourceRequestConfig}): ${constants_1.ADAPTER_RESOURCE_REQUEST_IDENTIFIER} {
|
|
121
122
|
${headers}
|
|
122
123
|
|
|
123
124
|
return {
|
|
@@ -128,6 +129,7 @@ function generateCreateResourceRequest(importContext, resource, compilerConfig,
|
|
|
128
129
|
urlParams: ${urlParams},
|
|
129
130
|
queryParams: ${queryParams},
|
|
130
131
|
headers,
|
|
132
|
+
priority: 'normal',
|
|
131
133
|
${fulfillProperty}
|
|
132
134
|
}
|
|
133
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-resource-request.js","sourceRoot":"","sources":["../../../src/codegen/resource/create-resource-request.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"create-resource-request.js","sourceRoot":"","sources":["../../../src/codegen/resource/create-resource-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ const pagination_1 = require("../../intermediate/pagination");
|
|
|
9
9
|
const constants_1 = require("./constants");
|
|
10
10
|
const constants_2 = require("../shared/constants");
|
|
11
11
|
const cursor_based_1 = require("../pagination-utils/cursor-based");
|
|
12
|
+
const constants_3 = require("../pagination-utils/constants");
|
|
12
13
|
const PAGINATION_KEY_IDENTIFIER = 'paginationKey';
|
|
13
14
|
const START_OFFSET_IDENTIFIER = 'startOffset';
|
|
14
15
|
const NEXT_OFFSET_IDENTIFIER = 'nextOffset';
|
|
@@ -37,17 +38,86 @@ function generateIngestPagination(shapeConfig) {
|
|
|
37
38
|
exports.generateIngestPagination = generateIngestPagination;
|
|
38
39
|
function generateIngestPaginationMetadata(importContext, shapePaginated) {
|
|
39
40
|
switch (shapePaginated.strategy) {
|
|
40
|
-
case pagination_1.Strategy.SyntheticCursor: // TODO [W-10187230]: SyntheticCursor will generate its own ingest code
|
|
41
41
|
case pagination_1.Strategy.Cursor: {
|
|
42
42
|
return generateIngestCursorPaginationMetadata(importContext, shapePaginated);
|
|
43
43
|
}
|
|
44
|
+
case pagination_1.Strategy.SyntheticCursor: {
|
|
45
|
+
return generateIngestSyntheticCursorPaginationMetadata(importContext, shapePaginated);
|
|
46
|
+
}
|
|
44
47
|
}
|
|
45
48
|
}
|
|
49
|
+
function generateIngestSyntheticCursorPaginationMetadata(importContext, shapePaginated) {
|
|
50
|
+
const { strategy, items, metadata: pageMetadata } = shapePaginated;
|
|
51
|
+
const assignMetadataLink = importContext.importTypeUtil('assignMetadataLink');
|
|
52
|
+
const paginationMetadataType = importContext.importPaginationUtil(strategy, constants_3.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
53
|
+
const offsetFromServerToken = importContext.importPaginationUtil(strategy, 'offsetFromServerToken');
|
|
54
|
+
const mergeMetadata = importContext.importPaginationUtil(strategy, 'mergeMetadata');
|
|
55
|
+
const equalsMetadata = importContext.importPaginationUtil(strategy, 'equalsMetadata');
|
|
56
|
+
const generateClientToken = importContext.importPaginationUtil(strategy, 'generateClientToken');
|
|
57
|
+
const addTokens = importContext.importPaginationUtil(strategy, 'addTokens');
|
|
58
|
+
return (0, deindent_1.default) `
|
|
59
|
+
const ${EXISTING_PAGINATION_METADATA_IDENTIFIER}: ${paginationMetadataType} | undefined = ${constants_2.LUVIO_STORE_IDENTIFIER}.records[${PAGINATION_KEY_IDENTIFIER}];
|
|
60
|
+
|
|
61
|
+
const {
|
|
62
|
+
${generatePaginationProperties(pageMetadata)},
|
|
63
|
+
${items}: ${pagination_1.PaginatedTypeProperty.Items}
|
|
64
|
+
} = ${constants_1.INPUT_IDENTIFIER};
|
|
65
|
+
|
|
66
|
+
const ${START_OFFSET_IDENTIFIER} = ${EXISTING_PAGINATION_METADATA_IDENTIFIER} === undefined ? 0 : ${offsetFromServerToken}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, ${pagination_1.CursorPaginatedTypeProperty.Token});
|
|
67
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
68
|
+
if (
|
|
69
|
+
${START_OFFSET_IDENTIFIER} < 0 ||
|
|
70
|
+
(${constants_1.EXISTING_RECORD_IDENTIFIER} && ${constants_1.EXISTING_RECORD_IDENTIFIER}.${items}.length < ${START_OFFSET_IDENTIFIER})
|
|
71
|
+
) {
|
|
72
|
+
throw new RangeError('${pageMetadata.token} value ' + ${pagination_1.CursorPaginatedTypeProperty.Token} + ' is not recognized');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const ${INCOMING_PAGINATION_METADATA_IDENTIFIER}: ${paginationMetadataType} = {
|
|
77
|
+
clientTokens: {},
|
|
78
|
+
serverTokens: []
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const pageClientToken = ${generateClientToken}(${START_OFFSET_IDENTIFIER});
|
|
82
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, ${START_OFFSET_IDENTIFIER}, pageClientToken, ${pagination_1.CursorPaginatedTypeProperty.Token});
|
|
83
|
+
|
|
84
|
+
const ${NEXT_OFFSET_IDENTIFIER} = ${START_OFFSET_IDENTIFIER} + ${pagination_1.PaginatedTypeProperty.Items}.length;
|
|
85
|
+
if (${pagination_1.CursorPaginatedTypeProperty.NextToken} === null) {
|
|
86
|
+
${INCOMING_PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER} = ${NEXT_OFFSET_IDENTIFIER};
|
|
87
|
+
} else {
|
|
88
|
+
const nextClientToken = ${generateClientToken}(${NEXT_OFFSET_IDENTIFIER});
|
|
89
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, ${NEXT_OFFSET_IDENTIFIER}, nextClientToken, ${pagination_1.CursorPaginatedTypeProperty.NextToken});
|
|
90
|
+
if (${EXISTING_PAGINATION_METADATA_IDENTIFIER} !== undefined) {
|
|
91
|
+
const listEndOffset = ${EXISTING_PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER};
|
|
92
|
+
if (listEndOffset !== undefined && ${NEXT_OFFSET_IDENTIFIER} >= listEndOffset) {
|
|
93
|
+
${INCOMING_PAGINATION_METADATA_IDENTIFIER}.${cursor_based_1.LIST_END_IDENTIFIER} = undefined;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
${generatePreviousToken(importContext, shapePaginated)}
|
|
98
|
+
|
|
99
|
+
for (let i = startOffset + 1; i < nextOffset; i++) {
|
|
100
|
+
const itemClientToken = ${generateClientToken}(i);
|
|
101
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, i, itemClientToken);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const mergedPaginationMetadata = ${mergeMetadata}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, ${INCOMING_PAGINATION_METADATA_IDENTIFIER});
|
|
105
|
+
if (
|
|
106
|
+
${EXISTING_PAGINATION_METADATA_IDENTIFIER} === undefined ||
|
|
107
|
+
${equalsMetadata}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, mergedPaginationMetadata) === false
|
|
108
|
+
) {
|
|
109
|
+
luvio.storePublish(${PAGINATION_KEY_IDENTIFIER}, mergedPaginationMetadata);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
${assignMetadataLink}(${constants_1.INCOMING_RECORD_IDENTIFIER}, ${PAGINATION_KEY_IDENTIFIER});
|
|
113
|
+
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
46
116
|
function generateIngestCursorPaginationMetadata(importContext, shapePaginated) {
|
|
47
117
|
const { strategy, items, metadata: pageMetadata } = shapePaginated;
|
|
48
118
|
const assignMetadataLink = importContext.importTypeUtil('assignMetadataLink');
|
|
49
119
|
const equalsObject = importContext.importTypeUtil('equalsObject');
|
|
50
|
-
const paginationMetadataType = importContext.importPaginationUtil(strategy,
|
|
120
|
+
const paginationMetadataType = importContext.importPaginationUtil(strategy, constants_3.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
51
121
|
const offsetFromToken = importContext.importPaginationUtil(strategy, 'offsetFromToken');
|
|
52
122
|
const mergeMetadata = importContext.importPaginationUtil(strategy, 'mergeMetadata');
|
|
53
123
|
return (0, deindent_1.default) `
|
|
@@ -84,7 +154,7 @@ function generateIngestCursorPaginationMetadata(importContext, shapePaginated) {
|
|
|
84
154
|
}
|
|
85
155
|
}
|
|
86
156
|
}
|
|
87
|
-
${generatePreviousToken(
|
|
157
|
+
${generatePreviousToken(importContext, shapePaginated)}
|
|
88
158
|
|
|
89
159
|
const mergedPaginationMetadata = ${mergeMetadata}(${EXISTING_PAGINATION_METADATA_IDENTIFIER}, ${INCOMING_PAGINATION_METADATA_IDENTIFIER});
|
|
90
160
|
if (
|
|
@@ -107,14 +177,26 @@ function generatePaginationProperties(metadataProperties) {
|
|
|
107
177
|
})
|
|
108
178
|
.join(',\n');
|
|
109
179
|
}
|
|
110
|
-
function generatePreviousToken(
|
|
111
|
-
|
|
180
|
+
function generatePreviousToken(importContext, paginatedType) {
|
|
181
|
+
const { strategy, metadata: metadataProperties } = paginatedType;
|
|
182
|
+
if (metadataProperties[pagination_1.CursorPaginatedTypeProperty.PreviousToken] === undefined) {
|
|
183
|
+
return '';
|
|
184
|
+
}
|
|
185
|
+
if (strategy === pagination_1.Strategy.SyntheticCursor) {
|
|
186
|
+
const generateClientToken = importContext.importPaginationUtil(strategy, 'generateClientToken');
|
|
187
|
+
const addTokens = importContext.importPaginationUtil(strategy, 'addTokens');
|
|
112
188
|
return (0, deindent_1.default) `
|
|
113
189
|
if (${pagination_1.CursorPaginatedTypeProperty.PreviousToken} !== null) {
|
|
114
|
-
|
|
190
|
+
const previousOffset = ${START_OFFSET_IDENTIFIER} - ${pagination_1.CursorPaginatedTypeProperty.PageSize};
|
|
191
|
+
const previousClientToken = ${generateClientToken}(previousOffset);
|
|
192
|
+
${addTokens}(${INCOMING_PAGINATION_METADATA_IDENTIFIER}, previousOffset, previousClientToken, ${pagination_1.CursorPaginatedTypeProperty.PreviousToken});
|
|
115
193
|
}
|
|
116
194
|
`;
|
|
117
195
|
}
|
|
118
|
-
return
|
|
196
|
+
return (0, deindent_1.default) `
|
|
197
|
+
if (${pagination_1.CursorPaginatedTypeProperty.PreviousToken} !== null) {
|
|
198
|
+
${INCOMING_PAGINATION_METADATA_IDENTIFIER}[${pagination_1.CursorPaginatedTypeProperty.PreviousToken}] = ${START_OFFSET_IDENTIFIER} - ${pagination_1.CursorPaginatedTypeProperty.PageSize};
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
119
201
|
}
|
|
120
202
|
//# sourceMappingURL=shape-ingest-paginated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-ingest-paginated.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-ingest-paginated.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,
|
|
1
|
+
{"version":3,"file":"shape-ingest-paginated.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-ingest-paginated.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,8 @@ const END_OFFSET_IDENTIFIER = 'endOffset';
|
|
|
22
22
|
const METADATA_PROPERTIES_IDENTIFIER = 'metadataProperties';
|
|
23
23
|
function generateGetPageMetadata(shapePaginated, importContext) {
|
|
24
24
|
switch (shapePaginated.strategy) {
|
|
25
|
-
case pagination_1.Strategy.SyntheticCursor:
|
|
25
|
+
case pagination_1.Strategy.SyntheticCursor:
|
|
26
|
+
return generateSyntheticCursorGetPageMetadata(shapePaginated, importContext);
|
|
26
27
|
case pagination_1.Strategy.Cursor:
|
|
27
28
|
return generateCursorGetPageMetadata(shapePaginated, importContext);
|
|
28
29
|
default:
|
|
@@ -67,6 +68,78 @@ function generateCursorGetPageMetadata(shapePaginated, importContext) {
|
|
|
67
68
|
}
|
|
68
69
|
`;
|
|
69
70
|
}
|
|
71
|
+
function generateSyntheticCursorGetPageMetadata(shapePaginated, importContext) {
|
|
72
|
+
const { strategy } = shapePaginated;
|
|
73
|
+
const paginationMetadataType = importContext.importPaginationUtil(strategy, constants_2.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
74
|
+
const paginationParamsType = importContext.importPaginationUtil(strategy, constants_2.PAGINATION_PARAMS_INTERFACE_IDENTIFIER);
|
|
75
|
+
const pageMetadataType = importContext.importPaginationUtil(strategy, constants_2.PAGE_METADATA_IDENTIFIER);
|
|
76
|
+
const getPageTokenAndOffset = importContext.importPaginationUtil(strategy, 'getPageTokenAndOffset');
|
|
77
|
+
const pageEndOffset = importContext.importPaginationUtil(strategy, 'pageEndOffset');
|
|
78
|
+
return (0, deindent_1.default) `
|
|
79
|
+
function ${GET_PAGE_METADATA}(
|
|
80
|
+
${constants_2.PAGINATION_METADATA_IDENTIFIER}: ${paginationMetadataType} | undefined,
|
|
81
|
+
${constants_2.PAGINATION_PARAMS_IDENTIFIER}: ${paginationParamsType}
|
|
82
|
+
): ${pageMetadataType} {
|
|
83
|
+
const metadataProperties: Record<string, unknown> = {};
|
|
84
|
+
const ${constants_1.SINK_IDENTIFIER}: ${pageMetadataType} = {
|
|
85
|
+
metadataProperties
|
|
86
|
+
};
|
|
87
|
+
if (${constants_2.PAGINATION_METADATA_IDENTIFIER} === undefined) {
|
|
88
|
+
return ${constants_1.SINK_IDENTIFIER};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const { ${pagination_1.CursorPaginationParameter.Token}, ${pagination_1.CursorPaginationParameter.PageSize} } = ${constants_2.PAGINATION_PARAMS_IDENTIFIER};
|
|
92
|
+
const pageTokenAndOffset = ${getPageTokenAndOffset}(${constants_2.PAGINATION_METADATA_IDENTIFIER}, ${pagination_1.CursorPaginationParameter.Token});
|
|
93
|
+
if (pageTokenAndOffset === undefined) {
|
|
94
|
+
return ${constants_1.SINK_IDENTIFIER};
|
|
95
|
+
}
|
|
96
|
+
const [ ${PAGE_TOKEN_IDENTIFIER}, ${START_OFFSET_IDENTIFIER} ] = pageTokenAndOffset;
|
|
97
|
+
const ${END_OFFSET_IDENTIFIER} = ${pageEndOffset}(${constants_2.PAGINATION_METADATA_IDENTIFIER}, ${START_OFFSET_IDENTIFIER}, ${pagination_1.CursorPaginationParameter.PageSize});
|
|
98
|
+
|
|
99
|
+
${constants_1.SINK_IDENTIFIER}.${START_OFFSET_IDENTIFIER} = ${START_OFFSET_IDENTIFIER};
|
|
100
|
+
${constants_1.SINK_IDENTIFIER}.${END_OFFSET_IDENTIFIER} = ${END_OFFSET_IDENTIFIER};
|
|
101
|
+
|
|
102
|
+
${generateSyntheticCursorMetadataEvaluation(shapePaginated, importContext)}
|
|
103
|
+
|
|
104
|
+
return ${constants_1.SINK_IDENTIFIER};
|
|
105
|
+
}
|
|
106
|
+
`;
|
|
107
|
+
}
|
|
108
|
+
function generateSyntheticCursorMetadataEvaluation(shapePaginated, importContext) {
|
|
109
|
+
const { metadata: paginationProperties, strategy } = shapePaginated;
|
|
110
|
+
const getNextPageTokens = importContext.importPaginationUtil(strategy, 'getNextPageTokens');
|
|
111
|
+
const tokenPropertyName = paginationProperties[pagination_2.CursorPaginatedTypeProperty.Token];
|
|
112
|
+
const nextTokenPropertyName = paginationProperties[pagination_2.CursorPaginatedTypeProperty.NextToken];
|
|
113
|
+
const previousTokenPropertyName = paginationProperties[pagination_2.CursorPaginatedTypeProperty.PreviousToken];
|
|
114
|
+
const pageSizePropertyName = paginationProperties[pagination_2.CursorPaginatedTypeProperty.PageSize];
|
|
115
|
+
const countPropertyName = paginationProperties[pagination_2.CursorPaginatedTypeProperty.Count];
|
|
116
|
+
const statements = [];
|
|
117
|
+
statements.push((0, deindent_1.default) `
|
|
118
|
+
${METADATA_PROPERTIES_IDENTIFIER}.${tokenPropertyName} = ${PAGE_TOKEN_IDENTIFIER};
|
|
119
|
+
|
|
120
|
+
const { clientToken: nextClientToken, serverToken: nextServerToken } = ${getNextPageTokens}(paginationMetadata, ${END_OFFSET_IDENTIFIER});
|
|
121
|
+
if (nextClientToken !== undefined) {
|
|
122
|
+
${METADATA_PROPERTIES_IDENTIFIER}.${nextTokenPropertyName} = nextClientToken;
|
|
123
|
+
${constants_1.SINK_IDENTIFIER}.nextServerToken = nextServerToken;
|
|
124
|
+
}
|
|
125
|
+
`);
|
|
126
|
+
if (previousTokenPropertyName !== undefined) {
|
|
127
|
+
const getPreviousPageToken = importContext.importPaginationUtil(strategy, 'getPreviousPageToken');
|
|
128
|
+
statements.push((0, deindent_1.default) `
|
|
129
|
+
const { clientToken: previousClientToken, serverToken: previousServerToken } = ${getPreviousPageToken}(paginationMetadata, ${START_OFFSET_IDENTIFIER}, ${pagination_2.CursorPaginatedTypeProperty.PageSize});
|
|
130
|
+
if (previousClientToken !== undefined) {
|
|
131
|
+
${METADATA_PROPERTIES_IDENTIFIER}.${previousTokenPropertyName} = previousClientToken;
|
|
132
|
+
}
|
|
133
|
+
`);
|
|
134
|
+
}
|
|
135
|
+
if (pageSizePropertyName !== undefined) {
|
|
136
|
+
statements.push(`${METADATA_PROPERTIES_IDENTIFIER}.${pageSizePropertyName} = ${pagination_2.CursorPaginatedTypeProperty.PageSize};`);
|
|
137
|
+
}
|
|
138
|
+
if (countPropertyName !== undefined) {
|
|
139
|
+
statements.push(`${METADATA_PROPERTIES_IDENTIFIER}.${countPropertyName} = ${END_OFFSET_IDENTIFIER} - ${START_OFFSET_IDENTIFIER};`);
|
|
140
|
+
}
|
|
141
|
+
return statements.join('\n\n');
|
|
142
|
+
}
|
|
70
143
|
function generateCursorMetadataEvaluation(shapePaginated, importContext) {
|
|
71
144
|
const { metadata: paginationProperties, strategy } = shapePaginated;
|
|
72
145
|
const getNextPageToken = importContext.importPaginationUtil(strategy, 'getNextPageToken');
|
|
@@ -108,11 +181,13 @@ function selectPaginated(shape, state, shapePaginated) {
|
|
|
108
181
|
case pagination_1.Strategy.SyntheticCursor:
|
|
109
182
|
case pagination_1.Strategy.Cursor:
|
|
110
183
|
return selectCursorPaginated(shape, state, shapePaginated, paginationProperties);
|
|
184
|
+
default:
|
|
185
|
+
return '';
|
|
111
186
|
}
|
|
112
187
|
}
|
|
113
188
|
exports.selectPaginated = selectPaginated;
|
|
114
189
|
function selectCursorPaginated(shape, state, shapePaginated, paginationProperties) {
|
|
115
|
-
const { items: itemsProperty,
|
|
190
|
+
const { items: itemsProperty, strategy } = shapePaginated;
|
|
116
191
|
const paginationMetadataType = state.importContext.importPaginationUtil(strategy, constants_2.PAGINATION_METADATA_TYPE_IDENTIFIER);
|
|
117
192
|
return (0, deindent_1.default) `
|
|
118
193
|
{
|
|
@@ -136,7 +211,7 @@ function selectCursorPaginated(shape, state, shapePaginated, paginationPropertie
|
|
|
136
211
|
${selectPaginatedItems(shape, state, itemsProperty)}
|
|
137
212
|
}
|
|
138
213
|
|
|
139
|
-
${selectCursorPaginatedMetadata(
|
|
214
|
+
${selectCursorPaginatedMetadata(shapePaginated)}
|
|
140
215
|
|
|
141
216
|
${selectProperties(shape, state, paginationProperties)}
|
|
142
217
|
|
|
@@ -218,11 +293,19 @@ function generateReadItemsFunction(shape, state) {
|
|
|
218
293
|
}
|
|
219
294
|
return '';
|
|
220
295
|
}
|
|
221
|
-
function selectCursorPaginatedMetadata(
|
|
296
|
+
function selectCursorPaginatedMetadata(paginatedType) {
|
|
297
|
+
const { metadata, strategy } = paginatedType;
|
|
222
298
|
const statements = [
|
|
223
299
|
generateReadMetadata(metadata[pagination_2.CursorPaginatedTypeProperty.Token]),
|
|
224
300
|
generateReadMetadata(metadata[pagination_2.CursorPaginatedTypeProperty.NextToken]),
|
|
225
301
|
];
|
|
302
|
+
if (strategy === pagination_1.Strategy.SyntheticCursor) {
|
|
303
|
+
statements.push((0, deindent_1.default) `
|
|
304
|
+
if (${CURRENT_PAGE_METADATA_IDENTIFIER}.nextServerToken === undefined) {
|
|
305
|
+
${constants_1.READER_IDENTIFIER}.markStale();
|
|
306
|
+
}
|
|
307
|
+
`);
|
|
308
|
+
}
|
|
226
309
|
const previousTokenPropertyName = metadata[pagination_2.CursorPaginatedTypeProperty.PreviousToken];
|
|
227
310
|
if (previousTokenPropertyName !== undefined) {
|
|
228
311
|
statements.push(generateReadMetadata(previousTokenPropertyName));
|