Utilities to generate JavaScript code.
# ✨ Auto-detect
npx nypm install knitwork
# npm
npm install knitwork
# yarn
yarn add knitwork
# pnpm
pnpm install knitwork
# bun
bun install knitwork
ESM (Node.js, Bun)
import {} from "knitwork";
CommonJS (Legacy Node.js)
const {} = require("knitwork");
CDN (Deno, Bun and Browsers)
import {} from "https://esm.sh/knitwork";
Generate an ESM dynamic import()
statement.
Generate an ESM export
statement.
Generate an ESM import
statement.
Example:
genImport("pkg", "foo");
// ~> `import foo from "pkg";`
genImport("pkg", ["foo"]);
// ~> `import { foo } from "pkg";`
genImport("pkg", ["a", "b"]);
// ~> `import { a, b } from "pkg`;
genImport("pkg", [{ name: "default", as: "bar" }]);
// ~> `import { default as bar } from "pkg`;
genImport("pkg", [{ name: "foo", as: "bar" }]);
// ~> `import { foo as bar } from "pkg`;
genImport("pkg", "foo", { attributes: { type: "json" } });
// ~> `import foo from "pkg" with { type: "json" };
genExport("pkg", "foo");
// ~> `export foo from "pkg";`
genExport("pkg", ["a", "b"]);
// ~> `export { a, b } from "pkg";`
// export * as bar from "pkg"
genExport("pkg", { name: "*", as: "bar" });
// ~> `export * as bar from "pkg";`
Generate an ESM import type
statement.
Serialize an array to a string.
Example:
genArrayFromRaw([1, 2, 3])
// ~> `[1, 2, 3]`
Serialize an object to a string.
Example:
genObjectFromValues({ foo: "bar", test: '() => import("pkg")' })
// ~> `{ foo: bar, test: () => import("pkg") }`
Serialize an array of key-value pairs to a string.
Serialize an object to a string.
Example:
genObjectFromValues({ foo: "bar" })
// ~> `{ foo: "bar" }`
Escape a string for use in a javascript string.
Generate a safe javascript variable name.
Generate a string with double or single quotes and handle escapes.
Generate typescript declare module
augmentation.
Generate an typescript typeof import()
statement for default import.
Generate typescript interface.
Generate a typescript export type
statement.
Generate typescript object type.
Local development
Published under the MIT license.
Made by @pi0, @danielroe and community 💛
🤖 auto updated with automd