1.3.1 • Published 6 months ago

ts-writer v1.3.1

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

Table of Contents

Installing

npm install ts-writer # or yarn add ts-writer
const { TsWriter } = require('ts-writer');
import { TsWriter } from 'ts-writer';
const { TsWriter } = window.tsWriter;
import { TsWriter } from 'https://cdn.skypack.dev/ts-writer@latest';

Getting Started

Ts Writer is a simple and lightweight library to generate js and dts files using template strings. It is very simple to use and has a very small footprint, perfect designed to be used in CLIs and Code generation tools.

There's numerous reasons why code generation increases performance even as javascript is a JIC interpreted language, this library helps you to generate the code you need at runtime in typescript without having to handle transpiling, multiple files, etc.

Generating code

The syntax is pretty simple:

function generate() {
  const { source, types } = ts`${'filename'}

  // Any text here will be put inside the source.content variable above. Under
  // the filename.js file.

  // It will auto remove indentation if you call ts inside a indentation block.
  // like this function.

  exports = 'Hello World';
  exports.__esModule = true;

  ${ts.types}

  // If you want to also generate a filename.d.ts file, you can use the ts.types
  // variable above. Everything after it will be put inside the types variable above.
  // (filename.d.ts)

  export default 'Hello World';
  `;

  // Source result
  source = {
    filename: 'filename.js',
    content:
      '// Any text here will be put inside the source.content variable above. Under\n' +
      '// the filename.js file.\n' +
      '\n' +
      '// It will auto remove indentation if you call ts inside a indentation block.\n' +
      '// like this function.\n' +
      '\n' +
      "exports = 'Hello World';\n" +
      'exports.__esModule = true;'
  };

  // Types result
  types = {
    filename: 'filename.d.ts',
    content:
      '// If you want to also generate a filename.d.ts file, you can use the ts.types\n' +
      '// variable above. Everything after it will be put inside the types variable above.\n' +
      '// (filename.d.ts)\n' +
      '\n' +
      "export default 'Hello World';"
  };
}

Syntax Highlighting

If you are using VSCode, the bierner.comment-tagged-templates extension will highlight the template strings if you put /*ts*/ comment between the ts and its backticks:

example

License

Licensed under the MIT. See LICENSE for more informations.

FOSSA Status

1.3.1

6 months ago

1.3.0

6 months ago

1.2.2

11 months ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago