KC's Workspace
    Preparing search index...

    Module @kcconfigs/tsdown - v0.2.6

    @kcconfigs/tsdown

    Shared tsdown configuration with a typed defineConfig helper and composable plugins for common package build setups.

    • tsdown as a peer dependency

    Optional peer dependencies used by specific checks/features:

    • publint
    • @arethetypeswrong/core
    • unplugin-unused
    • unrun
    pnpm add --save-dev tsdown @kcconfigs/tsdown
    

    Install optional peers only when you use related features:

    pnpm add --save-dev publint @arethetypeswrong/core unplugin-unused unrun
    

    Create tsdown.config.ts:

    import { defineConfig } from "@kcconfigs/tsdown";
    import { entryPlugin, nodePlugin } from "@kcconfigs/tsdown/plugins";

    export default defineConfig({}, entryPlugin(["./src/index.ts"]), nodePlugin());

    defineConfig() starts from an internal base config and appends internal normalizers. Current defaults include:

    • entry: ./src/index.ts with test/example excludes
    • platform: "neutral"
    • outDir: "dist"
    • clean: true
    • minify: true
    • failOnWarn: true
    • publint.enabled: true (warning level)
    • unused.enabled: true (warning level; checks dependencies and peerDependencies)
    • attw.enabled: true

    You can import plugins from @kcconfigs/tsdown/plugins or direct subpaths like @kcconfigs/tsdown/plugins/node.

    Plugin Import Description
    attwPlugin(config) @kcconfigs/tsdown/plugins Configure attw (@arethetypeswrong/core) options
    browserPlugin() @kcconfigs/tsdown/plugins Set platform to browser
    cssPlugin(option?) @kcconfigs/tsdown/plugins Build CSS/SCSS entry as index.css with ESM output
    debugPlugin() @kcconfigs/tsdown/plugins Disable minification and set debug env flags
    depsPlugin(config) @kcconfigs/tsdown/plugins Configure dependency externalization via deps
    dtsPlugin(config) @kcconfigs/tsdown/plugins Configure declaration generation (dts)
    entryPlugin(entry, useDefault?) @kcconfigs/tsdown/plugins Override entries and optionally append default excludes
    formatPlugin(format) @kcconfigs/tsdown/plugins Configure output formats
    nodePlugin() @kcconfigs/tsdown/plugins Set platform to node
    outputPlugin(outDir) @kcconfigs/tsdown/plugins Override output directory
    overridePlugin(...configs) @kcconfigs/tsdown/plugins Merge additional tsdown config objects
    publintPlugin(config) @kcconfigs/tsdown/plugins Configure publint checks
    unusedPlugin(config) @kcconfigs/tsdown/plugins Configure unused dependency checks

    Node package build with custom output and unused dependency ignore list:

    import { defineConfig } from "@kcconfigs/tsdown";
    import {
    entryPlugin,
    nodePlugin,
    outputPlugin,
    unusedPlugin,
    } from "@kcconfigs/tsdown/plugins";

    export default defineConfig(
    {},
    entryPlugin(["./src/index.ts", "./src/cli.ts"]),
    nodePlugin(),
    outputPlugin("dist"),
    unusedPlugin({
    ignore: ["publint", "@arethetypeswrong/core", "unplugin-unused", "unrun"],
    }),
    );

    CSS-only package build:

    import { defineConfig } from "@kcconfigs/tsdown";
    import { cssPlugin } from "@kcconfigs/tsdown/plugins";

    export default defineConfig({}, cssPlugin({ lang: "scss" }));
    CHANGELOG
    plugins
    plugins/attw
    plugins/browser
    plugins/css
    plugins/debug
    plugins/deps
    plugins/dts
    plugins/entry
    plugins/format
    plugins/index
    plugins/node
    plugins/output
    plugins/override
    plugins/publint
    plugins/unused