⚠️ WIP - most likely this is not useful to you yet
Generate parameterized node factories from TypeScript source strings
The TypeScript compiler API provides a complete set of methods to create
any node known in the TypeScript AST, e.g. createStringLiteral
.
This is great for transforming nodes to desired transformation results but tends to be verbose for complex scenarios.
yarn add -D ts-transform-creator
// source.ts
import ts from "typescript";
import { tsc } from "ts-transform-creator";
interface HelloWorldProps {
name: string;
}
const createHelloWorld = tsc<HelloWorldProps>`() => ${props =>
ts.createStringLiteral("Hello, " + props.name + "!")}`;
// source.ts
import ts from "typescript";
const createHelloWorld = props =>
ts.createExpressionStatement(
ts.createCall(
ts.createPropertyAccess(
ts.createIdentifier("console"),
ts.createIdentifier("log")
),
undefined,
[ts.createStringLiteral("Hello, " + props.name + "World!")]
)
);
- StringLiteral
- Identifier
- ReturnStatement
- Block
- ConciseBody
- ArrayLiteralExpression
- ObjectExpression
- NumericLiteral
- Node[]
MIT. Copyright 2019 - present Mario Nebl