@teleporthq/teleport-plugin-next-static-props 0.27.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 teleporthq
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ import { ComponentPlugin, ComponentPluginFactory } from '@teleporthq/teleport-types';
2
+ interface StaticPropsPluginConfig {
3
+ componentChunkName?: string;
4
+ }
5
+ export declare const createStaticPropsPlugin: ComponentPluginFactory<StaticPropsPluginConfig>;
6
+ declare const _default: ComponentPlugin;
7
+ export default _default;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,sBAAsB,EAEvB,MAAM,4BAA4B,CAAA;AAGnC,UAAU,uBAAuB;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,eAAO,MAAM,uBAAuB,EAAE,sBAAsB,CAAC,uBAAuB,CAuCnF,CAAA;;AAED,wBAAwC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.createStaticPropsPlugin = void 0;
40
+ var teleport_types_1 = require("@teleporthq/teleport-types");
41
+ var utils_1 = require("./utils");
42
+ var createStaticPropsPlugin = function (config) {
43
+ var _a = (config || {}).componentChunkName, componentChunkName = _a === void 0 ? 'jsx-component' : _a;
44
+ var staticPropsPlugin = function (structure) { return __awaiter(void 0, void 0, void 0, function () {
45
+ var uidl, chunks, dependencies, componentChunk, getStaticPropsAST;
46
+ var _a, _b;
47
+ return __generator(this, function (_c) {
48
+ uidl = structure.uidl, chunks = structure.chunks, dependencies = structure.dependencies;
49
+ if (!((_a = uidl.outputOptions) === null || _a === void 0 ? void 0 : _a.initialPropsData)) {
50
+ return [2 /*return*/, structure];
51
+ }
52
+ componentChunk = chunks.find(function (chunk) { return chunk.name === componentChunkName; });
53
+ if (!componentChunk) {
54
+ return [2 /*return*/, structure];
55
+ }
56
+ getStaticPropsAST = (0, utils_1.generateInitialPropsAST)(uidl.outputOptions.initialPropsData, 'context', !!uidl.outputOptions.dynamicRouteAttribute, uidl.outputOptions.pagination);
57
+ (_b = uidl.outputOptions.initialPropsData.resourceMappers) === null || _b === void 0 ? void 0 : _b.forEach(function (mapper) {
58
+ dependencies[mapper.name] = mapper.resource;
59
+ });
60
+ chunks.push({
61
+ name: 'getStaticProps',
62
+ type: teleport_types_1.ChunkType.AST,
63
+ fileType: teleport_types_1.FileType.JS,
64
+ content: getStaticPropsAST,
65
+ linkAfter: [componentChunkName],
66
+ });
67
+ return [2 /*return*/, structure];
68
+ });
69
+ }); };
70
+ return staticPropsPlugin;
71
+ };
72
+ exports.createStaticPropsPlugin = createStaticPropsPlugin;
73
+ exports.default = (0, exports.createStaticPropsPlugin)();
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAKmC;AACnC,iCAAiD;AAM1C,IAAM,uBAAuB,GAAoD,UACtF,MAAM;IAEE,IAAA,KAAyC,CAAA,MAAM,IAAI,EAAE,CAAA,mBAAjB,EAApC,kBAAkB,mBAAG,eAAe,KAAA,CAAiB;IAE7D,IAAM,iBAAiB,GAAoB,UAAO,SAAS;;;;YACjD,IAAI,GAA2B,SAAS,KAApC,EAAE,MAAM,GAAmB,SAAS,OAA5B,EAAE,YAAY,GAAK,SAAS,aAAd,CAAc;YAChD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,gBAAgB,CAAA,EAAE;gBACzC,sBAAO,SAAS,EAAA;aACjB;YAEK,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAjC,CAAiC,CAAC,CAAA;YAChF,IAAI,CAAC,cAAc,EAAE;gBACnB,sBAAO,SAAS,EAAA;aACjB;YAEK,iBAAiB,GAAG,IAAA,+BAAuB,EAC/C,IAAI,CAAC,aAAa,CAAC,gBAAgB,EACnC,SAAS,EACT,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAC9B,CAAA;YAED,MAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,0CAAE,OAAO,CAAC,UAAC,MAAM;gBAClE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC7C,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,0BAAS,CAAC,GAAG;gBACnB,QAAQ,EAAE,yBAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,CAAC,kBAAkB,CAAC;aAChC,CAAC,CAAA;YAEF,sBAAO,SAAS,EAAA;;SACjB,CAAA;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAvCY,QAAA,uBAAuB,2BAuCnC;AAED,kBAAe,IAAA,+BAAuB,GAAE,CAAA"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../teleport-types/dist/cjs/helper.d.ts","../../../teleport-types/dist/cjs/uidl.d.ts","../../../teleport-types/dist/cjs/generators.d.ts","../../../teleport-types/dist/cjs/errors.d.ts","../../../teleport-types/dist/cjs/vuidl.d.ts","../../../teleport-types/dist/cjs/index.d.ts","../../../../node_modules/@babel/types/lib/index.d.ts","../../../teleport-plugin-common/dist/cjs/builders/ast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/utils/parsed-ast.d.ts","../../../teleport-plugin-common/dist/cjs/builders/style-builders.d.ts","../../../teleport-plugin-common/dist/cjs/builders/hast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/types.d.ts","../../../teleport-plugin-common/dist/cjs/utils/ast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/style-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/hast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/types.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/index.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/index.d.ts","../../../teleport-plugin-common/dist/cjs/index.d.ts","../../src/utils.ts","../../src/index.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/diffLines.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/printDiffs.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/index.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../../node_modules/@types/jest/index.d.ts","../../../../node_modules/@types/jest/ts3.2/index.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"fd0f56a96d995bf07780490eb65da40e9fbdf80c1ddc89fb5ef837d91849c6d8","9f1270c1185cdf2a091e50b70339c127f2ee7bc66160e83fc6787ea335f20a14","db2ea909d82eb6e05c4c162e83d40ffd164bbd3f268c9416b8f84c056f79c63a","71a689048584cde03cb508408ae7c3b04ad8f10af887865e8b65c27ed9d91488","ccdd58c6212ebce6230fe7b78d57ddad6cf4032334ebc8c87a88d475d40e7012","6ba1631f84ef4507073189c4ada06d6de8bac89375ea3b49e34e49006cc44a3f","2ff9995137f3e5d68971388ec58af0c79721626323884513f9f5e2e996ac1fdd","07e3907c42b7215b7f8ced0c990805f42862060e53c9c4c42c28e407648d52d9","7d69ac79c9de7620a1bdd926fd4b20b8e968d6467a220eac2a836988ab47c933","c7b126a023fbcbe6b07edf69283b049fc3ca6958bc19934cde610a0ab5ae8ef3","7383bcf1e3b4970ec58cddeb24becd4fcd207aa518ca46270a6872b63712c29e","caeb0e5ee606c0461616c3f884bc15e651e5de500973335ed360ab063deae8ca","15644fa386f870a3ff6202ec0c8acdc1007d0466004c37757490991ec2602d74","d4f36091f2a7fac55cac2d088d46e68f01cd5cf68e3db5770b3ba62641875e18","5a007f687f1be0ed103375930c7027eb6f10d0b826472f7f6d7a5b260502104e","531942c2bbd4ebc75da80f161ab9b8ad1c519a8a703bdbc7907805f9f92bc223","dcaef7f7c1f0cb2dba19a1a70cc8d5276faa68e50bc69d6a006d3aaaaa9f7aa7","ffd67adf9464cf9bcddc3954fcd27d59b60e85acb02101fefe8b0eb642a2be2f","59b8c7576043b12356b13745811130ae5fa9c37cbd7ec5e49ecac8e88b8c9992","a1d5abce9e23de41e4c2eec486e757eba6489f2938d6437546860f3a476eb87d","149d2d319a823c7d701749261ef3de422868a93288b45f0ace7b155a1c905132","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","90b94d3d2aa3432cc9dd2d15f56a38b166163fc555404c74243e1af29c5549d8","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","e3b886bacdd1fbf1f72e654596c80a55c7bc1d10bdf464aaf52f45ecd243862f","d2f5c67858e65ebb932c2f4bd2af646f5764e8ad7f1e4fbe942a0b5ea05dc0e7","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","7f249c599e7a9335dd8e94a4bfe63f00e911756c3c23f77cdb6ef0ec4d479e4a",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"2cabc86ea4f972f2c8386903eccb8c19e2f2370fb9808b66dd8759c1f2ab30c7","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","3fa48484c65913004d5abb5c0f917b61ea4684f32d05bb28c1ecfa5f05a9ed12","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"127803f77e0dfee84b031b83ea7776875c6c4c89e11a81d00299ff58f163f0e2","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"dd9ea469d1bfaf589c6a196275d35cb1aa14014707c2c46d920c7b921e8f5bca","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","e222104af6cb9415238ad358488b74d76eceeff238c1268ec6e85655b05341da","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","eba230221317c985ab1953ccc3edc517f248b37db4fef7875cb2c8d08aff7be7","b83e796810e475da3564c6515bc0ae9577070596a33d89299b7d99f94ecfd921","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"f624e578325b8c58e55b30c998b1f4c3ec1b61a9fa66373da4250c89b7880d44","affectsGlobalScope":true},{"version":"d3002f620eab4bf6476c9da5c0efb2041d46f7df8b3032a5631bd206abef2c75","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noImplicitAny":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"target":1},"fileIdsList":[[104],[104,116,118],[104,112,113],[104,112,113,114,115],[104,117],[104,119],[61,104],[64,104],[65,70,104],[66,76,77,84,93,103,104],[66,67,76,84,104],[68,104],[69,70,77,85,104],[70,93,100,104],[71,73,76,84,104],[72,104],[73,74,104],[75,76,104],[76,104],[76,77,78,93,103,104],[76,77,78,93,104],[79,84,93,103,104],[76,77,79,80,84,93,100,103,104],[79,81,93,100,103,104],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110],[76,82,104],[83,103,104],[73,76,84,93,104],[85,104],[86,104],[64,87,104],[88,102,104,108],[89,104],[90,104],[76,91,104],[91,92,104,106],[76,93,94,95,104],[93,95,104],[93,94,104],[96,104],[97,104],[76,98,99,104],[98,99,104],[70,84,100,104],[101,104],[84,102,104],[65,79,90,103,104],[70,104],[93,104,105],[104,106],[104,107],[65,70,76,78,87,93,103,104,106,108],[93,104,109],[45,46,104],[45,104],[45,46,48,104],[47,48,49,50,51,52,53,54,55,56,57,104],[45,55,104],[45,46,51,104],[45,46,48,51,104],[45,59,104],[45,46,58,104],[41,104],[41,42,43,44,104],[40,104],[40,41,104]],"referencedMap":[[46,1],[119,2],[112,1],[114,3],[116,4],[115,3],[113,1],[118,5],[117,1],[120,6],[61,7],[62,7],[64,8],[65,9],[66,10],[67,11],[68,12],[69,13],[70,14],[71,15],[72,16],[73,17],[74,17],[75,18],[76,19],[77,20],[78,21],[63,1],[110,1],[79,22],[80,23],[81,24],[111,25],[82,26],[83,27],[84,28],[85,29],[86,30],[87,31],[88,32],[89,33],[90,34],[91,35],[92,36],[93,37],[95,38],[94,39],[96,40],[97,41],[98,42],[99,43],[100,44],[101,45],[102,46],[103,47],[104,48],[105,49],[106,50],[107,51],[108,52],[109,53],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[47,54],[50,55],[49,56],[58,57],[56,58],[55,55],[57,59],[51,54],[52,60],[54,55],[48,1],[53,55],[60,61],[59,62],[43,1],[42,63],[40,1],[45,64],[41,65],[44,66]],"exportedModulesMap":[[46,1],[119,2],[112,1],[114,3],[116,4],[115,3],[113,1],[118,5],[117,1],[120,6],[61,7],[62,7],[64,8],[65,9],[66,10],[67,11],[68,12],[69,13],[70,14],[71,15],[72,16],[73,17],[74,17],[75,18],[76,19],[77,20],[78,21],[63,1],[110,1],[79,22],[80,23],[81,24],[111,25],[82,26],[83,27],[84,28],[85,29],[86,30],[87,31],[88,32],[89,33],[90,34],[91,35],[92,36],[93,37],[95,38],[94,39],[96,40],[97,41],[98,42],[99,43],[100,44],[101,45],[102,46],[103,47],[104,48],[105,49],[106,50],[107,51],[108,52],[109,53],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[47,54],[50,55],[49,56],[58,57],[56,58],[55,55],[57,59],[51,54],[52,60],[54,55],[48,1],[53,55],[60,61],[59,62],[43,1],[42,63],[40,1],[45,64],[41,65],[44,66]],"semanticDiagnosticsPerFile":[46,119,112,114,116,115,113,118,117,120,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,63,110,79,80,81,111,82,83,84,85,86,87,88,89,90,91,92,93,95,94,96,97,98,99,100,101,102,103,104,105,106,107,108,109,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,47,50,49,58,56,55,57,51,52,54,48,53,60,59,43,42,40,45,41,44]},"version":"4.6.2"}
@@ -0,0 +1,4 @@
1
+ import * as types from '@babel/types';
2
+ import { InitialPropsData, PagePaginationOptions } from '@teleporthq/teleport-types';
3
+ export declare const generateInitialPropsAST: (initialPropsData: InitialPropsData, propsPrefix?: string, isDetailsPage?: boolean, pagination?: PagePaginationOptions) => types.ExportNamedDeclaration;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,eAAO,MAAM,uBAAuB,qBAChB,gBAAgB,8DAGrB,qBAAqB,iCAuBnC,CAAA"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.generateInitialPropsAST = void 0;
36
+ var types = __importStar(require("@babel/types"));
37
+ var teleport_plugin_common_1 = require("@teleporthq/teleport-plugin-common");
38
+ var generateInitialPropsAST = function (initialPropsData, propsPrefix, isDetailsPage, pagination) {
39
+ if (propsPrefix === void 0) { propsPrefix = ''; }
40
+ if (isDetailsPage === void 0) { isDetailsPage = false; }
41
+ var computedResourceAST = computePropsAST(initialPropsData, propsPrefix, isDetailsPage, pagination);
42
+ return types.exportNamedDeclaration((function () {
43
+ var node = types.functionDeclaration(types.identifier('getStaticProps'), [types.identifier('context')], types.blockStatement(__spreadArray([], computedResourceAST, true)), false, true);
44
+ node.async = true;
45
+ return node;
46
+ })());
47
+ };
48
+ exports.generateInitialPropsAST = generateInitialPropsAST;
49
+ var computePropsAST = function (propsData, propsPrefix, isDetailsPage, pagination) {
50
+ var _a, _b, _c, _d;
51
+ if (propsPrefix === void 0) { propsPrefix = ''; }
52
+ if (isDetailsPage === void 0) { isDetailsPage = false; }
53
+ var resourceASTs = teleport_plugin_common_1.ASTUtils.generateRemoteResourceASTs(propsData.resource, propsPrefix);
54
+ var mappedResponse = types.identifier('response');
55
+ (_a = propsData.resourceMappers) === null || _a === void 0 ? void 0 : _a.forEach(function (mapper) {
56
+ mappedResponse = types.callExpression(types.identifier(mapper.name), [mappedResponse]);
57
+ });
58
+ var mappedDataAST = types.variableDeclaration('const', [
59
+ types.variableDeclarator(types.identifier('mappedData'), mappedResponse),
60
+ ]);
61
+ var responseMemberAST = teleport_plugin_common_1.ASTUtils.generateMemberExpressionASTFromPath(__spreadArray([
62
+ ((_b = propsData.resourceMappers) === null || _b === void 0 ? void 0 : _b.length) ? 'mappedData' : 'response'
63
+ ], (propsData.exposeAs.valuePath || []), true));
64
+ var dataWeNeedAccessorAST = isDetailsPage && !pagination
65
+ ? types.memberExpression(responseMemberAST, types.numericLiteral(0), true)
66
+ : responseMemberAST;
67
+ var returnAST = types.returnStatement(types.objectExpression([
68
+ types.objectProperty(types.identifier('props'), types.objectExpression([
69
+ types.objectProperty(types.identifier(propsData.exposeAs.name), ((_c = propsData.exposeAs.itemValuePath) === null || _c === void 0 ? void 0 : _c.length)
70
+ ? teleport_plugin_common_1.ASTUtils.generateMemberExpressionASTFromBase(dataWeNeedAccessorAST, propsData.exposeAs.itemValuePath)
71
+ : dataWeNeedAccessorAST, false, false),
72
+ ]), false, false),
73
+ types.objectProperty(types.identifier('revalidate'), types.numericLiteral(1), false, false),
74
+ ]));
75
+ return __spreadArray(__spreadArray(__spreadArray([], resourceASTs, true), (((_d = propsData.resourceMappers) === null || _d === void 0 ? void 0 : _d.length) ? [mappedDataAST] : []), true), [returnAST], false);
76
+ };
77
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ComponentPlugin, ComponentPluginFactory } from '@teleporthq/teleport-types';
2
+ interface StaticPropsPluginConfig {
3
+ componentChunkName?: string;
4
+ }
5
+ export declare const createStaticPropsPlugin: ComponentPluginFactory<StaticPropsPluginConfig>;
6
+ declare const _default: ComponentPlugin;
7
+ export default _default;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,sBAAsB,EAEvB,MAAM,4BAA4B,CAAA;AAGnC,UAAU,uBAAuB;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,eAAO,MAAM,uBAAuB,EAAE,sBAAsB,CAAC,uBAAuB,CAuCnF,CAAA;;AAED,wBAAwC"}
@@ -0,0 +1,70 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (_) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { ChunkType, FileType, } from '@teleporthq/teleport-types';
38
+ import { generateInitialPropsAST } from './utils';
39
+ export var createStaticPropsPlugin = function (config) {
40
+ var _a = (config || {}).componentChunkName, componentChunkName = _a === void 0 ? 'jsx-component' : _a;
41
+ var staticPropsPlugin = function (structure) { return __awaiter(void 0, void 0, void 0, function () {
42
+ var uidl, chunks, dependencies, componentChunk, getStaticPropsAST;
43
+ var _a, _b;
44
+ return __generator(this, function (_c) {
45
+ uidl = structure.uidl, chunks = structure.chunks, dependencies = structure.dependencies;
46
+ if (!((_a = uidl.outputOptions) === null || _a === void 0 ? void 0 : _a.initialPropsData)) {
47
+ return [2 /*return*/, structure];
48
+ }
49
+ componentChunk = chunks.find(function (chunk) { return chunk.name === componentChunkName; });
50
+ if (!componentChunk) {
51
+ return [2 /*return*/, structure];
52
+ }
53
+ getStaticPropsAST = generateInitialPropsAST(uidl.outputOptions.initialPropsData, 'context', !!uidl.outputOptions.dynamicRouteAttribute, uidl.outputOptions.pagination);
54
+ (_b = uidl.outputOptions.initialPropsData.resourceMappers) === null || _b === void 0 ? void 0 : _b.forEach(function (mapper) {
55
+ dependencies[mapper.name] = mapper.resource;
56
+ });
57
+ chunks.push({
58
+ name: 'getStaticProps',
59
+ type: ChunkType.AST,
60
+ fileType: FileType.JS,
61
+ content: getStaticPropsAST,
62
+ linkAfter: [componentChunkName],
63
+ });
64
+ return [2 /*return*/, structure];
65
+ });
66
+ }); };
67
+ return staticPropsPlugin;
68
+ };
69
+ export default createStaticPropsPlugin();
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,SAAS,EAGT,QAAQ,GACT,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAMjD,MAAM,CAAC,IAAM,uBAAuB,GAAoD,UACtF,MAAM;IAEE,IAAA,KAAyC,CAAA,MAAM,IAAI,EAAE,CAAA,mBAAjB,EAApC,kBAAkB,mBAAG,eAAe,KAAA,CAAiB;IAE7D,IAAM,iBAAiB,GAAoB,UAAO,SAAS;;;;YACjD,IAAI,GAA2B,SAAS,KAApC,EAAE,MAAM,GAAmB,SAAS,OAA5B,EAAE,YAAY,GAAK,SAAS,aAAd,CAAc;YAChD,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,gBAAgB,CAAA,EAAE;gBACzC,sBAAO,SAAS,EAAA;aACjB;YAEK,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAjC,CAAiC,CAAC,CAAA;YAChF,IAAI,CAAC,cAAc,EAAE;gBACnB,sBAAO,SAAS,EAAA;aACjB;YAEK,iBAAiB,GAAG,uBAAuB,CAC/C,IAAI,CAAC,aAAa,CAAC,gBAAgB,EACnC,SAAS,EACT,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAC9B,CAAA;YAED,MAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,0CAAE,OAAO,CAAC,UAAC,MAAM;gBAClE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC7C,CAAC,CAAC,CAAA;YAEF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,SAAS,CAAC,GAAG;gBACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,CAAC,kBAAkB,CAAC;aAChC,CAAC,CAAA;YAEF,sBAAO,SAAS,EAAA;;SACjB,CAAA;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAED,eAAe,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../teleport-types/dist/cjs/helper.d.ts","../../../teleport-types/dist/cjs/uidl.d.ts","../../../teleport-types/dist/cjs/generators.d.ts","../../../teleport-types/dist/cjs/errors.d.ts","../../../teleport-types/dist/cjs/vuidl.d.ts","../../../teleport-types/dist/cjs/index.d.ts","../../../../node_modules/@babel/types/lib/index.d.ts","../../../teleport-plugin-common/dist/cjs/builders/ast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/utils/parsed-ast.d.ts","../../../teleport-plugin-common/dist/cjs/builders/style-builders.d.ts","../../../teleport-plugin-common/dist/cjs/builders/hast-builders.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/types.d.ts","../../../teleport-plugin-common/dist/cjs/utils/ast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/style-utils.d.ts","../../../teleport-plugin-common/dist/cjs/utils/hast-utils.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/types.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-html/index.d.ts","../../../teleport-plugin-common/dist/cjs/node-handlers/node-to-jsx/index.d.ts","../../../teleport-plugin-common/dist/cjs/index.d.ts","../../src/utils.ts","../../src/index.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/diffLines.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/printDiffs.d.ts","../../../../node_modules/@types/jest/node_modules/jest-diff/build/index.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../../node_modules/@types/jest/index.d.ts","../../../../node_modules/@types/jest/ts3.2/index.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"fd0f56a96d995bf07780490eb65da40e9fbdf80c1ddc89fb5ef837d91849c6d8","9f1270c1185cdf2a091e50b70339c127f2ee7bc66160e83fc6787ea335f20a14","db2ea909d82eb6e05c4c162e83d40ffd164bbd3f268c9416b8f84c056f79c63a","71a689048584cde03cb508408ae7c3b04ad8f10af887865e8b65c27ed9d91488","ccdd58c6212ebce6230fe7b78d57ddad6cf4032334ebc8c87a88d475d40e7012","6ba1631f84ef4507073189c4ada06d6de8bac89375ea3b49e34e49006cc44a3f","2ff9995137f3e5d68971388ec58af0c79721626323884513f9f5e2e996ac1fdd","07e3907c42b7215b7f8ced0c990805f42862060e53c9c4c42c28e407648d52d9","7d69ac79c9de7620a1bdd926fd4b20b8e968d6467a220eac2a836988ab47c933","c7b126a023fbcbe6b07edf69283b049fc3ca6958bc19934cde610a0ab5ae8ef3","7383bcf1e3b4970ec58cddeb24becd4fcd207aa518ca46270a6872b63712c29e","caeb0e5ee606c0461616c3f884bc15e651e5de500973335ed360ab063deae8ca","15644fa386f870a3ff6202ec0c8acdc1007d0466004c37757490991ec2602d74","d4f36091f2a7fac55cac2d088d46e68f01cd5cf68e3db5770b3ba62641875e18","5a007f687f1be0ed103375930c7027eb6f10d0b826472f7f6d7a5b260502104e","531942c2bbd4ebc75da80f161ab9b8ad1c519a8a703bdbc7907805f9f92bc223","dcaef7f7c1f0cb2dba19a1a70cc8d5276faa68e50bc69d6a006d3aaaaa9f7aa7","ffd67adf9464cf9bcddc3954fcd27d59b60e85acb02101fefe8b0eb642a2be2f","59b8c7576043b12356b13745811130ae5fa9c37cbd7ec5e49ecac8e88b8c9992","a1d5abce9e23de41e4c2eec486e757eba6489f2938d6437546860f3a476eb87d","149d2d319a823c7d701749261ef3de422868a93288b45f0ace7b155a1c905132","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"2f6c9750131d5d2fdaba85c164a930dc07d2d7e7e8970b89d32864aa6c72620c","affectsGlobalScope":true},"56d13f223ab40f71840795f5bef2552a397a70666ee60878222407f3893fb8d0",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","90b94d3d2aa3432cc9dd2d15f56a38b166163fc555404c74243e1af29c5549d8","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","c993aac3b6d4a4620ef9651497069eb84806a131420e4f158ea9396fb8eb9b8c","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","e3b886bacdd1fbf1f72e654596c80a55c7bc1d10bdf464aaf52f45ecd243862f","d2f5c67858e65ebb932c2f4bd2af646f5764e8ad7f1e4fbe942a0b5ea05dc0e7","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","7f249c599e7a9335dd8e94a4bfe63f00e911756c3c23f77cdb6ef0ec4d479e4a",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"2cabc86ea4f972f2c8386903eccb8c19e2f2370fb9808b66dd8759c1f2ab30c7","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","3fa48484c65913004d5abb5c0f917b61ea4684f32d05bb28c1ecfa5f05a9ed12","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"127803f77e0dfee84b031b83ea7776875c6c4c89e11a81d00299ff58f163f0e2","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"dd9ea469d1bfaf589c6a196275d35cb1aa14014707c2c46d920c7b921e8f5bca","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","e222104af6cb9415238ad358488b74d76eceeff238c1268ec6e85655b05341da","69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","eba230221317c985ab1953ccc3edc517f248b37db4fef7875cb2c8d08aff7be7","b83e796810e475da3564c6515bc0ae9577070596a33d89299b7d99f94ecfd921","b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c",{"version":"f624e578325b8c58e55b30c998b1f4c3ec1b61a9fa66373da4250c89b7880d44","affectsGlobalScope":true},{"version":"d3002f620eab4bf6476c9da5c0efb2041d46f7df8b3032a5631bd206abef2c75","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"declarationMap":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":99,"noImplicitAny":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"target":1},"fileIdsList":[[104],[104,116,118],[104,112,113],[104,112,113,114,115],[104,117],[104,119],[61,104],[64,104],[65,70,104],[66,76,77,84,93,103,104],[66,67,76,84,104],[68,104],[69,70,77,85,104],[70,93,100,104],[71,73,76,84,104],[72,104],[73,74,104],[75,76,104],[76,104],[76,77,78,93,103,104],[76,77,78,93,104],[79,84,93,103,104],[76,77,79,80,84,93,100,103,104],[79,81,93,100,103,104],[61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110],[76,82,104],[83,103,104],[73,76,84,93,104],[85,104],[86,104],[64,87,104],[88,102,104,108],[89,104],[90,104],[76,91,104],[91,92,104,106],[76,93,94,95,104],[93,95,104],[93,94,104],[96,104],[97,104],[76,98,99,104],[98,99,104],[70,84,100,104],[101,104],[84,102,104],[65,79,90,103,104],[70,104],[93,104,105],[104,106],[104,107],[65,70,76,78,87,93,103,104,106,108],[93,104,109],[45,46,104],[45,104],[45,46,48,104],[47,48,49,50,51,52,53,54,55,56,57,104],[45,55,104],[45,46,51,104],[45,46,48,51,104],[45,59,104],[45,46,58,104],[41,104],[41,42,43,44,104],[40,104],[40,41,104]],"referencedMap":[[46,1],[119,2],[112,1],[114,3],[116,4],[115,3],[113,1],[118,5],[117,1],[120,6],[61,7],[62,7],[64,8],[65,9],[66,10],[67,11],[68,12],[69,13],[70,14],[71,15],[72,16],[73,17],[74,17],[75,18],[76,19],[77,20],[78,21],[63,1],[110,1],[79,22],[80,23],[81,24],[111,25],[82,26],[83,27],[84,28],[85,29],[86,30],[87,31],[88,32],[89,33],[90,34],[91,35],[92,36],[93,37],[95,38],[94,39],[96,40],[97,41],[98,42],[99,43],[100,44],[101,45],[102,46],[103,47],[104,48],[105,49],[106,50],[107,51],[108,52],[109,53],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[47,54],[50,55],[49,56],[58,57],[56,58],[55,55],[57,59],[51,54],[52,60],[54,55],[48,1],[53,55],[60,61],[59,62],[43,1],[42,63],[40,1],[45,64],[41,65],[44,66]],"exportedModulesMap":[[46,1],[119,2],[112,1],[114,3],[116,4],[115,3],[113,1],[118,5],[117,1],[120,6],[61,7],[62,7],[64,8],[65,9],[66,10],[67,11],[68,12],[69,13],[70,14],[71,15],[72,16],[73,17],[74,17],[75,18],[76,19],[77,20],[78,21],[63,1],[110,1],[79,22],[80,23],[81,24],[111,25],[82,26],[83,27],[84,28],[85,29],[86,30],[87,31],[88,32],[89,33],[90,34],[91,35],[92,36],[93,37],[95,38],[94,39],[96,40],[97,41],[98,42],[99,43],[100,44],[101,45],[102,46],[103,47],[104,48],[105,49],[106,50],[107,51],[108,52],[109,53],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[30,1],[31,1],[32,1],[33,1],[7,1],[38,1],[34,1],[35,1],[36,1],[37,1],[1,1],[39,1],[47,54],[50,55],[49,56],[58,57],[56,58],[55,55],[57,59],[51,54],[52,60],[54,55],[48,1],[53,55],[60,61],[59,62],[43,1],[42,63],[40,1],[45,64],[41,65],[44,66]],"semanticDiagnosticsPerFile":[46,119,112,114,116,115,113,118,117,120,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,63,110,79,80,81,111,82,83,84,85,86,87,88,89,90,91,92,93,95,94,96,97,98,99,100,101,102,103,104,105,106,107,108,109,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,30,31,32,33,7,38,34,35,36,37,1,39,47,50,49,58,56,55,57,51,52,54,48,53,60,59,43,42,40,45,41,44]},"version":"4.6.2"}
@@ -0,0 +1,4 @@
1
+ import * as types from '@babel/types';
2
+ import { InitialPropsData, PagePaginationOptions } from '@teleporthq/teleport-types';
3
+ export declare const generateInitialPropsAST: (initialPropsData: InitialPropsData, propsPrefix?: string, isDetailsPage?: boolean, pagination?: PagePaginationOptions) => types.ExportNamedDeclaration;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,eAAO,MAAM,uBAAuB,qBAChB,gBAAgB,8DAGrB,qBAAqB,iCAuBnC,CAAA"}
@@ -0,0 +1,50 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ import * as types from '@babel/types';
11
+ import { ASTUtils } from '@teleporthq/teleport-plugin-common';
12
+ export var generateInitialPropsAST = function (initialPropsData, propsPrefix, isDetailsPage, pagination) {
13
+ if (propsPrefix === void 0) { propsPrefix = ''; }
14
+ if (isDetailsPage === void 0) { isDetailsPage = false; }
15
+ var computedResourceAST = computePropsAST(initialPropsData, propsPrefix, isDetailsPage, pagination);
16
+ return types.exportNamedDeclaration((function () {
17
+ var node = types.functionDeclaration(types.identifier('getStaticProps'), [types.identifier('context')], types.blockStatement(__spreadArray([], computedResourceAST, true)), false, true);
18
+ node.async = true;
19
+ return node;
20
+ })());
21
+ };
22
+ var computePropsAST = function (propsData, propsPrefix, isDetailsPage, pagination) {
23
+ var _a, _b, _c, _d;
24
+ if (propsPrefix === void 0) { propsPrefix = ''; }
25
+ if (isDetailsPage === void 0) { isDetailsPage = false; }
26
+ var resourceASTs = ASTUtils.generateRemoteResourceASTs(propsData.resource, propsPrefix);
27
+ var mappedResponse = types.identifier('response');
28
+ (_a = propsData.resourceMappers) === null || _a === void 0 ? void 0 : _a.forEach(function (mapper) {
29
+ mappedResponse = types.callExpression(types.identifier(mapper.name), [mappedResponse]);
30
+ });
31
+ var mappedDataAST = types.variableDeclaration('const', [
32
+ types.variableDeclarator(types.identifier('mappedData'), mappedResponse),
33
+ ]);
34
+ var responseMemberAST = ASTUtils.generateMemberExpressionASTFromPath(__spreadArray([
35
+ ((_b = propsData.resourceMappers) === null || _b === void 0 ? void 0 : _b.length) ? 'mappedData' : 'response'
36
+ ], (propsData.exposeAs.valuePath || []), true));
37
+ var dataWeNeedAccessorAST = isDetailsPage && !pagination
38
+ ? types.memberExpression(responseMemberAST, types.numericLiteral(0), true)
39
+ : responseMemberAST;
40
+ var returnAST = types.returnStatement(types.objectExpression([
41
+ types.objectProperty(types.identifier('props'), types.objectExpression([
42
+ types.objectProperty(types.identifier(propsData.exposeAs.name), ((_c = propsData.exposeAs.itemValuePath) === null || _c === void 0 ? void 0 : _c.length)
43
+ ? ASTUtils.generateMemberExpressionASTFromBase(dataWeNeedAccessorAST, propsData.exposeAs.itemValuePath)
44
+ : dataWeNeedAccessorAST, false, false),
45
+ ]), false, false),
46
+ types.objectProperty(types.identifier('revalidate'), types.numericLiteral(1), false, false),
47
+ ]));
48
+ return __spreadArray(__spreadArray(__spreadArray([], resourceASTs, true), (((_d = propsData.resourceMappers) === null || _d === void 0 ? void 0 : _d.length) ? [mappedDataAST] : []), true), [returnAST], false);
49
+ };
50
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@teleporthq/teleport-plugin-next-static-props",
3
+ "version": "0.27.0",
4
+ "description": "A plugin for adding getStaticProps inside a nextjs page",
5
+ "author": "teleportHQ",
6
+ "license": "MIT",
7
+ "homepage": "https://teleporthq.io/",
8
+ "main": "dist/cjs/index.js",
9
+ "module": "dist/esm/index.js",
10
+ "types": "dist/cjs/index.d.ts",
11
+ "sideEffects": false,
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+ssh://git@github.com/teleporthq/teleport-code-generators.git"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/teleporthq/teleport-code-generators/issues"
18
+ },
19
+ "publishConfig": {
20
+ "access": "public"
21
+ },
22
+ "scripts": {
23
+ "clean": "rimraf dist",
24
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.json --module commonjs --outDir dist/cjs"
25
+ },
26
+ "dependencies": {
27
+ "@babel/types": "^7.5.5",
28
+ "@teleporthq/teleport-plugin-common": "^0.27.2",
29
+ "@teleporthq/teleport-types": "^0.27.0"
30
+ },
31
+ "gitHead": "df1fd49b6b3b6b7ef6abb47b64b981750622f98b"
32
+ }
package/src/index.ts ADDED
@@ -0,0 +1,54 @@
1
+ import {
2
+ ChunkType,
3
+ ComponentPlugin,
4
+ ComponentPluginFactory,
5
+ FileType,
6
+ } from '@teleporthq/teleport-types'
7
+ import { generateInitialPropsAST } from './utils'
8
+
9
+ interface StaticPropsPluginConfig {
10
+ componentChunkName?: string
11
+ }
12
+
13
+ export const createStaticPropsPlugin: ComponentPluginFactory<StaticPropsPluginConfig> = (
14
+ config
15
+ ) => {
16
+ const { componentChunkName = 'jsx-component' } = config || {}
17
+
18
+ const staticPropsPlugin: ComponentPlugin = async (structure) => {
19
+ const { uidl, chunks, dependencies } = structure
20
+ if (!uidl.outputOptions?.initialPropsData) {
21
+ return structure
22
+ }
23
+
24
+ const componentChunk = chunks.find((chunk) => chunk.name === componentChunkName)
25
+ if (!componentChunk) {
26
+ return structure
27
+ }
28
+
29
+ const getStaticPropsAST = generateInitialPropsAST(
30
+ uidl.outputOptions.initialPropsData,
31
+ 'context',
32
+ !!uidl.outputOptions.dynamicRouteAttribute,
33
+ uidl.outputOptions.pagination
34
+ )
35
+
36
+ uidl.outputOptions.initialPropsData.resourceMappers?.forEach((mapper) => {
37
+ dependencies[mapper.name] = mapper.resource
38
+ })
39
+
40
+ chunks.push({
41
+ name: 'getStaticProps',
42
+ type: ChunkType.AST,
43
+ fileType: FileType.JS,
44
+ content: getStaticPropsAST,
45
+ linkAfter: [componentChunkName],
46
+ })
47
+
48
+ return structure
49
+ }
50
+
51
+ return staticPropsPlugin
52
+ }
53
+
54
+ export default createStaticPropsPlugin()
package/src/utils.ts ADDED
@@ -0,0 +1,86 @@
1
+ import * as types from '@babel/types'
2
+ import { ASTUtils } from '@teleporthq/teleport-plugin-common'
3
+ import { InitialPropsData, PagePaginationOptions } from '@teleporthq/teleport-types'
4
+
5
+ export const generateInitialPropsAST = (
6
+ initialPropsData: InitialPropsData,
7
+ propsPrefix = '',
8
+ isDetailsPage = false,
9
+ pagination?: PagePaginationOptions
10
+ ) => {
11
+ const computedResourceAST = computePropsAST(
12
+ initialPropsData,
13
+ propsPrefix,
14
+ isDetailsPage,
15
+ pagination
16
+ )
17
+
18
+ return types.exportNamedDeclaration(
19
+ (() => {
20
+ const node = types.functionDeclaration(
21
+ types.identifier('getStaticProps'),
22
+ [types.identifier('context')],
23
+ types.blockStatement([...computedResourceAST]),
24
+ false,
25
+ true
26
+ )
27
+
28
+ node.async = true
29
+ return node
30
+ })()
31
+ )
32
+ }
33
+
34
+ const computePropsAST = (
35
+ propsData: InitialPropsData,
36
+ propsPrefix = '',
37
+ isDetailsPage = false,
38
+ pagination?: PagePaginationOptions
39
+ ) => {
40
+ const resourceASTs = ASTUtils.generateRemoteResourceASTs(propsData.resource, propsPrefix)
41
+
42
+ let mappedResponse: types.CallExpression | types.Identifier = types.identifier('response')
43
+ propsData.resourceMappers?.forEach((mapper) => {
44
+ mappedResponse = types.callExpression(types.identifier(mapper.name), [mappedResponse])
45
+ })
46
+
47
+ const mappedDataAST = types.variableDeclaration('const', [
48
+ types.variableDeclarator(types.identifier('mappedData'), mappedResponse),
49
+ ])
50
+
51
+ const responseMemberAST = ASTUtils.generateMemberExpressionASTFromPath([
52
+ propsData.resourceMappers?.length ? 'mappedData' : 'response',
53
+ ...(propsData.exposeAs.valuePath || []),
54
+ ])
55
+
56
+ const dataWeNeedAccessorAST =
57
+ isDetailsPage && !pagination
58
+ ? types.memberExpression(responseMemberAST, types.numericLiteral(0), true)
59
+ : responseMemberAST
60
+
61
+ const returnAST = types.returnStatement(
62
+ types.objectExpression([
63
+ types.objectProperty(
64
+ types.identifier('props'),
65
+ types.objectExpression([
66
+ types.objectProperty(
67
+ types.identifier(propsData.exposeAs.name),
68
+ propsData.exposeAs.itemValuePath?.length
69
+ ? ASTUtils.generateMemberExpressionASTFromBase(
70
+ dataWeNeedAccessorAST,
71
+ propsData.exposeAs.itemValuePath
72
+ )
73
+ : dataWeNeedAccessorAST,
74
+ false,
75
+ false
76
+ ),
77
+ ]),
78
+ false,
79
+ false
80
+ ),
81
+ types.objectProperty(types.identifier('revalidate'), types.numericLiteral(1), false, false),
82
+ ])
83
+ )
84
+
85
+ return [...resourceASTs, ...(propsData.resourceMappers?.length ? [mappedDataAST] : []), returnAST]
86
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "dist/esm"
5
+ },
6
+ "include": [
7
+ "./src"
8
+ ]
9
+ }