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!
🧾 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:
License
Licensed under the MIT. See LICENSE
for more informations.