@wshcmx/cli
Version:
Набор CLI-инструментов предназначен для автоматизации сборки и отслеживания изменений в исходном коде с последующей транспиляцией в синтаксис WebSoftHCM.
20 lines (19 loc) • 876 B
JavaScript
import ts from 'typescript';
export function enumsToObjects() {
return (context) => (sourceFile) => {
function visit(node) {
if (ts.isEnumDeclaration(node)) {
const members = node.members.map((member, index) => {
const name = member.name;
const initializer = member.initializer || ts.factory.createNumericLiteral(index);
return ts.factory.createPropertyAssignment(name, initializer);
});
return ts.factory.createVariableStatement([], [
ts.factory.createVariableDeclaration(node.name, undefined, undefined, ts.factory.createObjectLiteralExpression(members, true))
]);
}
return ts.visitEachChild(node, visit, context);
}
return ts.visitNode(sourceFile, visit);
};
}