UNPKG

@formatjs/cli

Version:

A CLI for formatjs.

38 lines (37 loc) 1.3 kB
import { fileURLToPath as _furl } from "node:url"; import { dirname as _dname } from "node:path"; _dname(_furl(import.meta.url)); import { preprocess, traverse } from "@glimmer/syntax"; //#region packages/cli-lib/hbs_extractor.ts function extractText(node, fileName, options) { if (!options.onMsgExtracted) return; if (!options.overrideIdFn) return; if (node.path.type !== "PathExpression") return; if (["format-message", "formatMessage"].includes(node.path.original)) { let [first, second] = node.params; if (first.type !== "StringLiteral") return; let message = first?.value; let desc; if (second?.type === "StringLiteral") desc = second.value?.trim().replace(/\s+/gm, " "); let defaultMessage = message?.trim().replace(/\s+/gm, " "); let id = typeof options.overrideIdFn === "string" ? options.overrideIdFn : options.overrideIdFn(void 0, defaultMessage, desc, fileName); options.onMsgExtracted(fileName, [{ id, defaultMessage, description: desc }]); } } function parseFile(source, fileName, options) { traverse(preprocess(source), { MustacheStatement(node) { extractText(node, fileName, options); }, SubExpression(node) { extractText(node, fileName, options); } }); } //#endregion export { parseFile }; //# sourceMappingURL=hbs_extractor-DC74dtk6.js.map