@intlayer/core
Version:
Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.
1 lines • 2.32 kB
Source Map (JSON)
{"version":3,"sources":["../../../../src/transpiler/markdown/markdown.ts"],"sourcesContent":["import { getContent } from '../../interpreter/getContent/getContent';\nimport {\n ContentNode,\n formatNodeType,\n NodeType,\n type TypedNodeModel,\n} from '../../types/index';\nimport { getMarkdownMetadata } from './getMarkdownMetadata';\n\nexport type MarkdownContentConstructor<\n T extends Record<string, any> = {},\n Content = unknown,\n> = TypedNodeModel<NodeType.Markdown, Content, T>;\n\nexport type MarkdownContent<Content = unknown> = MarkdownContentConstructor<{\n metadata?: Record<string, any>;\n}>;\n\nconst awaitContent = async (content: any) => {\n if (typeof content === 'string' || typeof content === 'object') {\n return content as any;\n }\n\n if (typeof content === 'function') {\n return content();\n }\n if (typeof content.then === 'function') {\n return await content;\n }\n};\n\n/**\n * Function intended to be used to build intlayer dictionaries.\n *\n * Allow to pick a content based on a quantity.\n *\n * Usage:\n *\n * ```ts\n * markdown('## Hello world!');\n * ```\n *\n */\nconst markdown = <Content = unknown>(content: Content): MarkdownContent => {\n const metadata = async () => {\n const awaitedContent = await awaitContent(content);\n\n // @ts-ignore Type instantiation is excessively deep and possibly infinite.\n const flatContent = getContent(awaitedContent, {\n dictionaryKey: '',\n keyPath: [],\n });\n\n if (typeof flatContent === 'string') {\n return getMarkdownMetadata(flatContent);\n }\n };\n\n return formatNodeType(NodeType.Markdown, content as string, {\n metadata,\n });\n};\n\nexport { markdown as md };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA2B;AAC3B,mBAKO;AACP,iCAAoC;AAWpC,MAAM,eAAe,OAAO,YAAiB;AAC3C,MAAI,OAAO,YAAY,YAAY,OAAO,YAAY,UAAU;AAC9D,WAAO;AAAA,EACT;AAEA,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,OAAO,QAAQ,SAAS,YAAY;AACtC,WAAO,MAAM;AAAA,EACf;AACF;AAcA,MAAM,WAAW,CAAoB,YAAsC;AACzE,QAAM,WAAW,YAAY;AAC3B,UAAM,iBAAiB,MAAM,aAAa,OAAO;AAGjD,UAAM,kBAAc,8BAAW,gBAAgB;AAAA,MAC7C,eAAe;AAAA,MACf,SAAS,CAAC;AAAA,IACZ,CAAC;AAED,QAAI,OAAO,gBAAgB,UAAU;AACnC,iBAAO,gDAAoB,WAAW;AAAA,IACxC;AAAA,EACF;AAEA,aAAO,6BAAe,sBAAS,UAAU,SAAmB;AAAA,IAC1D;AAAA,EACF,CAAC;AACH;","names":[]}