Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kitajs/ts-writer
Ts Writer is a simple and lightweight library to generate js and dts files using template strings.
https://github.com/kitajs/ts-writer
code dts generator js kita source strings template ts writer
Last synced: about 14 hours ago
JSON representation
Ts Writer is a simple and lightweight library to generate js and dts files using template strings.
- Host: GitHub
- URL: https://github.com/kitajs/ts-writer
- Owner: kitajs
- License: mit
- Created: 2023-11-02T03:55:55.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-20T18:59:42.000Z (6 months ago)
- Last Synced: 2024-08-10T03:16:04.377Z (3 months ago)
- Topics: code, dts, generator, js, kita, source, strings, template, ts, writer
- Language: TypeScript
- Homepage:
- Size: 175 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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
- [Table of Contents](#table-of-contents)
- [Installing](#installing)
- [Getting Started](#getting-started)
- [Generating code](#generating-code)
- [Syntax Highlighting](#syntax-highlighting)
- [License](#license)
## Installing
```sh
npm install ts-writer # or yarn add ts-writer
``````js
const { TsWriter } = require('ts-writer');
import { TsWriter } from 'ts-writer';
``````js
const { TsWriter } = window.tsWriter;
``````js
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:
```ts
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`](https://marketplace.visualstudio.com/items?itemName=bierner.comment-tagged-templates)
extension will highlight the template strings if you put `/*ts*/` comment between the `ts`
and its backticks:![example](assets/syntax-highlighting.png)
## License
Licensed under the **MIT**. See [`LICENSE`](LICENSE) for more informations.