GithubHelp home page GithubHelp logo

nshen / bun-plugin-dts Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wobsoriano/bun-plugin-dts

0.0 1.0 0.0 332 KB

A Bun plugin for generating dts files.

License: MIT License

JavaScript 14.98% TypeScript 85.02%

bun-plugin-dts's Introduction

bun-plugin-dts

A Bun plugin for generating .d.ts files.

Install

bun add -d bun-plugin-dts

Usage

import dts from 'bun-plugin-dts'

await Bun.build({
  entrypoints: ['./src/index.ts', './src/other.ts'],
  outdir: './dist',
  plugins: [
    dts()
  ],
})

// Generates `dist/index.d.ts` and `dist/other.d.ts`

Options

This plugin utilizes dts-bundle-generator internally, allowing you to easily customize its behavior by passing specific options for dts-bundle-generator.

type Options = {
  libraries?: LibrariesOptions;
  /**
   * Fail if generated dts contains class declaration.
   */
  failOnClass?: boolean;
  output?: OutputOptions;
  compilationOptions?: CompilationOptions;
}

interface LibrariesOptions {
  /**
   * Array of package names from node_modules to inline typings from.
   * Used types will be inlined into the output file.
   */
  inlinedLibraries?: string[];
  /**
   * Array of package names from node_modules to import typings from.
   * Used types will be imported using `import { First, Second } from 'library-name';`.
   * By default all libraries will be imported (except inlined libraries and libraries from @types).
   */
  importedLibraries?: string[];
  /**
   * Array of package names from @types to import typings from via the triple-slash reference directive.
   * By default all packages are allowed and will be used according to their usages.
   */
  allowedTypesLibraries?: string[];
}

interface OutputOptions {
  /**
   * Sort output nodes in ascendant order.
   */
  sortNodes?: boolean;
  /**
   * Name of the UMD module.
   * If specified then `export as namespace ModuleName;` will be emitted.
   */
  umdModuleName?: string;
  /**
   * Enables inlining of `declare global` statements contained in files which should be inlined (all local files and packages from inlined libraries).
   */
  inlineDeclareGlobals?: boolean;
  /**
   * Enables inlining of `declare module` statements of the global modules
   * (e.g. `declare module 'external-module' {}`, but NOT `declare module './internal-module' {}`)
   * contained in files which should be inlined (all local files and packages from inlined libraries)
   */
  inlineDeclareExternals?: boolean;
  /**
   * Allows remove "Generated by dts-bundle-generator" comment from the output
   */
  noBanner?: boolean;
  /**
   * Enables stripping the `const` keyword from every direct-exported (or re-exported) from entry file `const enum`.
   * This allows you "avoid" the issue described in https://github.com/microsoft/TypeScript/issues/37774.
   */
  respectPreserveConstEnum?: boolean;
  /**
   * By default all interfaces, types and const enums are marked as exported even if they aren't exported directly.
   * This option allows you to disable this behavior so a node will be exported if it is exported from root source file only.
   */
  exportReferencedTypes?: boolean;
}

interface CompilationOptions {
  /**
   * Allows disable resolving of symlinks to the original path.
   * By default following is enabled.
   * @see https://github.com/timocov/dts-bundle-generator/issues/39
   */
  followSymlinks?: boolean;
  /**
   * Path to the tsconfig file that will be used for the compilation.
   */
  preferredConfigPath?: string;
}

License

MIT

bun-plugin-dts's People

Contributors

wobsoriano avatar nshen avatar ryoppippi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.