UNPKG

@paroicms/server

Version:
42 lines 1.59 kB
import { getNodeTypeByName } from "@paroicms/internal-anywhere-lib"; import { createNode } from "../../connector/db-init/init-node-queries.js"; import { createPartNode } from "./part-node.queries.js"; export async function autoCreatePartFieldParts(siteSchema, options) { const { parentNodeId, typeName, language, documentNodeId, tx } = options; const visitedTypeNames = options.visitedTypeNames ?? new Set(); if (visitedTypeNames.has(typeName)) return; visitedTypeNames.add(typeName); const nodeType = getNodeTypeByName(siteSchema, typeName); const fields = nodeType.fields ?? []; const partFieldTypes = fields.filter((f) => f.storedAs === "partField"); for (const field of partFieldTypes) { const listName = `_pf:${field.name}`; const node = await createNode(siteSchema, tx, { parentId: parentNodeId, typeName: field.partType, }); await createPartNode(tx, { nodeId: node.id, listName, documentNodeId, isOrdered: false, lastOrderNum: undefined, }); await tx("PaLNode").insert({ language, nodeId: node.id, ready: true, updatedAt: tx.raw("current_timestamp"), }); await autoCreatePartFieldParts(siteSchema, { parentNodeId: node.id, typeName: field.partType, language, documentNodeId, tx, visitedTypeNames, }); } } //# sourceMappingURL=auto-create-part-field-parts.js.map