Create complex code snippets with just Tagged Templates.
Coldstitch is a small but powerful library that enables JavaScript/TypeScript developers to write from simple to complex code snippets with ease. It uses Tagged Templates and some tricks to make sure the generate code is correct and well indented.
This project was motivated by past experiences dealing with complex code generation on different languages. Some highlights:
- adds imports of referenced types
- serializes JS objects and arrays into the language's notation, with correct indentation
- automatically handles indentation, so templates can be written following the file's indentation
- support different langugae constructs via their own modules:
coldstitch/js
,coldstitch/python
, etc
Coldsnip can be used as a library, as a CLI or through direct integrations with other platforms. Check the getting started guide in order to determine the best option for your needs.
// the simple use-case, it allows you to write it like this:
const snippet = code`
const obj = { hello: "world" };
console.log(obj);
`;
// instead of like this:
const snippet = `const obj = { hello: "world" };
console.log(obj);`;
// or this
const snippet = `
const obj = { hello: "world" };
console.log(obj);
`.trim();
TODO: add more examples and documentation
See the open feature requests for a list of proposed features and join the discussion.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Make sure you read our Code of Conduct
- Fork the project and clone your fork
- Setup the local environment with
npm install
- Create a feature branch (
git checkout -b feature/cool-thing
) or a bugfix branch (git checkout -b fix/bad-bug
) - Commit the changes (
git commit -m 'feat: some meaningful message'
) - Push to the branch (
git push origin feature/cool-thing
) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.