Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kentcdodds/codegen.macro
https://github.com/kentcdodds/codegen.macro
Last synced: 22 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kentcdodds/codegen.macro
- Owner: kentcdodds
- Created: 2017-08-14T18:34:37.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2021-01-25T23:12:47.000Z (almost 4 years ago)
- Last Synced: 2024-10-03T09:14:58.145Z (about 1 month ago)
- Language: JavaScript
- Size: 4.88 KB
- Stars: 63
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# codegen.macro
[![Babel Macro](https://img.shields.io/badge/babel--plugin--macro-%F0%9F%8E%A3-f5da55.svg?style=flat-square)](https://github.com/kentcdodds/babel-plugin-macros)
This is a [`babel-plugin-macros`][babel-plugin-macros] macro for
[`babel-plugin-codegen`][babel-plugin-codegen].Please see those projects for more information.
## Installation
This module is distributed via [npm][npm] which is bundled with [node][node] and
should be installed as one of your project's `devDependencies`:```
npm install --save-dev codegen.macro
```You'll also need to install and configure
[`babel-plugin-macros`][babel-plugin-macros] if you haven't already.## Usage
Once you've
[configured `babel-plugin-macros`](https://github.com/kentcdodds/babel-plugin-macros/blob/master/other/docs/user.md)
you can import/require `codegen.macro`. For example:```js
import codegen from 'codegen.macro'codegen`module.exports = ['a', 'b', 'c'].map(l => 'export const ' + l + ' = ' + JSON.stringify(l)).join(';')`
↓ ↓ ↓ ↓ ↓ ↓
export const a = "a";
export const b = "b";
export const c = "c";
```You'll find more usage capabilities in the [`babel-plugin-codegen` test
snapshots][snapshots].**Note**:
[`babel-plugin-codegen`][babel-plugin-codegen] allows you to have a few more
APIs than you have with this macro, but this macro comes with all the benefits
of using [`babel-plugin-macros`][babel-plugin-macros] (which you can read about
in the `babel-plugin-macros` docs).[npm]: https://www.npmjs.com
[node]: https://nodejs.org[babel-plugin-macros]: https://github.com/kentcdodds/babel-plugin-macros
[babel-plugin-codegen]: https://github.com/kentcdodds/babel-plugin-codegen
[snapshots]: https://github.com/kentcdodds/babel-plugin-codegen/blob/master/src/__tests__/__snapshots__/macro.js.snap