
knitwork-x
Utilities to generate JavaScript and TypeScript code programmatically. Use when building code generators, AST-to-code output, or dynamic source generation.
Utilities to generate JavaScript and TypeScript code programmatically. Use when building code generators, AST-to-code output, or dynamic source generation.
knitwork-x provides programmatic code generation for JavaScript and TypeScript. It is forked from knitwork and adds comprehensive TypeScript helpers: ESM (import/export), strings, variables, classes, interfaces, functions, types, control flow (if/try/loop/switch), and serialization (object/array/map/set). All gen* functions return strings suitable for splicing into source; they are pure and do not mutate inputs.
Use this skill when an agent needs to generate code strings (e.g. for codegen tools, plugins, or dynamic module output).
Core References
| Topic | Description | Reference |
|---|---|---|
| Overview | Purpose, install, when to use | core-overview |
| ESM | Import, export, default export, dynamic import | core-esm |
| String | genString, escapeString, genTemplateLiteral | core-string |
| Variable | genVariable, genVariableName | core-variable |
| Design Guidelines | Naming, params, options (for contributors) | core-design-guidelines |
Features
| Topic | Description | Reference |
|---|---|---|
| Class | genClass, genConstructor, genProperty, genMethod, getter/setter | features-class |
| Interface | genInterface, genIndexSignature | features-interface |
| Enum | genEnum, genConstEnum | features-enum |
| Function | genFunction, genArrowFunction, genBlock, genParam | features-function |
| Type | genTypeAlias, genUnion, genIntersection, genMappedType, etc. | features-type |
| Conditional | genConditionalType, genTernary | features-conditional |
| Decorator | genDecorator | features-decorator |
| Module & Namespace | genModule, genNamespace, genDeclareNamespace | features-module-namespace |
| Condition | genIf, genElse, genElseIf | features-condition |
| Try | genTry, genCatch, genFinally | features-try |
| Loop | genFor, genForOf, genWhile, genDoWhile | features-loop |
| Switch | genSwitch, genCase, genDefault | features-switch |
| Statement | genReturn, genThrow, genPrefixedBlock | features-statement |
| Object & Serialization | genObject, genArray, genMap, genSet, genTypeObject | features-object |
| Utils | genComment, genKey, genLiteral, genRegExp, wrapInDelimiters | features-utils |
Key Points
- Return type: Every
gen*function returns astring(code fragment). - Options: Most accept an optional
optionsobject (e.g.export,singleQuotes,indent); default to{}. - Indent: When supported, pass
indentas the last parameter; useindent + " "for nested blocks. - Strings: Use
genString(input, options)for quoted/escaped output sosingleQuotesis respected. - Composing: Combine
gen*outputs (e.g.genClass(..., [genConstructor(...)])) to build larger snippets.
You Might Also Like
Related Skills

verify
Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
facebook
test
Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.
facebook
feature-flags
Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
facebook
extract-errors
Use when adding new error messages to React, or seeing "unknown error code" warnings.
facebook