@wshcmx/cli
Version:
Набор CLI-инструментов предназначен для автоматизации сборки и отслеживания изменений в исходном коде с последующей транспиляцией в синтаксис WebSoftHCM.
17 lines (16 loc) • 771 B
JavaScript
import ts from 'typescript';
export function transformNamespaces() {
return (context) => (sourceFile) => {
function visit(node) {
if (ts.isModuleDeclaration(node) && (node.flags & ts.NodeFlags.Namespace)) {
if (node.body && ts.isModuleBlock(node.body)) {
const statements = node.body.statements.map((statement) => ts.visitNode(statement, visit));
const customString = ts.factory.createExpressionStatement(ts.factory.createStringLiteral(`META:NAMESPACE:${node.name.text}`));
node = [customString, ...statements];
}
}
return ts.visitEachChild(node, visit, context);
}
return ts.visitNode(sourceFile, visit);
};
}