ts-writer
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

Using this package? Please consider donating to support my open source work ❤️
Help ts-writer grow! Star and share this amazing repository with your friends and co-workers!


Kita JS logo


License Codecov Last commit Stars


🧾 Ts Writer

Ts Writer is a simple and lightweight library to generate js and dts files using template strings.

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


Readme

Keywords

none

Package Sidebar

Install

npm i ts-writer

Weekly Downloads

104

Version

1.3.1

License

MIT

Unpacked Size

24 kB

Total Files

16

Last publish

Collaborators

  • hazork