UNPKG

@intlayer/core

Version:

Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.

61 lines (59 loc) 1.93 kB
import * as NodeTypes from "@intlayer/types/nodeType"; //#region src/dictionaryManipulator/getDefaultNode.ts const getDefaultNode = (nodeType, locales, content) => { const clonedContent = structuredClone(content); switch (nodeType) { case NodeTypes.TRANSLATION: return { nodeType: NodeTypes.TRANSLATION, [NodeTypes.TRANSLATION]: Object.assign({}, ...locales.map((locale) => ({ [locale]: structuredClone(clonedContent) ?? "" }))) }; case NodeTypes.ENUMERATION: return { nodeType: NodeTypes.ENUMERATION, [NodeTypes.ENUMERATION]: { "1": clonedContent ?? "" } }; case NodeTypes.PLURAL: return { nodeType: NodeTypes.PLURAL, [NodeTypes.PLURAL]: { one: clonedContent ?? "", other: clonedContent ?? "" } }; case NodeTypes.CONDITION: return { nodeType: NodeTypes.CONDITION, [NodeTypes.CONDITION]: { true: clonedContent ?? "", false: clonedContent ?? "" } }; case NodeTypes.INSERTION: return { nodeType: NodeTypes.INSERTION, [NodeTypes.INSERTION]: { insertion: clonedContent ?? "" } }; case NodeTypes.NESTED: return { nodeType: NodeTypes.NESTED, [NodeTypes.NESTED]: { dictionaryKey: "" } }; case NodeTypes.MARKDOWN: return { nodeType: NodeTypes.MARKDOWN, [NodeTypes.MARKDOWN]: clonedContent ?? "" }; case NodeTypes.HTML: return { nodeType: NodeTypes.HTML, [NodeTypes.HTML]: clonedContent ?? "", customComponents: [] }; case NodeTypes.FILE: return { nodeType: NodeTypes.FILE, [NodeTypes.FILE]: clonedContent ?? "" }; case NodeTypes.OBJECT: return { newKey: clonedContent ?? "" }; case NodeTypes.ARRAY: return [clonedContent ?? ""]; case NodeTypes.TEXT: return clonedContent ?? ""; case NodeTypes.NUMBER: return clonedContent ?? 0; case NodeTypes.BOOLEAN: return clonedContent ?? true; default: return clonedContent ?? ""; } }; //#endregion export { getDefaultNode }; //# sourceMappingURL=getDefaultNode.mjs.map