UNPKG

@ts-intl/dependency

Version:

I18n keys dependency analysis

22 lines (21 loc) 870 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractIntlKeysFromCode = void 0; const typescript_1 = require("typescript"); const utils_1 = require("./utils"); const extractIntlKeysFromCode = (sourceText, opts) => { const sourceFile = (0, typescript_1.createSourceFile)('source.tsx', sourceText, typescript_1.ScriptTarget.Latest); const res = new Set(); const traverse = (node) => { if (node.kind === typescript_1.SyntaxKind.CallExpression) { const key = (0, utils_1.extractIntlKeyArg)(node, opts.argIdx); if (key && (0, utils_1.isIntlCall)(node, opts)) { res.add(key.text); } } (0, typescript_1.forEachChild)(node, traverse); }; traverse(sourceFile); return [...res]; }; exports.extractIntlKeysFromCode = extractIntlKeysFromCode;