kazupon / knitwork

Utilities to generate JavaScript code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🧶 knitwork

npm version npm downloads Github Actions Codecov

Utilities to generate JavaScript code.

Install

# npm
npm install knitwork

# yarn
yarn install knitwork

# pnpm
pnpm install knitwork

Usage

Generating ESM syntax:

import { genImport, genExport } from 'knitwork'

// import { foo } from "pkg"
// import foo from "pkg"
console.log(genImport('pkg', 'foo'))

// import { a, b } from "pkg"
console.log(genImport('pkg', 'foo'))
console.log(genImport('pkg', ['a', 'b']))

// import { foo as bar } from "pkg"
console.log(genImport('pkg', { name: 'foo', as: 'bar' }))
console.log(genImport('pkg', [{ name: 'foo', as: 'bar' }]))

// export foo from "pkg"
console.log(genExport('pkg', 'foo'))

// export { a, b } from "pkg"
console.log(genExport('pkg', ['a', 'b']))

// export * as bar from "pkg"
console.log(genExport('pkg', { name: '*foo*', as: 'bar' }))

Serializing JS objects:

import { genObjectFromRaw, genObjectFromRawEntries, genArrayFromRaw } from 'knitwork'

// { test: () => import("pkg") }
console.log(genObjectFromRaw({ test: '() => import("pkg")' }))

// { test: () => import("pkg") }
console.log(genObjectFromRaw([ ['test', '() => import("pkg")'] ]))

console.log(genObjectFromRawEntries(entries))

// [ 1, 2, () => import("pkg") ]
console.log(genArrayFromRaw(['1', '2', '() => import("pkg")']))

💻 Development

  • Clone this repository
  • Enable Corepack using corepack enable (use npm i -g corepack for Node.js < 16.10)
  • Install dependencies using yarn install
  • Run interactive tests using yarn dev

License

Made with 💛

Published under MIT License.

About

Utilities to generate JavaScript code

License:MIT License


Languages

Language:TypeScript 100.0%