@teleporthq/teleport-plugin-next-data-source 0.42.8 → 0.42.10
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/__tests__/csv-header-detection.test.ts +212 -0
- package/__tests__/validation.test.ts +33 -2
- package/dist/cjs/data-source-fetchers.d.ts +2 -2
- package/dist/cjs/data-source-fetchers.d.ts.map +1 -1
- package/dist/cjs/data-source-fetchers.js +30 -7
- package/dist/cjs/data-source-fetchers.js.map +1 -1
- package/dist/cjs/fetchers/airtable.d.ts.map +1 -1
- package/dist/cjs/fetchers/airtable.js +2 -2
- package/dist/cjs/fetchers/airtable.js.map +1 -1
- package/dist/cjs/fetchers/clickhouse.d.ts.map +1 -1
- package/dist/cjs/fetchers/clickhouse.js +1 -1
- package/dist/cjs/fetchers/clickhouse.js.map +1 -1
- package/dist/cjs/fetchers/csv-file.d.ts.map +1 -1
- package/dist/cjs/fetchers/csv-file.js +23 -3
- package/dist/cjs/fetchers/csv-file.js.map +1 -1
- package/dist/cjs/fetchers/firestore.d.ts.map +1 -1
- package/dist/cjs/fetchers/firestore.js +1 -1
- package/dist/cjs/fetchers/firestore.js.map +1 -1
- package/dist/cjs/fetchers/google-sheets.d.ts.map +1 -1
- package/dist/cjs/fetchers/google-sheets.js +6 -1
- package/dist/cjs/fetchers/google-sheets.js.map +1 -1
- package/dist/cjs/fetchers/javascript.d.ts.map +1 -1
- package/dist/cjs/fetchers/javascript.js +2 -1
- package/dist/cjs/fetchers/javascript.js.map +1 -1
- package/dist/cjs/fetchers/mariadb.d.ts.map +1 -1
- package/dist/cjs/fetchers/mariadb.js +3 -3
- package/dist/cjs/fetchers/mariadb.js.map +1 -1
- package/dist/cjs/fetchers/mongodb.d.ts +1 -1
- package/dist/cjs/fetchers/mongodb.d.ts.map +1 -1
- package/dist/cjs/fetchers/mongodb.js +11 -3
- package/dist/cjs/fetchers/mongodb.js.map +1 -1
- package/dist/cjs/fetchers/mysql.d.ts.map +1 -1
- package/dist/cjs/fetchers/mysql.js +2 -2
- package/dist/cjs/fetchers/mysql.js.map +1 -1
- package/dist/cjs/fetchers/postgresql.d.ts.map +1 -1
- package/dist/cjs/fetchers/postgresql.js +3 -3
- package/dist/cjs/fetchers/postgresql.js.map +1 -1
- package/dist/cjs/fetchers/redis.d.ts.map +1 -1
- package/dist/cjs/fetchers/redis.js +1 -1
- package/dist/cjs/fetchers/redis.js.map +1 -1
- package/dist/cjs/fetchers/redshift.d.ts.map +1 -1
- package/dist/cjs/fetchers/redshift.js +2 -2
- package/dist/cjs/fetchers/redshift.js.map +1 -1
- package/dist/cjs/fetchers/rest-api.d.ts.map +1 -1
- package/dist/cjs/fetchers/rest-api.js +3 -2
- package/dist/cjs/fetchers/rest-api.js.map +1 -1
- package/dist/cjs/fetchers/static-collection.d.ts.map +1 -1
- package/dist/cjs/fetchers/static-collection.js +2 -1
- package/dist/cjs/fetchers/static-collection.js.map +1 -1
- package/dist/cjs/fetchers/supabase.d.ts.map +1 -1
- package/dist/cjs/fetchers/supabase.js +2 -2
- package/dist/cjs/fetchers/supabase.js.map +1 -1
- package/dist/cjs/fetchers/turso.d.ts.map +1 -1
- package/dist/cjs/fetchers/turso.js +1 -1
- package/dist/cjs/fetchers/turso.js.map +1 -1
- package/dist/cjs/fetchers/utils/header-detection.d.ts +2 -0
- package/dist/cjs/fetchers/utils/header-detection.d.ts.map +1 -0
- package/dist/cjs/fetchers/utils/header-detection.js +8 -0
- package/dist/cjs/fetchers/utils/header-detection.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +168 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/pagination-plugin.d.ts.map +1 -1
- package/dist/cjs/pagination-plugin.js +320 -65
- package/dist/cjs/pagination-plugin.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/utils.d.ts +3 -0
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +218 -46
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/data-source-fetchers.d.ts +2 -2
- package/dist/esm/data-source-fetchers.d.ts.map +1 -1
- package/dist/esm/data-source-fetchers.js +29 -6
- package/dist/esm/data-source-fetchers.js.map +1 -1
- package/dist/esm/fetchers/airtable.d.ts.map +1 -1
- package/dist/esm/fetchers/airtable.js +3 -3
- package/dist/esm/fetchers/airtable.js.map +1 -1
- package/dist/esm/fetchers/clickhouse.d.ts.map +1 -1
- package/dist/esm/fetchers/clickhouse.js +2 -2
- package/dist/esm/fetchers/clickhouse.js.map +1 -1
- package/dist/esm/fetchers/csv-file.d.ts.map +1 -1
- package/dist/esm/fetchers/csv-file.js +23 -3
- package/dist/esm/fetchers/csv-file.js.map +1 -1
- package/dist/esm/fetchers/firestore.d.ts.map +1 -1
- package/dist/esm/fetchers/firestore.js +2 -2
- package/dist/esm/fetchers/firestore.js.map +1 -1
- package/dist/esm/fetchers/google-sheets.d.ts.map +1 -1
- package/dist/esm/fetchers/google-sheets.js +6 -1
- package/dist/esm/fetchers/google-sheets.js.map +1 -1
- package/dist/esm/fetchers/javascript.d.ts.map +1 -1
- package/dist/esm/fetchers/javascript.js +2 -1
- package/dist/esm/fetchers/javascript.js.map +1 -1
- package/dist/esm/fetchers/mariadb.d.ts.map +1 -1
- package/dist/esm/fetchers/mariadb.js +4 -4
- package/dist/esm/fetchers/mariadb.js.map +1 -1
- package/dist/esm/fetchers/mongodb.d.ts +1 -1
- package/dist/esm/fetchers/mongodb.d.ts.map +1 -1
- package/dist/esm/fetchers/mongodb.js +12 -4
- package/dist/esm/fetchers/mongodb.js.map +1 -1
- package/dist/esm/fetchers/mysql.d.ts.map +1 -1
- package/dist/esm/fetchers/mysql.js +3 -3
- package/dist/esm/fetchers/mysql.js.map +1 -1
- package/dist/esm/fetchers/postgresql.d.ts.map +1 -1
- package/dist/esm/fetchers/postgresql.js +4 -4
- package/dist/esm/fetchers/postgresql.js.map +1 -1
- package/dist/esm/fetchers/redis.d.ts.map +1 -1
- package/dist/esm/fetchers/redis.js +2 -2
- package/dist/esm/fetchers/redis.js.map +1 -1
- package/dist/esm/fetchers/redshift.d.ts.map +1 -1
- package/dist/esm/fetchers/redshift.js +3 -3
- package/dist/esm/fetchers/redshift.js.map +1 -1
- package/dist/esm/fetchers/rest-api.d.ts.map +1 -1
- package/dist/esm/fetchers/rest-api.js +3 -2
- package/dist/esm/fetchers/rest-api.js.map +1 -1
- package/dist/esm/fetchers/static-collection.d.ts.map +1 -1
- package/dist/esm/fetchers/static-collection.js +2 -1
- package/dist/esm/fetchers/static-collection.js.map +1 -1
- package/dist/esm/fetchers/supabase.d.ts.map +1 -1
- package/dist/esm/fetchers/supabase.js +3 -3
- package/dist/esm/fetchers/supabase.js.map +1 -1
- package/dist/esm/fetchers/turso.d.ts.map +1 -1
- package/dist/esm/fetchers/turso.js +2 -2
- package/dist/esm/fetchers/turso.js.map +1 -1
- package/dist/esm/fetchers/utils/header-detection.d.ts +2 -0
- package/dist/esm/fetchers/utils/header-detection.d.ts.map +1 -0
- package/dist/esm/fetchers/utils/header-detection.js +4 -0
- package/dist/esm/fetchers/utils/header-detection.js.map +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +169 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pagination-plugin.d.ts.map +1 -1
- package/dist/esm/pagination-plugin.js +320 -65
- package/dist/esm/pagination-plugin.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/utils.d.ts +3 -0
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +214 -45
- package/dist/esm/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/data-source-fetchers.ts +29 -13
- package/src/fetchers/airtable.ts +81 -31
- package/src/fetchers/clickhouse.ts +88 -19
- package/src/fetchers/csv-file.ts +256 -27
- package/src/fetchers/firestore.ts +65 -13
- package/src/fetchers/google-sheets.ts +243 -26
- package/src/fetchers/javascript.ts +106 -23
- package/src/fetchers/mariadb.ts +85 -26
- package/src/fetchers/mongodb.ts +156 -37
- package/src/fetchers/mysql.ts +86 -26
- package/src/fetchers/postgresql.ts +89 -27
- package/src/fetchers/redis.ts +43 -5
- package/src/fetchers/redshift.ts +87 -18
- package/src/fetchers/rest-api.ts +105 -24
- package/src/fetchers/static-collection.ts +100 -18
- package/src/fetchers/supabase.ts +178 -54
- package/src/fetchers/turso.ts +87 -18
- package/src/fetchers/utils/header-detection.ts +200 -0
- package/src/index.ts +248 -2
- package/src/pagination-plugin.ts +708 -191
- package/src/utils.ts +374 -38
|
@@ -38,6 +38,7 @@ import { ChunkType, FileType, } from '@teleporthq/teleport-types';
|
|
|
38
38
|
import * as types from '@babel/types';
|
|
39
39
|
import { StringUtils } from '@teleporthq/teleport-shared';
|
|
40
40
|
import { generateSafeFileName } from './utils';
|
|
41
|
+
import { generateDataSourceFetcherWithCore } from './data-source-fetchers';
|
|
41
42
|
// Scan UIDL to find all data source usages and build a registry
|
|
42
43
|
function buildStateRegistry(uidlNode) {
|
|
43
44
|
var usages = [];
|
|
@@ -45,7 +46,7 @@ function buildStateRegistry(uidlNode) {
|
|
|
45
46
|
var byArrayMapperRenderProp = new Map();
|
|
46
47
|
var index = 0;
|
|
47
48
|
var traverse = function (node, parentDataSource) {
|
|
48
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
49
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
49
50
|
if (!node || typeof node !== 'object') {
|
|
50
51
|
return;
|
|
51
52
|
}
|
|
@@ -84,9 +85,19 @@ function buildStateRegistry(uidlNode) {
|
|
|
84
85
|
if ((_h = (_g = parentDataSource.resourceParams) === null || _g === void 0 ? void 0 : _g.queryColumns) === null || _h === void 0 ? void 0 : _h.content) {
|
|
85
86
|
queryColumns = parentDataSource.resourceParams.queryColumns.content;
|
|
86
87
|
}
|
|
88
|
+
// Extract sorts from parent's resource params
|
|
89
|
+
var sorts = [];
|
|
90
|
+
if ((_k = (_j = parentDataSource.resourceParams) === null || _j === void 0 ? void 0 : _j.sorts) === null || _k === void 0 ? void 0 : _k.content) {
|
|
91
|
+
sorts = parentDataSource.resourceParams.sorts.content;
|
|
92
|
+
}
|
|
93
|
+
// Extract filters from parent's resource params
|
|
94
|
+
var filters = [];
|
|
95
|
+
if ((_m = (_l = parentDataSource.resourceParams) === null || _l === void 0 ? void 0 : _l.filters) === null || _m === void 0 ? void 0 : _m.content) {
|
|
96
|
+
filters = parentDataSource.resourceParams.filters.content;
|
|
97
|
+
}
|
|
87
98
|
// Extract limit from parent's resource params (for plain array mappers)
|
|
88
99
|
var limit = 0;
|
|
89
|
-
if ((
|
|
100
|
+
if ((_p = (_o = parentDataSource.resourceParams) === null || _o === void 0 ? void 0 : _o.limit) === null || _p === void 0 ? void 0 : _p.content) {
|
|
90
101
|
limit = parentDataSource.resourceParams.limit.content;
|
|
91
102
|
}
|
|
92
103
|
// For paginated mappers, use perPage from cms-list-repeater
|
|
@@ -106,6 +117,8 @@ function buildStateRegistry(uidlNode) {
|
|
|
106
117
|
searchEnabled: !!content.searchEnabled,
|
|
107
118
|
searchDebounce: content.searchDebounce || 300,
|
|
108
119
|
queryColumns: queryColumns,
|
|
120
|
+
sorts: sorts,
|
|
121
|
+
filters: filters,
|
|
109
122
|
category: 'plain',
|
|
110
123
|
};
|
|
111
124
|
// Determine category
|
|
@@ -127,22 +140,22 @@ function buildStateRegistry(uidlNode) {
|
|
|
127
140
|
byArrayMapperRenderProp.set(arrayMapperRenderProp, usage);
|
|
128
141
|
}
|
|
129
142
|
// Continue traversing inside the repeater
|
|
130
|
-
if ((
|
|
143
|
+
if ((_q = content.nodes) === null || _q === void 0 ? void 0 : _q.list) {
|
|
131
144
|
traverse(content.nodes.list, parentDataSource);
|
|
132
145
|
}
|
|
133
146
|
return;
|
|
134
147
|
}
|
|
135
148
|
// Recurse into children
|
|
136
|
-
if (((
|
|
137
|
-
for (var _i = 0,
|
|
138
|
-
var child =
|
|
149
|
+
if (((_r = node.content) === null || _r === void 0 ? void 0 : _r.children) && Array.isArray(node.content.children)) {
|
|
150
|
+
for (var _i = 0, _u = node.content.children; _i < _u.length; _i++) {
|
|
151
|
+
var child = _u[_i];
|
|
139
152
|
traverse(child, parentDataSource);
|
|
140
153
|
}
|
|
141
154
|
}
|
|
142
|
-
if ((
|
|
155
|
+
if ((_s = node.content) === null || _s === void 0 ? void 0 : _s.node) {
|
|
143
156
|
traverse(node.content.node, parentDataSource);
|
|
144
157
|
}
|
|
145
|
-
if ((
|
|
158
|
+
if ((_t = node.content) === null || _t === void 0 ? void 0 : _t.nodes) {
|
|
146
159
|
if (node.content.nodes.success) {
|
|
147
160
|
traverse(node.content.nodes.success, parentDataSource);
|
|
148
161
|
}
|
|
@@ -160,8 +173,8 @@ function buildStateRegistry(uidlNode) {
|
|
|
160
173
|
}
|
|
161
174
|
}
|
|
162
175
|
if (Array.isArray(node.children)) {
|
|
163
|
-
for (var
|
|
164
|
-
var child =
|
|
176
|
+
for (var _v = 0, _w = node.children; _v < _w.length; _v++) {
|
|
177
|
+
var child = _w[_v];
|
|
165
178
|
traverse(child, parentDataSource);
|
|
166
179
|
}
|
|
167
180
|
}
|
|
@@ -347,6 +360,29 @@ export var createNextArrayMapperPaginationPlugin = function () {
|
|
|
347
360
|
if (usage.queryColumns.length > 0) {
|
|
348
361
|
urlParams.push(types.objectProperty(types.identifier('queryColumns'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [types.arrayExpression(usage.queryColumns.map(function (c) { return types.stringLiteral(c); }))])));
|
|
349
362
|
}
|
|
363
|
+
// Add sorts to count fetch params if present
|
|
364
|
+
if (usage.sorts && usage.sorts.length > 0) {
|
|
365
|
+
urlParams.push(types.objectProperty(types.identifier('sorts'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
366
|
+
types.arrayExpression(usage.sorts.map(function (sort) {
|
|
367
|
+
return types.objectExpression([
|
|
368
|
+
types.objectProperty(types.identifier('field'), types.stringLiteral(sort.field || '')),
|
|
369
|
+
types.objectProperty(types.identifier('order'), types.stringLiteral(sort.order || '')),
|
|
370
|
+
]);
|
|
371
|
+
})),
|
|
372
|
+
])));
|
|
373
|
+
}
|
|
374
|
+
// Add filters to count fetch params if present
|
|
375
|
+
if (usage.filters && usage.filters.length > 0) {
|
|
376
|
+
urlParams.push(types.objectProperty(types.identifier('filters'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
377
|
+
types.arrayExpression(usage.filters.map(function (filter) {
|
|
378
|
+
return types.objectExpression([
|
|
379
|
+
types.objectProperty(types.identifier('source'), types.stringLiteral(filter.source || '')),
|
|
380
|
+
types.objectProperty(types.identifier('destination'), types.stringLiteral(filter.destination || '')),
|
|
381
|
+
types.objectProperty(types.identifier('operand'), types.stringLiteral(filter.operand || '')),
|
|
382
|
+
]);
|
|
383
|
+
})),
|
|
384
|
+
])));
|
|
385
|
+
}
|
|
350
386
|
// Build the count fetch effect body
|
|
351
387
|
var countFetchEffectBody = [];
|
|
352
388
|
// Only add skip-on-mount check for pages (where we have server-side count)
|
|
@@ -510,13 +546,11 @@ export var createNextArrayMapperPaginationPlugin = function () {
|
|
|
510
546
|
else if (usage.category === 'search-only') {
|
|
511
547
|
updateDataProviderForSearchOnly(dp, usage, vars, fileName);
|
|
512
548
|
}
|
|
513
|
-
else {
|
|
514
|
-
updateDataProviderForPlain(dp,
|
|
515
|
-
}
|
|
516
|
-
// Create API route if needed
|
|
517
|
-
if (usage.category !== 'plain') {
|
|
518
|
-
ensureAPIRouteExists(options.extractedResources, usage);
|
|
549
|
+
else if (usage.category === 'plain') {
|
|
550
|
+
updateDataProviderForPlain(dp, fileName);
|
|
519
551
|
}
|
|
552
|
+
// Create API route for all categories (including 'plain' for components)
|
|
553
|
+
ensureAPIRouteExists(options.extractedResources, usage, options.dataSources);
|
|
520
554
|
});
|
|
521
555
|
dataProvidersWithoutRepeaters = dataProviders.filter(function (dp) {
|
|
522
556
|
var hasRepeater = findArrayMapperRenderPropInDataProvider(dp) !== undefined;
|
|
@@ -549,7 +583,7 @@ export var createNextArrayMapperPaginationPlugin = function () {
|
|
|
549
583
|
});
|
|
550
584
|
// STEP 6: Update getStaticProps if this is a page
|
|
551
585
|
if (isPage) {
|
|
552
|
-
updateGetStaticProps(chunks, registry);
|
|
586
|
+
updateGetStaticProps(chunks, registry, dependencies);
|
|
553
587
|
}
|
|
554
588
|
return [2 /*return*/, structure];
|
|
555
589
|
});
|
|
@@ -733,6 +767,29 @@ function updateDataProviderForPaginatedSearch(dp, usage, vars, fileName) {
|
|
|
733
767
|
if (usage.queryColumns.length > 0) {
|
|
734
768
|
paramsProps.push(types.objectProperty(types.identifier('queryColumns'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [types.arrayExpression(usage.queryColumns.map(function (c) { return types.stringLiteral(c); }))])));
|
|
735
769
|
}
|
|
770
|
+
// Add sorts if present
|
|
771
|
+
if (usage.sorts && usage.sorts.length > 0) {
|
|
772
|
+
paramsProps.push(types.objectProperty(types.identifier('sorts'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
773
|
+
types.arrayExpression(usage.sorts.map(function (sort) {
|
|
774
|
+
return types.objectExpression([
|
|
775
|
+
types.objectProperty(types.identifier('field'), types.stringLiteral(sort.field || '')),
|
|
776
|
+
types.objectProperty(types.identifier('order'), types.stringLiteral(sort.order || '')),
|
|
777
|
+
]);
|
|
778
|
+
})),
|
|
779
|
+
])));
|
|
780
|
+
}
|
|
781
|
+
// Add filters if present
|
|
782
|
+
if (usage.filters && usage.filters.length > 0) {
|
|
783
|
+
paramsProps.push(types.objectProperty(types.identifier('filters'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
784
|
+
types.arrayExpression(usage.filters.map(function (filter) {
|
|
785
|
+
return types.objectExpression([
|
|
786
|
+
types.objectProperty(types.identifier('source'), types.stringLiteral(filter.source || '')),
|
|
787
|
+
types.objectProperty(types.identifier('destination'), types.stringLiteral(filter.destination || '')),
|
|
788
|
+
types.objectProperty(types.identifier('operand'), types.stringLiteral(filter.operand || '')),
|
|
789
|
+
]);
|
|
790
|
+
})),
|
|
791
|
+
])));
|
|
792
|
+
}
|
|
736
793
|
dp.openingElement.attributes.push(types.jsxAttribute(types.jsxIdentifier('params'), types.jsxExpressionContainer(types.callExpression(types.identifier('useMemo'), [
|
|
737
794
|
types.arrowFunctionExpression([], types.objectExpression(paramsProps)),
|
|
738
795
|
types.arrayExpression([types.identifier(vars.combinedStateVar)]),
|
|
@@ -763,12 +820,37 @@ function updateDataProviderForPaginationOnly(dp, usage, vars, fileName) {
|
|
|
763
820
|
var _a;
|
|
764
821
|
return !['params', 'key', 'initialData', 'fetchData', 'persistDataDuringLoading'].includes((_a = attr.name) === null || _a === void 0 ? void 0 : _a.name);
|
|
765
822
|
});
|
|
823
|
+
// Build params properties
|
|
824
|
+
var paramsProps = [
|
|
825
|
+
types.objectProperty(types.identifier('page'), types.identifier(vars.pageStateVar)),
|
|
826
|
+
types.objectProperty(types.identifier('perPage'), types.numericLiteral(usage.perPage)),
|
|
827
|
+
];
|
|
828
|
+
// Add sorts if present
|
|
829
|
+
if (usage.sorts && usage.sorts.length > 0) {
|
|
830
|
+
paramsProps.push(types.objectProperty(types.identifier('sorts'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
831
|
+
types.arrayExpression(usage.sorts.map(function (sort) {
|
|
832
|
+
return types.objectExpression([
|
|
833
|
+
types.objectProperty(types.identifier('field'), types.stringLiteral(sort.field || '')),
|
|
834
|
+
types.objectProperty(types.identifier('order'), types.stringLiteral(sort.order || '')),
|
|
835
|
+
]);
|
|
836
|
+
})),
|
|
837
|
+
])));
|
|
838
|
+
}
|
|
839
|
+
// Add filters if present
|
|
840
|
+
if (usage.filters && usage.filters.length > 0) {
|
|
841
|
+
paramsProps.push(types.objectProperty(types.identifier('filters'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
842
|
+
types.arrayExpression(usage.filters.map(function (filter) {
|
|
843
|
+
return types.objectExpression([
|
|
844
|
+
types.objectProperty(types.identifier('source'), types.stringLiteral(filter.source || '')),
|
|
845
|
+
types.objectProperty(types.identifier('destination'), types.stringLiteral(filter.destination || '')),
|
|
846
|
+
types.objectProperty(types.identifier('operand'), types.stringLiteral(filter.operand || '')),
|
|
847
|
+
]);
|
|
848
|
+
})),
|
|
849
|
+
])));
|
|
850
|
+
}
|
|
766
851
|
// Add params
|
|
767
852
|
dp.openingElement.attributes.push(types.jsxAttribute(types.jsxIdentifier('params'), types.jsxExpressionContainer(types.callExpression(types.identifier('useMemo'), [
|
|
768
|
-
types.arrowFunctionExpression([], types.objectExpression(
|
|
769
|
-
types.objectProperty(types.identifier('page'), types.identifier(vars.pageStateVar)),
|
|
770
|
-
types.objectProperty(types.identifier('perPage'), types.numericLiteral(usage.perPage)),
|
|
771
|
-
])),
|
|
853
|
+
types.arrowFunctionExpression([], types.objectExpression(paramsProps)),
|
|
772
854
|
types.arrayExpression([types.identifier(vars.pageStateVar)]),
|
|
773
855
|
]))));
|
|
774
856
|
// Add initialData
|
|
@@ -798,6 +880,29 @@ function updateDataProviderForSearchOnly(dp, usage, vars, fileName) {
|
|
|
798
880
|
if (usage.queryColumns.length > 0) {
|
|
799
881
|
paramsProps.push(types.objectProperty(types.identifier('queryColumns'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [types.arrayExpression(usage.queryColumns.map(function (c) { return types.stringLiteral(c); }))])));
|
|
800
882
|
}
|
|
883
|
+
// Add sorts if present
|
|
884
|
+
if (usage.sorts && usage.sorts.length > 0) {
|
|
885
|
+
paramsProps.push(types.objectProperty(types.identifier('sorts'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
886
|
+
types.arrayExpression(usage.sorts.map(function (sort) {
|
|
887
|
+
return types.objectExpression([
|
|
888
|
+
types.objectProperty(types.identifier('field'), types.stringLiteral(sort.field || '')),
|
|
889
|
+
types.objectProperty(types.identifier('order'), types.stringLiteral(sort.order || '')),
|
|
890
|
+
]);
|
|
891
|
+
})),
|
|
892
|
+
])));
|
|
893
|
+
}
|
|
894
|
+
// Add filters if present
|
|
895
|
+
if (usage.filters && usage.filters.length > 0) {
|
|
896
|
+
paramsProps.push(types.objectProperty(types.identifier('filters'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
897
|
+
types.arrayExpression(usage.filters.map(function (filter) {
|
|
898
|
+
return types.objectExpression([
|
|
899
|
+
types.objectProperty(types.identifier('source'), types.stringLiteral(filter.source || '')),
|
|
900
|
+
types.objectProperty(types.identifier('destination'), types.stringLiteral(filter.destination || '')),
|
|
901
|
+
types.objectProperty(types.identifier('operand'), types.stringLiteral(filter.operand || '')),
|
|
902
|
+
]);
|
|
903
|
+
})),
|
|
904
|
+
])));
|
|
905
|
+
}
|
|
801
906
|
dp.openingElement.attributes.push(types.jsxAttribute(types.jsxIdentifier('params'), types.jsxExpressionContainer(types.callExpression(types.identifier('useMemo'), [
|
|
802
907
|
types.arrowFunctionExpression([], types.objectExpression(paramsProps)),
|
|
803
908
|
types.arrayExpression([types.identifier(vars.debouncedSearchQueryVar)]),
|
|
@@ -813,15 +918,48 @@ function updateDataProviderForSearchOnly(dp, usage, vars, fileName) {
|
|
|
813
918
|
dp.openingElement.attributes.push(createFetchDataAttribute(fileName));
|
|
814
919
|
dp.openingElement.attributes.push(types.jsxAttribute(types.jsxIdentifier('persistDataDuringLoading'), types.jsxExpressionContainer(types.booleanLiteral(true))));
|
|
815
920
|
}
|
|
816
|
-
function updateDataProviderForPlain(dp,
|
|
921
|
+
function updateDataProviderForPlain(dp, fileName) {
|
|
922
|
+
var _a, _b, _c;
|
|
817
923
|
var attrs = dp.openingElement.attributes;
|
|
818
|
-
//
|
|
819
|
-
|
|
820
|
-
//
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
924
|
+
// Check if fetchData already exists
|
|
925
|
+
var hasFetchData = attrs.some(function (attr) { var _a; return attr.type === 'JSXAttribute' && ((_a = attr.name) === null || _a === void 0 ? void 0 : _a.name) === 'fetchData'; });
|
|
926
|
+
// If no fetchData, add it
|
|
927
|
+
if (!hasFetchData) {
|
|
928
|
+
attrs.push(createFetchDataAttribute(fileName));
|
|
929
|
+
}
|
|
930
|
+
// Check if persistDataDuringLoading already exists
|
|
931
|
+
var hasPersistData = attrs.some(function (attr) { var _a; return attr.type === 'JSXAttribute' && ((_a = attr.name) === null || _a === void 0 ? void 0 : _a.name) === 'persistDataDuringLoading'; });
|
|
932
|
+
// If no persistDataDuringLoading, add it
|
|
933
|
+
if (!hasPersistData) {
|
|
934
|
+
attrs.push(types.jsxAttribute(types.jsxIdentifier('persistDataDuringLoading'), types.jsxExpressionContainer(types.booleanLiteral(true))));
|
|
935
|
+
}
|
|
936
|
+
// Find the params attribute
|
|
937
|
+
var paramsAttrIndex = attrs.findIndex(function (attr) { return attr.type === 'JSXAttribute' && attr.name.name === 'params'; });
|
|
938
|
+
if (paramsAttrIndex === -1) {
|
|
939
|
+
return;
|
|
940
|
+
}
|
|
941
|
+
var paramsAttr = attrs[paramsAttrIndex];
|
|
942
|
+
// Check if params is already wrapped in useMemo
|
|
943
|
+
if (((_a = paramsAttr.value) === null || _a === void 0 ? void 0 : _a.type) === 'JSXExpressionContainer' &&
|
|
944
|
+
paramsAttr.value.expression.type === 'CallExpression' &&
|
|
945
|
+
((_b = paramsAttr.value.expression.callee) === null || _b === void 0 ? void 0 : _b.name) === 'useMemo') {
|
|
946
|
+
return;
|
|
824
947
|
}
|
|
948
|
+
// Get the current params value expression
|
|
949
|
+
var paramsExpression = null;
|
|
950
|
+
if (((_c = paramsAttr.value) === null || _c === void 0 ? void 0 : _c.type) === 'JSXExpressionContainer') {
|
|
951
|
+
paramsExpression = paramsAttr.value.expression;
|
|
952
|
+
}
|
|
953
|
+
if (!paramsExpression) {
|
|
954
|
+
return;
|
|
955
|
+
}
|
|
956
|
+
// Wrap params in useMemo with empty dependencies array
|
|
957
|
+
var memoizedParams = types.callExpression(types.identifier('useMemo'), [
|
|
958
|
+
types.arrowFunctionExpression([], paramsExpression),
|
|
959
|
+
types.arrayExpression([]),
|
|
960
|
+
]);
|
|
961
|
+
// Replace the params attribute
|
|
962
|
+
attrs[paramsAttrIndex] = types.jsxAttribute(types.jsxIdentifier('params'), types.jsxExpressionContainer(memoizedParams));
|
|
825
963
|
}
|
|
826
964
|
function stabilizeDataProviderWithoutRepeater(dp) {
|
|
827
965
|
var _a, _b, _c;
|
|
@@ -987,35 +1125,54 @@ function wirePaginationButtons(paginationNode, usage, vars) {
|
|
|
987
1125
|
}
|
|
988
1126
|
}
|
|
989
1127
|
}
|
|
990
|
-
function ensureAPIRouteExists(extractedResources, usage) {
|
|
1128
|
+
function ensureAPIRouteExists(extractedResources, usage, dataSources) {
|
|
991
1129
|
// Generate file name for the API route
|
|
992
1130
|
var fileName = generateSafeFileName(usage.resourceDefinition.dataSourceType, usage.resourceDefinition.tableName, usage.resourceDefinition.dataSourceId);
|
|
993
|
-
// Check if the utils data source file exists - if
|
|
994
|
-
if (extractedResources["utils/".concat(fileName)]) {
|
|
995
|
-
//
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
path: ['pages', 'api'],
|
|
1013
|
-
content: countApiRouteCode,
|
|
1014
|
-
};
|
|
1131
|
+
// Check if the utils data source file exists - if not, create it
|
|
1132
|
+
if (!extractedResources["utils/".concat(fileName)]) {
|
|
1133
|
+
// Get the data source from dataSources
|
|
1134
|
+
var dataSource = dataSources[usage.resourceDefinition.dataSourceId];
|
|
1135
|
+
if (dataSource) {
|
|
1136
|
+
try {
|
|
1137
|
+
// Generate the utils file with fetchData, fetchCount, handler, and getCount
|
|
1138
|
+
var fetcherCode = generateDataSourceFetcherWithCore(dataSource, usage.resourceDefinition.tableName || 'data');
|
|
1139
|
+
extractedResources["utils/".concat(fileName)] = {
|
|
1140
|
+
fileName: fileName,
|
|
1141
|
+
fileType: FileType.JS,
|
|
1142
|
+
path: ['utils', 'data-sources'],
|
|
1143
|
+
content: fetcherCode,
|
|
1144
|
+
};
|
|
1145
|
+
}
|
|
1146
|
+
catch (error) {
|
|
1147
|
+
// If generation fails, skip
|
|
1148
|
+
return;
|
|
1149
|
+
}
|
|
1015
1150
|
}
|
|
1016
1151
|
}
|
|
1152
|
+
// Now create API routes that re-export from the utils file
|
|
1153
|
+
// Create main data API route if not exists
|
|
1154
|
+
if (!extractedResources["api/".concat(fileName)]) {
|
|
1155
|
+
var apiRouteCode = "import dataSourceModule from '../../utils/data-sources/".concat(fileName, "'\n\nexport default dataSourceModule.handler\n");
|
|
1156
|
+
extractedResources["api/".concat(fileName)] = {
|
|
1157
|
+
fileName: fileName,
|
|
1158
|
+
fileType: FileType.JS,
|
|
1159
|
+
path: ['pages', 'api'],
|
|
1160
|
+
content: apiRouteCode,
|
|
1161
|
+
};
|
|
1162
|
+
}
|
|
1163
|
+
// Create count API route if not exists (needed for paginated+search cases)
|
|
1164
|
+
var countFileName = "".concat(fileName, "-count");
|
|
1165
|
+
if (!extractedResources["api/".concat(countFileName)]) {
|
|
1166
|
+
var countApiRouteCode = "import dataSourceModule from '../../utils/data-sources/".concat(fileName, "'\n\nexport default dataSourceModule.getCount\n");
|
|
1167
|
+
extractedResources["api/".concat(countFileName)] = {
|
|
1168
|
+
fileName: countFileName,
|
|
1169
|
+
fileType: FileType.JS,
|
|
1170
|
+
path: ['pages', 'api'],
|
|
1171
|
+
content: countApiRouteCode,
|
|
1172
|
+
};
|
|
1173
|
+
}
|
|
1017
1174
|
}
|
|
1018
|
-
function updateGetStaticProps(chunks, registry) {
|
|
1175
|
+
function updateGetStaticProps(chunks, registry, dependencies) {
|
|
1019
1176
|
var _a;
|
|
1020
1177
|
var getStaticPropsChunk = chunks.find(function (c) { return c.name === 'getStaticProps'; });
|
|
1021
1178
|
if (!getStaticPropsChunk || getStaticPropsChunk.type !== ChunkType.AST) {
|
|
@@ -1061,7 +1218,11 @@ function updateGetStaticProps(chunks, registry) {
|
|
|
1061
1218
|
var arrayPattern = declarator.id;
|
|
1062
1219
|
// Track unique data sources for count fetching
|
|
1063
1220
|
var dataSourcesNeedingCount = new Set();
|
|
1064
|
-
|
|
1221
|
+
// Only process usages that need pagination or search functionality
|
|
1222
|
+
// Non-paginated, non-search usages are handled by the main plugin
|
|
1223
|
+
registry.usages
|
|
1224
|
+
.filter(function (u) { return u.paginated || u.searchEnabled; })
|
|
1225
|
+
.forEach(function (usage) {
|
|
1065
1226
|
var vars = getStateVarsForUsage(usage);
|
|
1066
1227
|
var fileName = generateSafeFileName(usage.resourceDefinition.dataSourceType, usage.resourceDefinition.tableName, usage.resourceDefinition.dataSourceId);
|
|
1067
1228
|
// Use consistent import name generation (matches extractDataSourceIntoGetStaticProps)
|
|
@@ -1081,6 +1242,29 @@ function updateGetStaticProps(chunks, registry) {
|
|
|
1081
1242
|
if (usage.queryColumns.length > 0) {
|
|
1082
1243
|
fetchParams.push(types.objectProperty(types.identifier('queryColumns'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [types.arrayExpression(usage.queryColumns.map(function (c) { return types.stringLiteral(c); }))])));
|
|
1083
1244
|
}
|
|
1245
|
+
// Add sorts if present
|
|
1246
|
+
if (usage.sorts && usage.sorts.length > 0) {
|
|
1247
|
+
fetchParams.push(types.objectProperty(types.identifier('sorts'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
1248
|
+
types.arrayExpression(usage.sorts.map(function (sort) {
|
|
1249
|
+
return types.objectExpression([
|
|
1250
|
+
types.objectProperty(types.identifier('field'), types.stringLiteral(sort.field || '')),
|
|
1251
|
+
types.objectProperty(types.identifier('order'), types.stringLiteral(sort.order || '')),
|
|
1252
|
+
]);
|
|
1253
|
+
})),
|
|
1254
|
+
])));
|
|
1255
|
+
}
|
|
1256
|
+
// Add filters if present
|
|
1257
|
+
if (usage.filters && usage.filters.length > 0) {
|
|
1258
|
+
fetchParams.push(types.objectProperty(types.identifier('filters'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
1259
|
+
types.arrayExpression(usage.filters.map(function (filter) {
|
|
1260
|
+
return types.objectExpression([
|
|
1261
|
+
types.objectProperty(types.identifier('source'), types.stringLiteral(filter.source || '')),
|
|
1262
|
+
types.objectProperty(types.identifier('destination'), types.stringLiteral(filter.destination || '')),
|
|
1263
|
+
types.objectProperty(types.identifier('operand'), types.stringLiteral(filter.operand || '')),
|
|
1264
|
+
]);
|
|
1265
|
+
})),
|
|
1266
|
+
])));
|
|
1267
|
+
}
|
|
1084
1268
|
// Check if this fetch already exists
|
|
1085
1269
|
var existingFetchIndex = arrayPattern.elements.findIndex(function (el) { return (el === null || el === void 0 ? void 0 : el.type) === 'Identifier' && el.name === vars.propsPrefix; });
|
|
1086
1270
|
if (existingFetchIndex === -1) {
|
|
@@ -1094,6 +1278,13 @@ function updateGetStaticProps(chunks, registry) {
|
|
|
1094
1278
|
types.returnStatement(types.arrayExpression([])),
|
|
1095
1279
|
])),
|
|
1096
1280
|
]));
|
|
1281
|
+
// Add import dependency for the fetcher
|
|
1282
|
+
if (!dependencies[fetcherImportName]) {
|
|
1283
|
+
dependencies[fetcherImportName] = {
|
|
1284
|
+
type: 'local',
|
|
1285
|
+
path: "../utils/data-sources/".concat(fileName),
|
|
1286
|
+
};
|
|
1287
|
+
}
|
|
1097
1288
|
// Add to props
|
|
1098
1289
|
propsObj.properties.push(types.objectProperty(types.identifier(vars.propsPrefix), types.identifier(vars.propsPrefix)));
|
|
1099
1290
|
}
|
|
@@ -1104,7 +1295,11 @@ function updateGetStaticProps(chunks, registry) {
|
|
|
1104
1295
|
// Add maxPages calculation for paginated
|
|
1105
1296
|
if (usage.paginated) {
|
|
1106
1297
|
var maxPagesPropName_1 = "".concat(vars.propsPrefix, "_maxPages");
|
|
1107
|
-
|
|
1298
|
+
// Use filter-specific count variable if usage has filters
|
|
1299
|
+
var hasFilters = usage.filters && usage.filters.length > 0;
|
|
1300
|
+
var countVarName = hasFilters
|
|
1301
|
+
? "".concat(usage.dataSourceIdentifier, "_ds_").concat(usage.index, "_count")
|
|
1302
|
+
: "".concat(usage.dataSourceIdentifier, "_count");
|
|
1108
1303
|
// Check if maxPages calculation already exists
|
|
1109
1304
|
var existingMaxPages = tryBlock.body.find(function (s) { var _a, _b, _c; return s.type === 'VariableDeclaration' && ((_c = (_b = (_a = s.declarations) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.name) === maxPagesPropName_1; });
|
|
1110
1305
|
if (!existingMaxPages) {
|
|
@@ -1121,26 +1316,86 @@ function updateGetStaticProps(chunks, registry) {
|
|
|
1121
1316
|
}
|
|
1122
1317
|
});
|
|
1123
1318
|
// Add count fetches for unique data sources
|
|
1319
|
+
// Group usages by filters to determine which need separate count fetches
|
|
1320
|
+
var processedCountKeys = new Set();
|
|
1124
1321
|
dataSourcesNeedingCount.forEach(function (key) {
|
|
1125
1322
|
var _a = key.split(':'), dataSourceType = _a[0], tableName = _a[1], dataSourceId = _a[2];
|
|
1126
1323
|
var fileName = generateSafeFileName(dataSourceType, tableName, dataSourceId);
|
|
1127
|
-
// Use consistent import name generation (matches extractDataSourceIntoGetStaticProps)
|
|
1128
1324
|
var fetcherImportName = StringUtils.dashCaseToCamelCase(fileName);
|
|
1129
|
-
// Find
|
|
1130
|
-
var
|
|
1325
|
+
// Find all paginated usages for this data source
|
|
1326
|
+
var usagesForDataSource = registry.usages.filter(function (u) {
|
|
1131
1327
|
return u.resourceDefinition.dataSourceId === dataSourceId &&
|
|
1132
|
-
u.resourceDefinition.tableName === tableName
|
|
1328
|
+
u.resourceDefinition.tableName === tableName &&
|
|
1329
|
+
u.paginated;
|
|
1133
1330
|
});
|
|
1134
|
-
if (
|
|
1331
|
+
if (usagesForDataSource.length === 0) {
|
|
1135
1332
|
return;
|
|
1136
1333
|
}
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
var
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1334
|
+
// Group usages by their filters (stringify for comparison)
|
|
1335
|
+
var usagesByFilters = new Map();
|
|
1336
|
+
for (var _i = 0, usagesForDataSource_1 = usagesForDataSource; _i < usagesForDataSource_1.length; _i++) {
|
|
1337
|
+
var usage = usagesForDataSource_1[_i];
|
|
1338
|
+
var filtersKey = JSON.stringify(usage.filters || []);
|
|
1339
|
+
var existing = usagesByFilters.get(filtersKey) || [];
|
|
1340
|
+
existing.push(usage);
|
|
1341
|
+
usagesByFilters.set(filtersKey, existing);
|
|
1143
1342
|
}
|
|
1343
|
+
// Generate count fetches for each unique filter configuration
|
|
1344
|
+
usagesByFilters.forEach(function (usages, filtersKey) {
|
|
1345
|
+
var firstUsage = usages[0];
|
|
1346
|
+
var hasFilters = firstUsage.filters && firstUsage.filters.length > 0;
|
|
1347
|
+
// Create unique count variable name based on filters
|
|
1348
|
+
var countVarName = hasFilters
|
|
1349
|
+
? "".concat(firstUsage.dataSourceIdentifier, "_ds_").concat(firstUsage.index, "_count")
|
|
1350
|
+
: "".concat(firstUsage.dataSourceIdentifier, "_count");
|
|
1351
|
+
// Check if this count was already processed
|
|
1352
|
+
var countKey = "".concat(key, ":").concat(filtersKey);
|
|
1353
|
+
if (processedCountKeys.has(countKey)) {
|
|
1354
|
+
return;
|
|
1355
|
+
}
|
|
1356
|
+
processedCountKeys.add(countKey);
|
|
1357
|
+
// Check if count fetch already exists
|
|
1358
|
+
var existingCount = arrayPattern.elements.findIndex(function (el) { return (el === null || el === void 0 ? void 0 : el.type) === 'Identifier' && el.name === countVarName; });
|
|
1359
|
+
if (existingCount === -1) {
|
|
1360
|
+
arrayPattern.elements.push(types.identifier(countVarName));
|
|
1361
|
+
// Build count params if filters exist
|
|
1362
|
+
var countParams = [];
|
|
1363
|
+
if (hasFilters) {
|
|
1364
|
+
countParams.push(types.objectProperty(types.identifier('filters'), types.callExpression(types.memberExpression(types.identifier('JSON'), types.identifier('stringify')), [
|
|
1365
|
+
types.arrayExpression(firstUsage.filters.map(function (f) {
|
|
1366
|
+
return types.objectExpression([
|
|
1367
|
+
types.objectProperty(types.identifier('source'), types.stringLiteral(f.source)),
|
|
1368
|
+
types.objectProperty(types.identifier('destination'), types.stringLiteral(f.destination)),
|
|
1369
|
+
types.objectProperty(types.identifier('operand'), types.stringLiteral(f.operand)),
|
|
1370
|
+
]);
|
|
1371
|
+
})),
|
|
1372
|
+
])));
|
|
1373
|
+
}
|
|
1374
|
+
fetchesArray.elements.push(types.callExpression(types.memberExpression(types.callExpression(types.memberExpression(types.identifier(fetcherImportName), types.identifier('fetchCount')), countParams.length > 0 ? [types.objectExpression(countParams)] : []), types.identifier('catch')), [
|
|
1375
|
+
types.arrowFunctionExpression([types.identifier('error')], types.blockStatement([
|
|
1376
|
+
types.expressionStatement(types.callExpression(types.memberExpression(types.identifier('console'), types.identifier('error')), [
|
|
1377
|
+
types.stringLiteral("Error fetching ".concat(countVarName, ":")),
|
|
1378
|
+
types.identifier('error'),
|
|
1379
|
+
])),
|
|
1380
|
+
types.returnStatement(types.numericLiteral(0)),
|
|
1381
|
+
])),
|
|
1382
|
+
]));
|
|
1383
|
+
// Store which usages use this count variable for maxPages calculation
|
|
1384
|
+
for (var _i = 0, usages_1 = usages; _i < usages_1.length; _i++) {
|
|
1385
|
+
var usage = usages_1[_i];
|
|
1386
|
+
// tslint:disable-next-line:no-any
|
|
1387
|
+
;
|
|
1388
|
+
usage.countVarName = countVarName;
|
|
1389
|
+
}
|
|
1390
|
+
// Add import dependency for the fetcher
|
|
1391
|
+
if (!dependencies[fetcherImportName]) {
|
|
1392
|
+
dependencies[fetcherImportName] = {
|
|
1393
|
+
type: 'local',
|
|
1394
|
+
path: "../utils/data-sources/".concat(fileName),
|
|
1395
|
+
};
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
});
|
|
1144
1399
|
});
|
|
1145
1400
|
}
|
|
1146
1401
|
//# sourceMappingURL=pagination-plugin.js.map
|