@ts-intl/dependency
Version:
I18n keys dependency analysis
22 lines (21 loc) • 870 B
JavaScript
;
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;