Skip to content

Generated parameterized node factories from TypeScript source strings

License

Notifications You must be signed in to change notification settings

marionebl/ts-transform-creator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ts-transform-creator

⚠️ 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.

Installation

yarn add -D ts-transform-creator

Usage

// 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!")]
    )
  );

Supported Nodes

  • StringLiteral
  • Identifier
  • ReturnStatement
  • Block
  • ConciseBody
  • ArrayLiteralExpression
  • ObjectExpression
  • NumericLiteral
  • Node[]

License

MIT. Copyright 2019 - present Mario Nebl

About

Generated parameterized node factories from TypeScript source strings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published