@chatium/typings-generator
v5.4.4
Published
Generate bundled declaration files for Chatium-style SDK entrypoints.
Downloads
785
Readme
@chatium/typings-generator
CLI and JavaScript API for generating bundled .d.ts files for Chatium-style SDK entrypoints.
Features
- writes generated typings into
.typingsby default - supports one or many entrypoints
- scopes declaration emit to the provided entrypoints and their reachable dependency graph
- for multiple entrypoints, emits one
shared.d.tsplus per-entry bundles - emits empty declaration bundles for asset entrypoints such as
.cssand.js - preserves external imports like
@app/*as external imports - supports Vue SFC declaration emit for typed
.vuefiles (<script lang="ts">and<script setup lang="ts">) - ignores type checking errors by emitting declarations with TypeScript
noCheck - injects
@app/types/globals.d.tsinto every generated bundle by default - can restrict generated entrypoint surfaces to exports marked with
/** @public */or expose every export from an entrypoint with/** @public-all */ - formats generated
.d.tsfiles with Prettier as the final step
Install
npm install --save-dev @chatium/typings-generatorCLI
chatium-typings-generator sdk/index sdk/ui/indexTyped Vue SFCs can also be used directly:
chatium-typings-generator sdk/index plugin/v2/components/TypedChatComponent/TypedChatComponent.vueRecommended project script:
{
"scripts": {
"typings": "chatium-typings-generator"
}
}Then run:
npm run typings -- sdk/index sdk/ui/indexOptions
--project-root <path>: project root, defaults to the current working directory--tsconfig <path>: tsconfig path relative toproject-root, defaults totsconfig.json--out-dir <path>: output directory relative toproject-root, defaults to.typings--public-only: bundle only entrypoint exports explicitly marked with/** @public */; add/** @public-all */at the top of an entrypoint to expose every export from that entrypoint--globals-module <specifier>: module imported into every generated.d.ts, defaults to@app/types/globals.d.ts--no-globals-module: disable globals-module injection--help: print usage--version: print package version
JavaScript API
import { generateTypings } from '@chatium/typings-generator'
await generateTypings(['sdk/index', 'sdk/ui/index'], {
projectRoot: process.cwd(),
outDir: '.typings',
publicOnly: true,
})Output layout
Single entrypoint:
.typings/sdk/index.d.tsMultiple entrypoints:
.typings/shared.d.ts
.typings/sdk/index.d.ts
.typings/sdk/ui/index.d.tsPublish
The package is configured for public npm publication.
npm test
npm publish