@plasmicapp/loader-gatsby 1.0.314 → 1.0.316
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.js +14 -2
- package/dist/gatsby-node.js.map +2 -2
- package/dist/index.js +14 -2
- package/dist/index.js.map +2 -2
- package/package.json +3 -3
package/dist/gatsby-node.js
CHANGED
|
@@ -261,7 +261,7 @@ var createSchemaCustomization = ({ actions }) => {
|
|
|
261
261
|
const { createTypes } = actions;
|
|
262
262
|
createTypes(PLASMIC_DATA_TYPE);
|
|
263
263
|
};
|
|
264
|
-
var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, actions, reporter }, opts) {
|
|
264
|
+
var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, actions, reporter, store }, opts) {
|
|
265
265
|
var _a;
|
|
266
266
|
const { defaultPlasmicPage } = opts;
|
|
267
267
|
const ignorePaths = opts.ignorePaths || [];
|
|
@@ -282,7 +282,19 @@ var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, ac
|
|
|
282
282
|
reporter.error(`[Plasmic Loader] - GraphQL did not return pages`);
|
|
283
283
|
return;
|
|
284
284
|
}
|
|
285
|
-
for (const
|
|
285
|
+
for (const originalPath of allPaths) {
|
|
286
|
+
let path = originalPath;
|
|
287
|
+
try {
|
|
288
|
+
const storedPages = store.getState().pages;
|
|
289
|
+
if (!storedPages.get(path)) {
|
|
290
|
+
path = path.match(/\w\/$/) ? path.replace(/\/$/, "") : `${path}/`;
|
|
291
|
+
if (!storedPages.get(path)) {
|
|
292
|
+
path = originalPath;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
} catch (e) {
|
|
296
|
+
path = originalPath;
|
|
297
|
+
}
|
|
286
298
|
deletePage({
|
|
287
299
|
path,
|
|
288
300
|
component: defaultPlasmicPage
|
package/dist/gatsby-node.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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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
|
|
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, store }: 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 originalPath of allPaths) {\n // `deletePage` might throw if the path is not in the expected format.\n // We first check if the pages include the original path, and, if not,\n // we assume it's due to an extra / missing trailing slash and try again.\n let path = originalPath;\n try {\n // Store is considered private API so use it only inside try-catch\n const storedPages = store.getState().pages;\n if (!storedPages.get(path)) {\n path = path.match(/\\w\\/$/) ? path.replace(/\\/$/, \"\") : `${path}/`;\n if (!storedPages.get(path)) {\n path = originalPath;\n }\n }\n } catch {\n path = originalPath;\n }\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
6
|
"names": ["module", "createResolvers", "_a"]
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -282,7 +282,7 @@ var createResolvers = ({ createResolvers: createResolvers2 }, opts) => {
|
|
|
282
282
|
}
|
|
283
283
|
});
|
|
284
284
|
};
|
|
285
|
-
var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, actions, reporter }, opts) {
|
|
285
|
+
var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, actions, reporter, store }, opts) {
|
|
286
286
|
var _a;
|
|
287
287
|
const { defaultPlasmicPage } = opts;
|
|
288
288
|
const ignorePaths = opts.ignorePaths || [];
|
|
@@ -303,7 +303,19 @@ var createPages = (_0, _1) => __async(void 0, [_0, _1], function* ({ graphql, ac
|
|
|
303
303
|
reporter.error(`[Plasmic Loader] - GraphQL did not return pages`);
|
|
304
304
|
return;
|
|
305
305
|
}
|
|
306
|
-
for (const
|
|
306
|
+
for (const originalPath of allPaths) {
|
|
307
|
+
let path = originalPath;
|
|
308
|
+
try {
|
|
309
|
+
const storedPages = store.getState().pages;
|
|
310
|
+
if (!storedPages.get(path)) {
|
|
311
|
+
path = path.match(/\w\/$/) ? path.replace(/\/$/, "") : `${path}/`;
|
|
312
|
+
if (!storedPages.get(path)) {
|
|
313
|
+
path = originalPath;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
} catch (e) {
|
|
317
|
+
path = originalPath;
|
|
318
|
+
}
|
|
307
319
|
deletePage({
|
|
308
320
|
path,
|
|
309
321
|
component: defaultPlasmicPage
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/gatsby-node.ts", "../src/server-require.ts", "../src/gatsby-ssr.ts", "../src/loader.ts"],
|
|
4
|
-
"sourcesContent": ["export type {\n CodeComponentMeta,\n ComponentMeta,\n ComponentRenderData,\n InitOptions,\n PageMeta,\n PageMetadata,\n PlasmicTranslator,\n PropType,\n TokenRegistration,\n} from \"@plasmicapp/loader-react\";\nexport {\n // Data context helpers.\n DataCtxReader,\n DataProvider,\n PageParamsProvider,\n PlasmicCanvasContext,\n PlasmicCanvasHost,\n PlasmicComponent,\n PlasmicRootProvider,\n repeatedElement,\n useDataEnv,\n usePlasmicCanvasContext,\n usePlasmicComponent,\n useSelector,\n useSelectors,\n} from \"@plasmicapp/loader-react\";\nexport { createPages, createResolvers, sourceNodes } from \"./gatsby-node\";\nexport { replaceRenderer } from \"./gatsby-ssr\";\nexport { initPlasmicLoader } from \"./loader\";\n", "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", "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", "import {\n InitOptions,\n initPlasmicLoader as initPlasmicLoaderReact,\n} from \"@plasmicapp/loader-react\";\nimport * as Gatsby from \"gatsby\";\n\nexport function initPlasmicLoader(opts: InitOptions) {\n const loader = initPlasmicLoaderReact({\n onClientSideFetch: \"warn\",\n ...opts,\n platform: \"gatsby\",\n });\n\n loader.registerModules({\n gatsby: Gatsby,\n });\n\n return loader;\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["export type {\n CodeComponentMeta,\n ComponentMeta,\n ComponentRenderData,\n InitOptions,\n PageMeta,\n PageMetadata,\n PlasmicTranslator,\n PropType,\n TokenRegistration,\n} from \"@plasmicapp/loader-react\";\nexport {\n // Data context helpers.\n DataCtxReader,\n DataProvider,\n PageParamsProvider,\n PlasmicCanvasContext,\n PlasmicCanvasHost,\n PlasmicComponent,\n PlasmicRootProvider,\n repeatedElement,\n useDataEnv,\n usePlasmicCanvasContext,\n usePlasmicComponent,\n useSelector,\n useSelectors,\n} from \"@plasmicapp/loader-react\";\nexport { createPages, createResolvers, sourceNodes } from \"./gatsby-node\";\nexport { replaceRenderer } from \"./gatsby-ssr\";\nexport { initPlasmicLoader } from \"./loader\";\n", "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, store }: 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 originalPath of allPaths) {\n // `deletePage` might throw if the path is not in the expected format.\n // We first check if the pages include the original path, and, if not,\n // we assume it's due to an extra / missing trailing slash and try again.\n let path = originalPath;\n try {\n // Store is considered private API so use it only inside try-catch\n const storedPages = store.getState().pages;\n if (!storedPages.get(path)) {\n path = path.match(/\\w\\/$/) ? path.replace(/\\/$/, \"\") : `${path}/`;\n if (!storedPages.get(path)) {\n path = originalPath;\n }\n }\n } catch {\n path = originalPath;\n }\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", "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", "import {\n InitOptions,\n initPlasmicLoader as initPlasmicLoaderReact,\n} from \"@plasmicapp/loader-react\";\nimport * as Gatsby from \"gatsby\";\n\nexport function initPlasmicLoader(opts: InitOptions) {\n const loader = initPlasmicLoaderReact({\n onClientSideFetch: \"warn\",\n ...opts,\n platform: \"gatsby\",\n });\n\n loader.registerModules({\n gatsby: Gatsby,\n });\n\n return loader;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["initPlasmicLoader", "import_loader_react", "module", "createResolvers", "_a", "import_loader_react", "import_loader_react", "initPlasmicLoader", "initPlasmicLoaderReact"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicapp/loader-gatsby",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.316",
|
|
4
4
|
"types": "./dist/index.d.ts",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@plasmicapp/loader-core": "1.0.115",
|
|
65
|
-
"@plasmicapp/loader-react": "1.0.
|
|
65
|
+
"@plasmicapp/loader-react": "1.0.313",
|
|
66
66
|
"@plasmicapp/watcher": "1.0.78",
|
|
67
67
|
"lodash": "^4.17.21"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "836558afec4417f1ec6ee2e0cdf7ce765f89d8f4"
|
|
70
70
|
}
|