Skip to content

Upgrading tsdown 0.15 to 0.16

Breaking0.15.12 → 0.16.8Breaking3Deprecated1New10Changed3Fixed3

BreakingUpgrade verdict

3 breaking changes.

  • Rename config exports  -  (7de20).
  • Defaults fixedExtension to true when platform is node  -  (e1168).
  • Rename --debug CLI flag to --debug-logs  -  (e4ef6).
  • Deprecate attw.profile = 'esmOnly', use esm-only instead.
4 items need code or config changes

Adds obug ^2.1.1, unconfig-core ^7.4.1, unrun ^0.2.13.

Drops debug, unconfig.

Installs 77 packages in all (was 60).

Breaking3
Rename config exports  -  (7de20).
OptionsUserConfigInlineConfigNormalizedUserConfigResolvedOptionsResolvedConfig
Defaults fixedExtension to true when platform is node  -  (e1168).
fixedExtensionnode.js.mjs.cjsplatform
Rename --debug CLI flag to --debug-logs  -  (e4ef6).
--debug--debug-logs
Deprecated1
Deprecate attw.profile = 'esmOnly', use esm-only instead.
esm-only

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • added: export { UserConfigExport }
  • added: function t(options: UserConfigExport): UserConfigExport
  • added: function t(options: UserConfig[]): UserConfig[]
  • removed: export { NormalizedUserConfig }
  • removed: export { Options }
  • removed: export { ResolvedOptions }
  • changed: function build(userOptions?: Options): Promise<void> → function build(userOptions?: InlineConfig): Promise<void>
  • changed: function buildSingle(config: ResolvedOptions, clean: () => Promise<void>): Promise<(() => Promise<void>) | undefined> → function buildSingle(config: ResolvedConfig, clean: () => Promise<void>): Promise<(() => Promise<void>) | undefined>
  • added: export { CIOption }
  • added: export { DebugOptions }
  • added: export { InlineConfig }
  • added: export { ResolvedConfig }
  • added: export { UserConfigExport }
  • added: export { WithEnabled }
  • added: const b: Logger
  • added: export { DtsOptions as n }
  • added: export { PublintOptions as s }
  • added: export { TreeshakingOptions as u }
  • added: export { UnusedOptions as d }
  • added: function v(userOptions: ReportOptions, logger: Logger, cwd: string, cjsDts?: boolean, name?: string, isMultiFormat?: boolean): Plugin
  • added: interface A
  • added: interface C
  • added: interface E
  • added: interface L extends CheckPackageOptions
  • added: interface N extends NonNullable<InputOptions['debug']>
  • added: interface O
  • added: interface P
  • added: interface _
  • added: interface f
  • added: interface g
  • added: interface i extends UserConfig
  • added: interface j
  • added: interface k
  • added: interface w
  • added: interface y
  • added: property A.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void>
  • added: property A.'build:done': (ctx: BuildContext) => void | Promise<void>
  • added: property A.'build:prepare': (ctx: BuildContext) => void | Promise<void>
  • added: property C.css?: string
  • added: property C.dts?: string
  • added: property C.js?: string
  • added: property E.dts?: string
  • added: property E.js?: string
  • added: property L.level?: 'error' | 'warn'
  • added: property L.profile?: 'strict' | 'node16' | 'esm-only'
  • added: property N.clean?: boolean
  • added: property N.devtools?: boolean | Partial<StartOptions>
  • added: property O.hooks: Hookable<TsdownHooks>
  • added: property O.options: ResolvedConfig
  • added: property P.from: string
  • added: property P.to: string
  • added: property _.brotli?: boolean
  • added: property _.gzip?: boolean
  • added: property _.maxCompressSize?: number
  • added: property f.alias?: Record<string, string>
  • added: property f.attw?: WithEnabled<AttwOptions>
  • added: property f.banner?: ChunkAddon
  • added: property f.bundle?: boolean
  • added: property f.cjsDefault?: boolean
  • added: property f.clean?: boolean | string[]
  • added: property f.copy?: CopyOptions | CopyOptionsFn
  • added: property f.customLogger?: Logger
  • added: property f.cwd?: string
  • added: property f.debug?: WithEnabled<DebugOptions>
  • added: property f.define?: Record<string, string>
  • added: property f.dts?: WithEnabled<DtsOptions>
  • added: property f.entry?: InputOption
  • added: property f.env?: Record<string, any>
  • added: property f.exports?: WithEnabled<ExportsOptions>
  • added: property f.external?: ExternalOption
  • added: property f.failOnWarn?: boolean | CIOption
  • added: property f.fixedExtension?: boolean
  • added: property f.footer?: ChunkAddon
  • added: property f.format?: Format | Format[]
  • added: property f.fromVite?: boolean | 'vitest'
  • added: property f.globImport?: boolean
  • added: property f.globalName?: string
  • added: property f.hash?: boolean
  • added: property f.hooks?: Partial<TsdownHooks> | ((hooks: Hookable<TsdownHooks>) => Awaitable<void>)
  • added: property f.ignoreWatch?: Arrayable<string | RegExp>
  • added: property f.inlineOnly?: Arrayable<string | RegExp>
  • added: property f.inputOptions?: InputOptions | ((options: InputOptions, format: NormalizedFormat, context: { cjsDts: boolean }) => Awaitable<InputOptions | void | null>)
  • added: property f.loader?: ModuleTypes
  • added: property f.logLevel?: LogLevel
  • added: property f.minify?: boolean | 'dce-only' | MinifyOptions
  • added: property f.name?: string
  • added: property f.noExternal?: Arrayable<string | RegExp> | NoExternalFn
  • added: property f.nodeProtocol?: 'strip' | boolean
  • added: property f.onSuccess?: string | ((config: ResolvedConfig, signal: AbortSignal) => void | Promise<void>)
  • added: property f.outDir?: string
  • added: property f.outExtensions?: OutExtensionFactory
  • added: property f.outputOptions?: OutputOptions | ((options: OutputOptions, format: NormalizedFormat, context: { cjsDts: boolean }) => Awaitable<OutputOptions | void | null>)
  • added: property f.platform?: 'node' | 'neutral' | 'browser'
  • added: property f.plugins?: InputOptions['plugins']
  • added: property f.publicDir?: CopyOptions | CopyOptionsFn
  • added: property f.publint?: WithEnabled<PublintOptions>
  • added: property f.removeNodeProtocol?: boolean
  • added: property f.report?: WithEnabled<ReportOptions>
  • added: property f.shims?: boolean
  • added: property f.silent?: boolean
  • added: property f.skipNodeModulesBundle?: boolean
  • added: property f.sourcemap?: Sourcemap
  • added: property f.target?: string | string[] | false
  • added: property f.treeshake?: boolean | TreeshakingOptions
  • added: property f.tsconfig?: string | boolean
  • added: property f.unbundle?: boolean
  • added: property f.unused?: WithEnabled<UnusedOptions>
  • added: property f.watch?: boolean | Arrayable<string>
  • added: property f.workspace?: Workspace | Arrayable<string> | true
  • added: property g.config?: boolean | string
  • added: property g.exclude?: Arrayable<string>
  • added: property g.include?: Arrayable<string> | 'auto'
  • added: property i.config?: boolean | string
  • added: property i.configLoader?: 'auto' | 'native' | 'unconfig' | 'unrun'
  • added: property i.filter?: RegExp | string | string[]
  • added: property j.all?: boolean
  • added: property j.customExports?: (exports: Record<string, any>, context: { pkg: PackageJson; chunks: TsdownChunks; outDir: string; isPublish: boolean }) => Awaitable<Record<string, any>>
  • added: property j.devExports?: boolean | string
  • added: property k.buildOptions: BuildOptions
  • added: property w.format: NormalizedFormat
  • added: property w.options: InputOptions
  • added: property w.pkgType?: PackageType
  • added: property y.error: (...args: any[]) => void
  • added: property y.info: (...args: any[]) => void
  • added: property y.level: LogLevel
  • added: property y.success: (...args: any[]) => void
  • added: property y.warn: (...args: any[]) => void
  • added: property y.warnOnce: (...args: any[]) => void
  • added: type D = 'module' | 'commonjs' | undefined
  • added: type F = Arrayable<string | CopyEntry>
  • added: type I = (options: ResolvedConfig) => Awaitable<CopyOptions>
  • added: type M = Partial<Record<NormalizedFormat, Array<OutputChunk | OutputAsset>>>
  • added: type S = (ctx: { format: Format; fileName: string }) => ChunkAddonObject | string | undefined
  • added: type T = (context: OutExtensionContext) => OutExtensionObject | undefined
  • added: type a = (id: string, importer: string | undefined) => boolean | null | undefined | void
  • added: type c = Overwrite<MarkPartial<Omit<UserConfig, 'workspace' | 'fromVite' | 'publicDir' | 'silent' | 'bundle' | 'removeNodeProtocol' | 'logLevel' | 'failOnWarn' | 'custo…
  • added: type h<T> = boolean | undefined | CIOption | (T & { enabled?: boolean | CIOption })
  • added: type l = boolean | 'inline' | 'hidden'
  • added: type m = (inlineConfig: InlineConfig, context: { ci: boolean }) => Awaitable<Arrayable<UserConfig>>
  • added: type o = InternalModuleFormat
  • added: type p = Awaitable<Arrayable<UserConfig> | UserConfigFn>
  • added: type r = ModuleFormat
  • added: type t = 'ci-only' | 'local-only'
  • added: type x = ChunkAddonObject | ChunkAddonFunction | string
  • changed: function ExternalPlugin({ pkg, noExternal, inlineOnly, skipNodeModulesBundle }: ResolvedOptions): Plugin → function ExternalPlugin({ pkg, noExternal, inlineOnly, skipNodeModulesBundle }: ResolvedConfig): Plugin
  • removed: const v: Logger
  • removed: export { DtsOptions as t }
  • removed: export { PublintOptions as s }
  • removed: export { TreeshakingOptions as u }
  • removed: export { UnusedOptions as d }
  • removed: function g(userOptions: ReportOptions, logger: Logger, cwd: string, cjsDts?: boolean, name?: string, isMultiFormat?: boolean): Plugin
  • removed: interface D
  • removed: interface E
  • removed: interface O
  • removed: interface P extends CheckPackageOptions
  • removed: interface S
  • removed: interface _
  • removed: interface h
  • removed: interface j
  • removed: interface k
  • removed: interface m
  • removed: interface o
  • removed: interface w
  • removed: interface x
  • removed: property D.buildOptions: BuildOptions
  • removed: property E.hooks: Hookable<TsdownHooks>
  • removed: property E.options: ResolvedOptions
  • removed: property O.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void>
  • removed: property O.'build:done': (ctx: BuildContext) => void | Promise<void>
  • removed: property O.'build:prepare': (ctx: BuildContext) => void | Promise<void>
  • removed: property P.level?: 'error' | 'warn'
  • removed: property P.profile?: 'strict' | 'node16' | 'esmOnly'
  • removed: property S.format: NormalizedFormat
  • removed: property S.options: InputOptions
  • removed: property S.pkgType?: PackageType
  • removed: property _.error: (...args: any[]) => void
  • removed: property _.info: (...args: any[]) => void
  • removed: property _.level: LogLevel
  • removed: property _.success: (...args: any[]) => void
  • removed: property _.warn: (...args: any[]) => void
  • removed: property _.warnOnce: (...args: any[]) => void
  • removed: property h.brotli?: boolean
  • removed: property h.gzip?: boolean
  • removed: property h.maxCompressSize?: number
  • removed: property j.from: string
  • removed: property j.to: string
  • removed: property k.all?: boolean
  • removed: property k.customExports?: (exports: Record<string, any>, context: { pkg: PackageJson; chunks: TsdownChunks; outDir: string; isPublish: boolean }) => Awaitable<Record<string, any>>
  • removed: property k.devExports?: boolean | string
  • removed: property m.config?: boolean | string
  • removed: property m.exclude?: Arrayable<string>
  • removed: property m.include?: Arrayable<string> | 'auto'
  • removed: property o.alias?: Record<string, string>
  • removed: property o.attw?: boolean | AttwOptions
  • removed: property o.banner?: ChunkAddon
  • removed: property o.bundle?: boolean
  • removed: property o.cjsDefault?: boolean
  • removed: property o.clean?: boolean | string[]
  • removed: property o.config?: boolean | string
  • removed: property o.configLoader?: 'auto' | 'native' | 'unconfig' | 'unrun'
  • removed: property o.copy?: CopyOptions | CopyOptionsFn
  • removed: property o.customLogger?: Logger
  • removed: property o.cwd?: string
  • removed: property o.define?: Record<string, string>
  • removed: property o.dts?: boolean | DtsOptions
  • removed: property o.entry?: InputOption
  • removed: property o.env?: Record<string, any>
  • removed: property o.exports?: boolean | ExportsOptions
  • removed: property o.external?: ExternalOption
  • removed: property o.failOnWarn?: boolean
  • removed: property o.filter?: RegExp | string | string[]
  • removed: property o.fixedExtension?: boolean
  • removed: property o.footer?: ChunkAddon
  • removed: property o.format?: Format | Format[]
  • removed: property o.fromVite?: boolean | 'vitest'
  • removed: property o.globImport?: boolean
  • removed: property o.globalName?: string
  • removed: property o.hash?: boolean
  • removed: property o.hooks?: Partial<TsdownHooks> | ((hooks: Hookable<TsdownHooks>) => Awaitable<void>)
  • removed: property o.ignoreWatch?: Arrayable<string | RegExp>
  • removed: property o.inlineOnly?: Arrayable<string | RegExp>
  • removed: property o.inputOptions?: InputOptions | ((options: InputOptions, format: NormalizedFormat, context: { cjsDts: boolean }) => Awaitable<InputOptions | void | null>)
  • removed: property o.loader?: ModuleTypes
  • removed: property o.logLevel?: LogLevel
  • removed: property o.minify?: boolean | 'dce-only' | MinifyOptions
  • removed: property o.name?: string
  • removed: property o.noExternal?: Arrayable<string | RegExp> | NoExternalFn
  • removed: property o.nodeProtocol?: 'strip' | boolean
  • removed: property o.onSuccess?: string | ((config: ResolvedOptions, signal: AbortSignal) => void | Promise<void>)
  • removed: property o.outDir?: string
  • removed: property o.outExtensions?: OutExtensionFactory
  • removed: property o.outputOptions?: OutputOptions | ((options: OutputOptions, format: NormalizedFormat, context: { cjsDts: boolean }) => Awaitable<OutputOptions | void | null>)
  • removed: property o.platform?: 'node' | 'neutral' | 'browser'
  • removed: property o.plugins?: InputOptions['plugins']
  • removed: property o.publicDir?: CopyOptions | CopyOptionsFn
  • removed: property o.publint?: boolean | PublintOptions
  • removed: property o.removeNodeProtocol?: boolean
  • removed: property o.report?: boolean | ReportOptions
  • removed: property o.shims?: boolean
  • removed: property o.silent?: boolean
  • removed: property o.skipNodeModulesBundle?: boolean
  • removed: property o.sourcemap?: Sourcemap
  • removed: property o.target?: string | string[] | false
  • removed: property o.treeshake?: boolean | TreeshakingOptions
  • removed: property o.tsconfig?: string | boolean
  • removed: property o.unbundle?: boolean
  • removed: property o.unused?: boolean | UnusedOptions
  • removed: property o.watch?: boolean | Arrayable<string>
  • removed: property o.workspace?: Workspace | Arrayable<string> | true
  • removed: property w.dts?: string
  • removed: property w.js?: string
  • removed: property x.css?: string
  • removed: property x.dts?: string
  • removed: property x.js?: string
  • removed: type A = Partial<Record<NormalizedFormat, Array<OutputChunk | OutputAsset>>>
  • removed: type C = (context: OutExtensionContext) => OutExtensionObject | undefined
  • removed: type M = Arrayable<string | CopyEntry>
  • removed: type N = (options: ResolvedOptions) => Awaitable<CopyOptions>
  • removed: type T = 'module' | 'commonjs' | undefined
  • removed: type a = Exclude<UserConfig, any[]>
  • removed: type b = (ctx: { format: Format; fileName: string }) => ChunkAddonObject | string | undefined
  • removed: type c = Omit<Overwrite<MarkPartial<Omit<Options, 'publicDir' | 'workspace' | 'filter' | 'silent' | 'logLevel' | 'failOnWarn' | 'customLogger' | 'configLoader'>, 'globa…
  • removed: type f = Arrayable<Omit<Options, 'config' | 'filter' | 'configLoader'>>
  • removed: type i = InternalModuleFormat
  • removed: type l = boolean | 'inline' | 'hidden'
  • removed: type n = ModuleFormat
  • removed: type p = (cliOptions: Options) => Awaitable<UserConfig>
  • removed: type r = (id: string, importer: string | undefined) => boolean | null | undefined | void
  • removed: type y = ChunkAddonObject | ChunkAddonFunction | string