@jsverse/transloco-keys-manager
Version:
Extract translatable keys from projects that uses Transloco
17 lines • 859 B
JavaScript
import { tsquery } from '@phenomnomnominal/tsquery';
import { buildKeysFromASTNodes } from './build-keys-from-ast-nodes.js';
export function signalExtractor(ast) {
// workaround from https://github.com/estools/esquery/issues/68
const [importNode] = tsquery(ast, `ImportDeclaration:has([text=/^@(jsverse|ngneat)\\x2Ftransloco/]):has(Identifier[name=translateSignal])`);
if (!importNode) {
return [];
}
const signalName = getSignalName(importNode);
const fns = tsquery(ast, `CallExpression Identifier[text=${signalName}]`);
return buildKeysFromASTNodes(fns, [signalName]);
}
function getSignalName(importNode) {
const [defaultName, alias] = tsquery(importNode, 'ImportSpecifier:has(Identifier[name=translateSignal]) Identifier');
return (alias || defaultName).getText();
}
//# sourceMappingURL=signal.extractor.js.map