Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
[![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![Github Actions][github-actions-src]][github-actions-href] [![Codecov][codecov-src]][codecov-href]
Utilities to generate JavaScript code.
# npm
npm install knitwork
# yarn
yarn add knitwork
# pnpm
pnpm install knitwork
Generating ESM syntax:
import { genImport, genExport } from 'knitwork'
// import foo from "pkg"
console.log(genImport('pkg', 'foo'))
// import { foo } from "pkg"
console.log(genImport('pkg', ['foo']))
// import { a, b } from "pkg"
console.log(genImport('pkg', ['a', 'b']))
// import foo as bar from "pkg";
console.log(genImport('pkg', { name: 'foo', as: 'bar' }))
// import { foo as bar } from "pkg";
console.log(genImport('pkg', [{ name: 'foo', as: 'bar' }]))
// import foo from "pkg" assert { type: "json" };
console.log(genImport('pkg', 'foo', { assert: { type: 'json' } }))
// 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: '*', as: 'bar' }))
// export foo from "pkg" assert { type: "json" };
console.log(genExport('pkg', 'foo', { assert: { type: 'json' } }))
Generating TS:
import { genInterface, genAugmentation, genInlineTypeImport, genTypeImport, genTypeExport } from 'knitwork'
// interface FooInterface extends A, B {
// name: boolean
// optional?: string
// }
console.log(genInterface('FooInterface', { name: 'boolean', 'optional?': 'string' }, { extends: ['A', 'B'] }))
// declare module "my-module" {
// interface MyInterface {}
// }
console.log(genAugmentation('my-module', { MyInterface: {} }))
// typeof import("my-module").genString'
console.log(genInlineTypeImport('my-module', 'genString'))
// typeof import("my-module").default'
console.log(genInlineTypeImport('my-module'))
// import type { test as value } from "my-module";
console.log(genTypeImport('my-module', [{ name: 'test', as: 'value' }]))
// export type { test } from "my-module";
console.log(genTypeExport('my-module', ['test']))
Serializing JS objects:
import { genObjectFromRaw, genObjectFromRawEntries, genArrayFromRaw } from 'knitwork'
// { test: () => import("pkg") }
console.log(genObjectFromRaw({ test: '() => import("pkg")' }))
// { 0: [ test, () => import("pkg") ] }
console.log(genObjectFromRaw([ ['test', '() => import("pkg")'] ]))
const entries = Object.entries({
a: 1, b: null, c: '"c"', nest: { hello: '"world"', fn: () => 1 }
})
// { a: 1, b: null, c: "c", nest: { hello: "world", fn: () => 1 } }
console.log(genObjectFromRawEntries(entries))
// [ 1, 2, () => import("pkg") ]
console.log(genArrayFromRaw(['1', '2', '() => import("pkg")']))
Generating safe variable names:
import { genSafeVariableName } from 'knitwork'
// _123_32foo
genSafeVariableName('123 foo')
// _for
genSafeVariableName('for')
corepack enable
(use npm i -g corepack
for Node.js < 16.10)pnpm install
pnpm dev
Made with 💛
Published under MIT License.
FAQs
Utilities to generate JavaScript code.
The npm package knitwork receives a total of 405,153 weekly downloads. As such, knitwork popularity was classified as popular.
We found that knitwork demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.