Skip to content

Instantly share code, notes, and snippets.

@ksaldana1
Last active January 30, 2019 05:18
Show Gist options
  • Save ksaldana1/eed1c132bc74eacd98efb3d1fcac1ad8 to your computer and use it in GitHub Desktop.
Save ksaldana1/eed1c132bc74eacd98efb3d1fcac1ad8 to your computer and use it in GitHub Desktop.
number-transformer
const source = `
const two = 2;
const four = 4;
`;
function numberTransformer<T extends ts.Node>(): ts.TransformerFactory<T> {
return context => {
const visit: ts.Visitor = node => {
if (ts.isNumericLiteral(node)) {
return ts.createStringLiteral(node.text);
}
return ts.visitEachChild(node, child => visit(child), context);
};
return node => ts.visitNode(node, visit);
};
}
let result = ts.transpileModule(source, {
compilerOptions: { module: ts.ModuleKind.CommonJS },
transformers: { before: [numberTransformer()] }
});
console.log(result.outputText);
/*
var two = "2";
var four = "4";
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment