@plasmicapp/loader-gatsby 1.0.254 → 1.0.256
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gatsby-node.d.ts +6 -14
- package/dist/gatsby-node.js +297 -274
- package/dist/gatsby-node.js.map +7 -1
- package/dist/gatsby-ssr.js +71 -51
- package/dist/gatsby-ssr.js.map +7 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +373 -26
- package/dist/index.js.map +7 -1
- package/package.json +35 -17
- package/dist/loader.js +0 -15
- package/dist/loader.js.map +0 -1
- package/dist/server-require.js +0 -18
- package/dist/server-require.js.map +0 -1
package/dist/gatsby-node.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/gatsby-node.ts", "../src/server-require.ts"],
|
|
4
|
+
"sourcesContent": ["import { ComponentMeta, LoaderBundleOutput } from \"@plasmicapp/loader-core\";\nimport {\n convertBundlesToComponentRenderData,\n InitOptions,\n initPlasmicLoader,\n matchesPagePath,\n} from \"@plasmicapp/loader-react\";\nimport type { PlasmicRemoteChangeWatcher as Watcher } from \"@plasmicapp/watcher\";\nimport { CreatePagesArgs, GatsbyNode, PluginOptions } from \"gatsby\";\nimport serverRequire from \"./server-require\";\n\nexport const onPreInit: GatsbyNode[\"onPreInit\"] = ({ reporter }) =>\n reporter.success(\"Loaded @plasmicapp/loader-gatsby\");\n\nexport type GatsbyPluginOptions = PluginOptions &\n InitOptions & {\n defaultPlasmicPage?: string;\n ignorePaths?: string[];\n };\n\nconst PLASMIC_NODE_NAME = \"plasmicData\";\n\nconst PLASMIC_DATA_TYPE = `\n type ${PLASMIC_NODE_NAME} implements Node {\n name: String!\n displayName: String!\n projectId: String!\n path: String\n isPage: Boolean!\n renderData: JSON!\n }\n\n type Query {\n plasmicComponents(componentNames: [String]!): JSON\n plasmicOptions: JSON\n }\n`;\n\nconst SOURCE_WAIT_TIME = 3000; // 3 seconds\nconst SOURCE_MAX_WAIT_TIME = 10000; // 10 seconds\n\nlet allPaths: string[] = [];\n\nexport const sourceNodes: GatsbyNode[\"sourceNodes\"] = async (\n { actions, createContentDigest, reporter },\n opts: GatsbyPluginOptions\n) => {\n const { createNode, deleteNode } = actions;\n\n let allComponents: any[] = [];\n\n const refreshData = async () => {\n reporter.info(`[Plasmic Loader] - Creating nodes`);\n\n const PLASMIC = initPlasmicLoader({\n projects: opts.projects,\n preview: opts.preview,\n host: opts.host,\n platform: \"gatsby\",\n });\n\n const components = await PLASMIC.fetchComponents();\n\n for (const component of allComponents) {\n const hasComponent = components.some((c) => c.name === component.name);\n /**\n * We shouldn't delete nodes that will be updated, if we delete all nodes\n * and then create it again, this could case the graphql layer to have no\n * plasmic data for some time, but this can be enough time to a re render\n * causing components that call a graphql query to plasmic data to crash\n * */\n if (!hasComponent) {\n deleteNode(component);\n reporter.verbose(`[Plasmic Loader] - Deleted node ${component.name}`);\n }\n }\n\n allComponents = [];\n for (const component of components) {\n const renderData = await PLASMIC.fetchComponentData({\n name: component.name,\n projectId: component.projectId,\n });\n\n const curComponent = {\n ...component,\n renderData,\n };\n\n const componentMeta = {\n // We use the same id as curComponent.id since loader-react might\n // expect the id to match plasmic component uuid.\n // id: getNodeId(component.projectId, component.name),\n parent: null,\n children: [],\n internal: {\n type: PLASMIC_NODE_NAME,\n contentDigest: createContentDigest(curComponent),\n },\n };\n\n const componentNode = Object.assign({}, curComponent, componentMeta);\n\n createNode(componentNode);\n reporter.verbose(\n `[Plasmic Loader] - Created component node ${component.name}`\n );\n allComponents.push(componentNode);\n }\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n const debounce = serverRequire(\"lodash/debounce\");\n const triggerSourcing = debounce(refreshData, SOURCE_WAIT_TIME, {\n maxWait: SOURCE_MAX_WAIT_TIME,\n });\n\n try {\n const PlasmicRemoteChangeWatcher = serverRequire(\"@plasmicapp/watcher\")\n .PlasmicRemoteChangeWatcher as typeof Watcher;\n\n const watcher = new PlasmicRemoteChangeWatcher({\n projects: opts.projects,\n host: opts.host,\n });\n\n watcher.subscribe({\n onUpdate: () => {\n if (opts.preview) {\n triggerSourcing();\n }\n },\n onPublish: () => {\n if (!opts.preview) {\n triggerSourcing();\n }\n },\n });\n } catch (e) {\n console.warn(\"Couldn't subscribe to Plasmic changes\", e);\n }\n }\n\n await refreshData();\n};\n\nasync function getAllNodes(nodeModel: any, type: any) {\n try {\n const { entries } = await nodeModel.findAll({ type });\n return Array.from(entries);\n } catch (_) {\n // Gatsby < v4 does not have `nodeModel.findAll`, so we try to use the\n // deprecated `nodeModel.getAllNodes` instead.\n return nodeModel.getAllNodes({ type });\n }\n}\n\nexport const createResolvers: GatsbyNode[\"createResolvers\"] = (\n { createResolvers },\n opts\n) => {\n createResolvers({\n Query: {\n plasmicComponents: {\n type: \"JSON\",\n args: {\n componentNames: `[String]!`,\n },\n async resolve(\n _source: unknown,\n args: { componentNames: string[] },\n context: any,\n _info: unknown\n ) {\n const { componentNames } = args;\n\n const components = await getAllNodes(\n context.nodeModel,\n PLASMIC_NODE_NAME\n );\n\n const bundles: LoaderBundleOutput[] = [];\n const compMetas: (ComponentMeta & {\n params?: Record<string, string>;\n })[] = [];\n for (const component of components) {\n if (\n componentNames.includes(component.name) ||\n componentNames.includes(component.displayName) ||\n !!(\n component.path &&\n componentNames.some((lookup) =>\n matchesPagePath(component.path, lookup)\n )\n )\n ) {\n const bundle = component.renderData?.bundle;\n if (bundle) {\n bundles.push(bundle);\n\n let meta = component;\n\n // If component is a page, try to parse dynamic params.\n if (component.path) {\n for (const lookup of componentNames) {\n const match = matchesPagePath(component.path, lookup);\n if (match) {\n meta = { ...meta, params: match.params };\n break;\n }\n }\n }\n\n compMetas.push(meta);\n }\n }\n }\n\n const renderData = convertBundlesToComponentRenderData(\n bundles,\n compMetas\n );\n\n renderData?.entryCompMetas.sort(\n (meta1, meta2) =>\n // We sort the matched component metas by the number of path params, so\n // if there are two pages `/products/foo` and `/products/[slug]`,\n // the first one will have higher precedence.\n Array.from(Object.keys(meta1.params || {})).length -\n Array.from(Object.keys(meta2.params || {})).length\n );\n\n return renderData;\n },\n },\n plasmicOptions: {\n type: \"JSON\",\n resolve() {\n return {\n projects: opts.projects,\n preview: opts.preview,\n host: opts.host,\n };\n },\n },\n },\n });\n};\n\nexport const createSchemaCustomization: GatsbyNode[\"createSchemaCustomization\"] =\n ({ actions }) => {\n const { createTypes } = actions;\n createTypes(PLASMIC_DATA_TYPE);\n };\n\ninterface LoaderGatsbyPluginOptions extends GatsbyPluginOptions {\n defaultPlasmicPage: string;\n}\n\nexport const createPages: GatsbyNode[\"createPages\"] = async (\n { graphql, actions, reporter }: CreatePagesArgs,\n opts: LoaderGatsbyPluginOptions\n) => {\n const { defaultPlasmicPage } = opts;\n\n const ignorePaths = opts.ignorePaths || [];\n\n if (defaultPlasmicPage) {\n reporter.info(`[Plasmic Loader] - Creating pages`);\n\n const { createPage, deletePage } = actions;\n const result = await graphql<{\n allPlasmicData: { nodes: Array<{ path: string }> };\n }>(`\n query {\n allPlasmicData(filter: { isPage: { eq: true } }) {\n nodes {\n path\n }\n }\n }\n `);\n\n const pages = result.data?.allPlasmicData.nodes;\n if (!pages) {\n reporter.error(`[Plasmic Loader] - GraphQL did not return pages`);\n return;\n }\n\n for (const path of allPaths) {\n deletePage({\n path,\n component: defaultPlasmicPage,\n });\n reporter.verbose(`[Plasmic Loader] - Deleted page ${path}`);\n }\n\n allPaths = [];\n\n for (const page of pages) {\n const path = page.path;\n if (ignorePaths.includes(path) || ignorePaths.includes(path + \"/\")) {\n continue;\n }\n allPaths.push(page.path);\n\n createPage({\n path: page.path,\n component: defaultPlasmicPage,\n context: {},\n });\n reporter.verbose(`[Plasmic Loader] - Created page ${page.path}`);\n }\n }\n};\n", "let secretRequire: NodeRequire | undefined;\ntry {\n // Secretly use require without webpack knowing\n secretRequire = eval(\"require\");\n} catch (err) {\n secretRequire = undefined;\n}\n\nexport default function serverRequire(module: string) {\n if (!secretRequire) {\n throw new Error(\n `Unexpected serverRequire() -- can only do this from a Node server!`\n );\n }\n return secretRequire(module);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["module", "createResolvers", "_a"]
|
|
7
|
+
}
|
package/dist/gatsby-ssr.js
CHANGED
|
@@ -1,55 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
var fulfilled = (value) => {
|
|
22
|
+
try {
|
|
23
|
+
step(generator.next(value));
|
|
24
|
+
} catch (e) {
|
|
25
|
+
reject(e);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var rejected = (value) => {
|
|
29
|
+
try {
|
|
30
|
+
step(generator.throw(value));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// src/gatsby-ssr.ts
|
|
41
|
+
var gatsby_ssr_exports = {};
|
|
42
|
+
__export(gatsby_ssr_exports, {
|
|
43
|
+
fetchServerFiles: () => fetchServerFiles,
|
|
44
|
+
replaceRenderer: () => replaceRenderer
|
|
45
|
+
});
|
|
46
|
+
module.exports = __toCommonJS(gatsby_ssr_exports);
|
|
47
|
+
var import_loader_react = require("@plasmicapp/loader-react");
|
|
48
|
+
var import_server = require("react-dom/server");
|
|
49
|
+
var loadedProjects = /* @__PURE__ */ new Set();
|
|
8
50
|
function fetchServerFiles(opts) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
projects: opts.projects,
|
|
22
|
-
preview: opts.preview,
|
|
23
|
-
host: opts.host,
|
|
24
|
-
platform: "gatsby",
|
|
25
|
-
});
|
|
26
|
-
return [4 /*yield*/, PLASMIC.fetchComponents()];
|
|
27
|
-
case 1:
|
|
28
|
-
components = _a.sent();
|
|
29
|
-
return [4 /*yield*/, PLASMIC.maybeFetchComponentData.apply(PLASMIC, components)];
|
|
30
|
-
case 2:
|
|
31
|
-
_a.sent();
|
|
32
|
-
projectKeys.forEach(function (key) { return loadedProjects.add(key); });
|
|
33
|
-
_a.label = 3;
|
|
34
|
-
case 3: return [2 /*return*/];
|
|
35
|
-
}
|
|
51
|
+
return __async(this, null, function* () {
|
|
52
|
+
if ((opts == null ? void 0 : opts.projects) && Array.isArray(opts.projects) && opts.projects.every((p) => !!p.token && !!p.id)) {
|
|
53
|
+
const projectKeys = opts.projects.map(
|
|
54
|
+
(project) => `${project.id}@${project.version}:${project.token}`
|
|
55
|
+
);
|
|
56
|
+
if (projectKeys.some((key) => !loadedProjects.has(key))) {
|
|
57
|
+
loadedProjects.clear();
|
|
58
|
+
const PLASMIC = (0, import_loader_react.initPlasmicLoader)({
|
|
59
|
+
projects: opts.projects,
|
|
60
|
+
preview: opts.preview,
|
|
61
|
+
host: opts.host,
|
|
62
|
+
platform: "gatsby"
|
|
36
63
|
});
|
|
37
|
-
|
|
64
|
+
const components = yield PLASMIC.fetchComponents();
|
|
65
|
+
yield PLASMIC.maybeFetchComponentData(...components);
|
|
66
|
+
projectKeys.forEach((key) => loadedProjects.add(key));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
38
70
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
switch (_b.label) {
|
|
45
|
-
case 0: return [4 /*yield*/, fetchServerFiles(opts)];
|
|
46
|
-
case 1:
|
|
47
|
-
_b.sent();
|
|
48
|
-
replaceBodyHTMLString((0, server_1.renderToString)(bodyComponent));
|
|
49
|
-
return [2 /*return*/];
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
|
-
exports.replaceRenderer = replaceRenderer;
|
|
55
|
-
//# sourceMappingURL=gatsby-ssr.js.map
|
|
71
|
+
var replaceRenderer = (_0, _1) => __async(void 0, [_0, _1], function* ({ bodyComponent, replaceBodyHTMLString }, opts) {
|
|
72
|
+
yield fetchServerFiles(opts);
|
|
73
|
+
replaceBodyHTMLString((0, import_server.renderToString)(bodyComponent));
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=gatsby-ssr.js.map
|
package/dist/gatsby-ssr.js.map
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/gatsby-ssr.ts"],
|
|
4
|
+
"sourcesContent": ["import { initPlasmicLoader } from \"@plasmicapp/loader-react\";\nimport { renderToString } from \"react-dom/server\";\nimport type { GatsbyPluginOptions } from \"./gatsby-node\";\n\nlet loadedProjects = new Set<string>();\n\nexport async function fetchServerFiles(opts: GatsbyPluginOptions) {\n if (\n opts?.projects &&\n Array.isArray(opts.projects) &&\n opts.projects.every((p) => !!p.token && !!p.id)\n ) {\n const projectKeys = opts.projects.map(\n (project) => `${project.id}@${project.version}:${project.token}`\n );\n if (projectKeys.some((key) => !loadedProjects.has(key))) {\n loadedProjects.clear();\n const PLASMIC = initPlasmicLoader({\n projects: opts.projects,\n preview: opts.preview,\n host: opts.host,\n platform: \"gatsby\",\n });\n const components = await PLASMIC.fetchComponents();\n await PLASMIC.maybeFetchComponentData(...components);\n projectKeys.forEach((key) => loadedProjects.add(key));\n }\n }\n}\n\nexport const replaceRenderer = async (\n { bodyComponent, replaceBodyHTMLString }: any,\n opts: GatsbyPluginOptions\n) => {\n await fetchServerFiles(opts);\n replaceBodyHTMLString(renderToString(bodyComponent));\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAkC;AAClC,oBAA+B;AAG/B,IAAI,iBAAiB,oBAAI,IAAY;AAErC,SAAsB,iBAAiB,MAA2B;AAAA;AAChE,SACE,6BAAM,aACN,MAAM,QAAQ,KAAK,QAAQ,KAC3B,KAAK,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,GAC9C;AACA,YAAM,cAAc,KAAK,SAAS;AAAA,QAChC,CAAC,YAAY,GAAG,QAAQ,MAAM,QAAQ,WAAW,QAAQ;AAAA,MAC3D;AACA,UAAI,YAAY,KAAK,CAAC,QAAQ,CAAC,eAAe,IAAI,GAAG,CAAC,GAAG;AACvD,uBAAe,MAAM;AACrB,cAAM,cAAU,uCAAkB;AAAA,UAChC,UAAU,KAAK;AAAA,UACf,SAAS,KAAK;AAAA,UACd,MAAM,KAAK;AAAA,UACX,UAAU;AAAA,QACZ,CAAC;AACD,cAAM,aAAa,MAAM,QAAQ,gBAAgB;AACjD,cAAM,QAAQ,wBAAwB,GAAG,UAAU;AACnD,oBAAY,QAAQ,CAAC,QAAQ,eAAe,IAAI,GAAG,CAAC;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AAAA;AAEO,IAAM,kBAAkB,CAC7B,IACA,OACG,iBAFH,IACA,KACG,WAFH,EAAE,eAAe,sBAAsB,GACvC,MACG;AACH,QAAM,iBAAiB,IAAI;AAC3B,4BAAsB,8BAAe,aAAa,CAAC;AACrD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { CodeComponentMeta, ComponentMeta, ComponentRenderData,
|
|
1
|
+
export type { CodeComponentMeta, ComponentMeta, ComponentRenderData, InitOptions, PageMeta, PageMetadata, PlasmicTranslator, PrimitiveType, PropType, TokenRegistration, } from "@plasmicapp/loader-react";
|
|
2
|
+
export { DataCtxReader, DataProvider, PageParamsProvider, PlasmicCanvasContext, PlasmicCanvasHost, PlasmicComponent, PlasmicRootProvider, repeatedElement, useDataEnv, usePlasmicCanvasContext, usePlasmicComponent, useSelector, useSelectors, } from "@plasmicapp/loader-react";
|
|
2
3
|
export { createPages, createResolvers, sourceNodes } from "./gatsby-node";
|
|
3
4
|
export { replaceRenderer } from "./gatsby-ssr";
|
|
4
5
|
export { initPlasmicLoader } from "./loader";
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,374 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
var __export = (target, all) => {
|
|
26
|
+
for (var name in all)
|
|
27
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
28
|
+
};
|
|
29
|
+
var __copyProps = (to, from, except, desc) => {
|
|
30
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
31
|
+
for (let key of __getOwnPropNames(from))
|
|
32
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
33
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
34
|
+
}
|
|
35
|
+
return to;
|
|
36
|
+
};
|
|
37
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
38
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
39
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
40
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
41
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
42
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
43
|
+
mod
|
|
44
|
+
));
|
|
45
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
46
|
+
var __async = (__this, __arguments, generator) => {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
var fulfilled = (value) => {
|
|
49
|
+
try {
|
|
50
|
+
step(generator.next(value));
|
|
51
|
+
} catch (e) {
|
|
52
|
+
reject(e);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
var rejected = (value) => {
|
|
56
|
+
try {
|
|
57
|
+
step(generator.throw(value));
|
|
58
|
+
} catch (e) {
|
|
59
|
+
reject(e);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
63
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// src/index.ts
|
|
68
|
+
var src_exports = {};
|
|
69
|
+
__export(src_exports, {
|
|
70
|
+
DataCtxReader: () => import_loader_react4.DataCtxReader,
|
|
71
|
+
DataProvider: () => import_loader_react4.DataProvider,
|
|
72
|
+
PageParamsProvider: () => import_loader_react4.PageParamsProvider,
|
|
73
|
+
PlasmicCanvasContext: () => import_loader_react4.PlasmicCanvasContext,
|
|
74
|
+
PlasmicCanvasHost: () => import_loader_react4.PlasmicCanvasHost,
|
|
75
|
+
PlasmicComponent: () => import_loader_react4.PlasmicComponent,
|
|
76
|
+
PlasmicRootProvider: () => import_loader_react4.PlasmicRootProvider,
|
|
77
|
+
createPages: () => createPages,
|
|
78
|
+
createResolvers: () => createResolvers,
|
|
79
|
+
initPlasmicLoader: () => initPlasmicLoader3,
|
|
80
|
+
repeatedElement: () => import_loader_react4.repeatedElement,
|
|
81
|
+
replaceRenderer: () => replaceRenderer,
|
|
82
|
+
sourceNodes: () => sourceNodes,
|
|
83
|
+
useDataEnv: () => import_loader_react4.useDataEnv,
|
|
84
|
+
usePlasmicCanvasContext: () => import_loader_react4.usePlasmicCanvasContext,
|
|
85
|
+
usePlasmicComponent: () => import_loader_react4.usePlasmicComponent,
|
|
86
|
+
useSelector: () => import_loader_react4.useSelector,
|
|
87
|
+
useSelectors: () => import_loader_react4.useSelectors
|
|
88
|
+
});
|
|
89
|
+
module.exports = __toCommonJS(src_exports);
|
|
90
|
+
var import_loader_react4 = require("@plasmicapp/loader-react");
|
|
91
|
+
|
|
92
|
+
// src/gatsby-node.ts
|
|
93
|
+
var import_loader_react = require("@plasmicapp/loader-react");
|
|
94
|
+
|
|
95
|
+
// src/server-require.ts
|
|
96
|
+
var secretRequire;
|
|
97
|
+
try {
|
|
98
|
+
secretRequire = eval("require");
|
|
99
|
+
} catch (err) {
|
|
100
|
+
secretRequire = void 0;
|
|
101
|
+
}
|
|
102
|
+
function serverRequire(module2) {
|
|
103
|
+
if (!secretRequire) {
|
|
104
|
+
throw new Error(
|
|
105
|
+
`Unexpected serverRequire() -- can only do this from a Node server!`
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
return secretRequire(module2);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// src/gatsby-node.ts
|
|
112
|
+
var PLASMIC_NODE_NAME = "plasmicData";
|
|
113
|
+
var PLASMIC_DATA_TYPE = `
|
|
114
|
+
type ${PLASMIC_NODE_NAME} implements Node {
|
|
115
|
+
name: String!
|
|
116
|
+
displayName: String!
|
|
117
|
+
projectId: String!
|
|
118
|
+
path: String
|
|
119
|
+
isPage: Boolean!
|
|
120
|
+
renderData: JSON!
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
type Query {
|
|
124
|
+
plasmicComponents(componentNames: [String]!): JSON
|
|
125
|
+
plasmicOptions: JSON
|
|
126
|
+
}
|
|
127
|
+
`;
|
|
128
|
+
var SOURCE_WAIT_TIME = 3e3;
|
|
129
|
+
var SOURCE_MAX_WAIT_TIME = 1e4;
|
|
130
|
+
var allPaths = [];
|
|
131
|
+
var sourceNodes = (_0, _1) => __async(void 0, [_0, _1], function* ({ actions, createContentDigest, reporter }, opts) {
|
|
132
|
+
const { createNode, deleteNode } = actions;
|
|
133
|
+
let allComponents = [];
|
|
134
|
+
const refreshData = () => __async(void 0, null, function* () {
|
|
135
|
+
reporter.info(`[Plasmic Loader] - Creating nodes`);
|
|
136
|
+
const PLASMIC = (0, import_loader_react.initPlasmicLoader)({
|
|
137
|
+
projects: opts.projects,
|
|
138
|
+
preview: opts.preview,
|
|
139
|
+
host: opts.host,
|
|
140
|
+
platform: "gatsby"
|
|
141
|
+
});
|
|
142
|
+
const components = yield PLASMIC.fetchComponents();
|
|
143
|
+
for (const component of allComponents) {
|
|
144
|
+
const hasComponent = components.some((c) => c.name === component.name);
|
|
145
|
+
if (!hasComponent) {
|
|
146
|
+
deleteNode(component);
|
|
147
|
+
reporter.verbose(`[Plasmic Loader] - Deleted node ${component.name}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
allComponents = [];
|
|
151
|
+
for (const component of components) {
|
|
152
|
+
const renderData = yield PLASMIC.fetchComponentData({
|
|
153
|
+
name: component.name,
|
|
154
|
+
projectId: component.projectId
|
|
155
|
+
});
|
|
156
|
+
const curComponent = __spreadProps(__spreadValues({}, component), {
|
|
157
|
+
renderData
|
|
158
|
+
});
|
|
159
|
+
const componentMeta = {
|
|
160
|
+
// We use the same id as curComponent.id since loader-react might
|
|
161
|
+
// expect the id to match plasmic component uuid.
|
|
162
|
+
// id: getNodeId(component.projectId, component.name),
|
|
163
|
+
parent: null,
|
|
164
|
+
children: [],
|
|
165
|
+
internal: {
|
|
166
|
+
type: PLASMIC_NODE_NAME,
|
|
167
|
+
contentDigest: createContentDigest(curComponent)
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const componentNode = Object.assign({}, curComponent, componentMeta);
|
|
171
|
+
createNode(componentNode);
|
|
172
|
+
reporter.verbose(
|
|
173
|
+
`[Plasmic Loader] - Created component node ${component.name}`
|
|
174
|
+
);
|
|
175
|
+
allComponents.push(componentNode);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
if (process.env.NODE_ENV !== "production") {
|
|
179
|
+
const debounce = serverRequire("lodash/debounce");
|
|
180
|
+
const triggerSourcing = debounce(refreshData, SOURCE_WAIT_TIME, {
|
|
181
|
+
maxWait: SOURCE_MAX_WAIT_TIME
|
|
182
|
+
});
|
|
183
|
+
try {
|
|
184
|
+
const PlasmicRemoteChangeWatcher = serverRequire("@plasmicapp/watcher").PlasmicRemoteChangeWatcher;
|
|
185
|
+
const watcher = new PlasmicRemoteChangeWatcher({
|
|
186
|
+
projects: opts.projects,
|
|
187
|
+
host: opts.host
|
|
188
|
+
});
|
|
189
|
+
watcher.subscribe({
|
|
190
|
+
onUpdate: () => {
|
|
191
|
+
if (opts.preview) {
|
|
192
|
+
triggerSourcing();
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
onPublish: () => {
|
|
196
|
+
if (!opts.preview) {
|
|
197
|
+
triggerSourcing();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
} catch (e) {
|
|
202
|
+
console.warn("Couldn't subscribe to Plasmic changes", e);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
yield refreshData();
|
|
206
|
+
});
|
|
207
|
+
function getAllNodes(nodeModel, type) {
|
|
208
|
+
return __async(this, null, function* () {
|
|
209
|
+
try {
|
|
210
|
+
const { entries } = yield nodeModel.findAll({ type });
|
|
211
|
+
return Array.from(entries);
|
|
212
|
+
} catch (_) {
|
|
213
|
+
return nodeModel.getAllNodes({ type });
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
var createResolvers = ({ createResolvers: createResolvers2 }, opts) => {
|
|
218
|
+
createResolvers2({
|
|
219
|
+
Query: {
|
|
220
|
+
plasmicComponents: {
|
|
221
|
+
type: "JSON",
|
|
222
|
+
args: {
|
|
223
|
+
componentNames: `[String]!`
|
|
224
|
+
},
|
|
225
|
+
resolve(_source, args, context, _info) {
|
|
226
|
+
return __async(this, null, function* () {
|
|
227
|
+
var _a2;
|
|
228
|
+
const { componentNames } = args;
|
|
229
|
+
const components = yield getAllNodes(
|
|
230
|
+
context.nodeModel,
|
|
231
|
+
PLASMIC_NODE_NAME
|
|
232
|
+
);
|
|
233
|
+
const bundles = [];
|
|
234
|
+
const compMetas = [];
|
|
235
|
+
for (const component of components) {
|
|
236
|
+
if (componentNames.includes(component.name) || componentNames.includes(component.displayName) || !!(component.path && componentNames.some(
|
|
237
|
+
(lookup) => (0, import_loader_react.matchesPagePath)(component.path, lookup)
|
|
238
|
+
))) {
|
|
239
|
+
const bundle = (_a2 = component.renderData) == null ? void 0 : _a2.bundle;
|
|
240
|
+
if (bundle) {
|
|
241
|
+
bundles.push(bundle);
|
|
242
|
+
let meta = component;
|
|
243
|
+
if (component.path) {
|
|
244
|
+
for (const lookup of componentNames) {
|
|
245
|
+
const match = (0, import_loader_react.matchesPagePath)(component.path, lookup);
|
|
246
|
+
if (match) {
|
|
247
|
+
meta = __spreadProps(__spreadValues({}, meta), { params: match.params });
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
compMetas.push(meta);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
const renderData = (0, import_loader_react.convertBundlesToComponentRenderData)(
|
|
257
|
+
bundles,
|
|
258
|
+
compMetas
|
|
259
|
+
);
|
|
260
|
+
renderData == null ? void 0 : renderData.entryCompMetas.sort(
|
|
261
|
+
(meta1, meta2) => (
|
|
262
|
+
// We sort the matched component metas by the number of path params, so
|
|
263
|
+
// if there are two pages `/products/foo` and `/products/[slug]`,
|
|
264
|
+
// the first one will have higher precedence.
|
|
265
|
+
Array.from(Object.keys(meta1.params || {})).length - Array.from(Object.keys(meta2.params || {})).length
|
|
266
|
+
)
|
|
267
|
+
);
|
|
268
|
+
return renderData;
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
plasmicOptions: {
|
|
273
|
+
type: "JSON",
|
|
274
|
+
resolve() {
|
|
275
|
+
return {
|
|
276
|
+
projects: opts.projects,
|
|
277
|
+
preview: opts.preview,
|
|
278
|
+
host: opts.host
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
};
|
|
285
|
+
var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, actions, reporter }, opts) {
|
|
286
|
+
var _a;
|
|
287
|
+
const { defaultPlasmicPage } = opts;
|
|
288
|
+
const ignorePaths = opts.ignorePaths || [];
|
|
289
|
+
if (defaultPlasmicPage) {
|
|
290
|
+
reporter.info(`[Plasmic Loader] - Creating pages`);
|
|
291
|
+
const { createPage, deletePage } = actions;
|
|
292
|
+
const result = yield graphql(`
|
|
293
|
+
query {
|
|
294
|
+
allPlasmicData(filter: { isPage: { eq: true } }) {
|
|
295
|
+
nodes {
|
|
296
|
+
path
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
`);
|
|
301
|
+
const pages = (_a = result.data) == null ? void 0 : _a.allPlasmicData.nodes;
|
|
302
|
+
if (!pages) {
|
|
303
|
+
reporter.error(`[Plasmic Loader] - GraphQL did not return pages`);
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
for (const path of allPaths) {
|
|
307
|
+
deletePage({
|
|
308
|
+
path,
|
|
309
|
+
component: defaultPlasmicPage
|
|
310
|
+
});
|
|
311
|
+
reporter.verbose(`[Plasmic Loader] - Deleted page ${path}`);
|
|
312
|
+
}
|
|
313
|
+
allPaths = [];
|
|
314
|
+
for (const page of pages) {
|
|
315
|
+
const path = page.path;
|
|
316
|
+
if (ignorePaths.includes(path) || ignorePaths.includes(path + "/")) {
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
allPaths.push(page.path);
|
|
320
|
+
createPage({
|
|
321
|
+
path: page.path,
|
|
322
|
+
component: defaultPlasmicPage,
|
|
323
|
+
context: {}
|
|
324
|
+
});
|
|
325
|
+
reporter.verbose(`[Plasmic Loader] - Created page ${page.path}`);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
// src/gatsby-ssr.ts
|
|
331
|
+
var import_loader_react2 = require("@plasmicapp/loader-react");
|
|
332
|
+
var import_server = require("react-dom/server");
|
|
333
|
+
var loadedProjects = /* @__PURE__ */ new Set();
|
|
334
|
+
function fetchServerFiles(opts) {
|
|
335
|
+
return __async(this, null, function* () {
|
|
336
|
+
if ((opts == null ? void 0 : opts.projects) && Array.isArray(opts.projects) && opts.projects.every((p) => !!p.token && !!p.id)) {
|
|
337
|
+
const projectKeys = opts.projects.map(
|
|
338
|
+
(project) => `${project.id}@${project.version}:${project.token}`
|
|
339
|
+
);
|
|
340
|
+
if (projectKeys.some((key) => !loadedProjects.has(key))) {
|
|
341
|
+
loadedProjects.clear();
|
|
342
|
+
const PLASMIC = (0, import_loader_react2.initPlasmicLoader)({
|
|
343
|
+
projects: opts.projects,
|
|
344
|
+
preview: opts.preview,
|
|
345
|
+
host: opts.host,
|
|
346
|
+
platform: "gatsby"
|
|
347
|
+
});
|
|
348
|
+
const components = yield PLASMIC.fetchComponents();
|
|
349
|
+
yield PLASMIC.maybeFetchComponentData(...components);
|
|
350
|
+
projectKeys.forEach((key) => loadedProjects.add(key));
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
var replaceRenderer = (_0, _1) => __async(void 0, [_0, _1], function* ({ bodyComponent, replaceBodyHTMLString }, opts) {
|
|
356
|
+
yield fetchServerFiles(opts);
|
|
357
|
+
replaceBodyHTMLString((0, import_server.renderToString)(bodyComponent));
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
// src/loader.ts
|
|
361
|
+
var import_loader_react3 = require("@plasmicapp/loader-react");
|
|
362
|
+
var Gatsby = __toESM(require("gatsby"));
|
|
363
|
+
function initPlasmicLoader3(opts) {
|
|
364
|
+
const loader = (0, import_loader_react3.initPlasmicLoader)(__spreadProps(__spreadValues({
|
|
365
|
+
onClientSideFetch: "warn"
|
|
366
|
+
}, opts), {
|
|
367
|
+
platform: "gatsby"
|
|
368
|
+
}));
|
|
369
|
+
loader.registerModules({
|
|
370
|
+
gatsby: Gatsby
|
|
371
|
+
});
|
|
372
|
+
return loader;
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=index.js.map
|