Skip to content

Upgrading tsdown 0.16 to 0.17

Breaking0.16.8 → 0.17.4Breaking7New11Changed2Fixed12

BreakingUpgrade verdict

6 breaking changes.

  • Enable failOnWarn by default in CI  -  (245e7).
  • Remove unconfig from configLoader  -  (9d6a7).
  • refactor!(attw): rename profile value from esmOnly to esm-only  -&nbsp.
  • copy: Sync behavior of rollup-plugin-copy  -  (e864b).
Top 3 of 6 that need code or config changes

Adds defu ^6.1.4, import-without-cache ^0.2.3.

Drops chokidar, diff.

Installs 75 packages in all (was 77).

Breaking6
Enable failOnWarn by default in CI  -  (245e7).
failOnWarn
Remove unconfig from configLoader  -  (9d6a7).
unconfig
refactor!(attw): rename profile value from esmOnly to esm-only  -&nbsp.
profileesmOnlyesm-only
copy: Sync behavior of rollup-plugin-copy  -  (e864b).
rollup-plugin-copy
Rolldown native watcher  -  (1c4f8).
Support exports, publint, attw for multi-configs  -  (f889a).

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

  • removed: export { TsdownChunks }
  • changed: function build(userOptions?: InlineConfig): Promise<void> → function build(userOptions?: InlineConfig): Promise<TsdownBundle[]>
  • changed: function buildSingle(config: ResolvedConfig, clean: () => Promise<void>): Promise<(() => Promise<void>) | undefined> → function buildSingle(config: ResolvedConfig, configFiles: string[], isDualFormat: boolean, clean: () => Promise<void>, restart: () => void, done: (bundle: TsdownBundle) => Promise<void>): Promise<TsdownBundle>
  • added: export { PackageJsonWithPath }
  • added: export { Rolldown }
  • added: export { RolldownChunk }
  • added: export { TsdownBundle }
  • removed: interface E
  • removed: interface k
  • removed: property A.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void>
  • removed: property A.'build:done': (ctx: BuildContext) => void | Promise<void>
  • removed: property A.'build:prepare': (ctx: BuildContext) => void | Promise<void>
  • removed: property C.css?: string
  • removed: property C.dts?: string
  • removed: property C.js?: string
  • removed: property E.dts?: string
  • removed: property E.js?: string
  • removed: property L.level?: 'error' | 'warn'
  • removed: property L.profile?: 'strict' | 'node16' | 'esm-only'
  • removed: property N.clean?: boolean
  • removed: property N.devtools?: boolean | Partial<StartOptions>
  • removed: property O.hooks: Hookable<TsdownHooks>
  • removed: property P.from: string
  • removed: property P.to: string
  • removed: property j.all?: boolean
  • removed: property j.customExports?: (exports: Record<string, any>, context: { pkg: PackageJson; chunks: TsdownChunks; outDir: string; isPublish: boolean }) => Awaitable<Record<string, any>>
  • removed: property j.devExports?: boolean | string
  • removed: property k.buildOptions: BuildOptions
  • removed: property w.format: NormalizedFormat
  • removed: property w.options: InputOptions
  • removed: property w.pkgType?: PackageType
  • removed: type D = 'module' | 'commonjs' | undefined
  • removed: type F = Arrayable<string | CopyEntry>
  • removed: type I = (options: ResolvedConfig) => Awaitable<CopyOptions>
  • removed: type x = ChunkAddonObject | ChunkAddonFunction | string
  • changed: function v(userOptions: ReportOptions, logger: Logger, cwd: string, cjsDts?: boolean, name?: string, isMultiFormat?: boolean): Plugin → function v(userOptions: ReportOptions, logger: Logger, cwd: string, cjsDts?: boolean, nameLabel?: string, isDualFormat?: boolean): Plugin
  • changed: interface C → interface C extends AsyncDisposable
  • changed: interface L extends CheckPackageOptions → interface L
  • changed: interface N extends NonNullable<InputOptions['debug']> → interface N
  • changed: interface j → interface j extends PackageJson
  • changed: interface w → interface w extends CheckPackageOptions
  • changed: property O.options: ResolvedConfig → property O.options: InputOptions
  • changed: property f.format?: Format | Format[] → property f.format?: Format | Format[] | Partial<Record<Format, Partial<ResolvedConfig>>>
  • changed: property i.configLoader?: 'auto' | 'native' | 'unconfig' | 'unrun' → property i.configLoader?: 'auto' | 'native' | 'unrun'
  • changed: property i.filter?: RegExp | string | string[] → property i.filter?: RegExp | Arrayable<string>
  • changed: type M = Partial<Record<NormalizedFormat, Array<OutputChunk | OutputAsset>>> → type M = 'module' | 'commonjs' | undefined
  • changed: type S = (ctx: { format: Format; fileName: string }) => ChunkAddonObject | string | undefined → type S = (OutputChunk | OutputAsset) & { outDir: string }
  • changed: type T = (context: OutExtensionContext) => OutExtensionObject | undefined → type T = ChunkAddonObject | ChunkAddonFunction | string
  • added: interface D
  • added: interface F
  • added: interface I extends NonNullable<InputOptions['debug']>
  • added: interface x
  • added: property A.dts?: string
  • added: property A.js?: string
  • added: property C.chunks: RolldownChunk[]
  • added: property C.config: ResolvedConfig
  • added: property D.css?: string
  • added: property D.dts?: string
  • added: property D.js?: string
  • added: property F.'build:before': (ctx: BuildContext & RolldownContext) => void | Promise<void>
  • added: property F.'build:done': (ctx: BuildContext & { chunks: RolldownChunk[] }) => void | Promise<void>
  • added: property F.'build:prepare': (ctx: BuildContext) => void | Promise<void>
  • added: property I.clean?: boolean
  • added: property I.devtools?: boolean | Partial<StartOptions>
  • added: property L.flatten?: boolean
  • added: property L.from: string | string[]
  • added: property L.rename?: string | ((name: string, extension: string, fullPath: string) => string)
  • added: property L.to?: string
  • added: property L.verbose?: boolean
  • added: property N.hooks: Hookable<TsdownHooks>
  • added: property N.options: ResolvedConfig
  • added: property O.format: NormalizedFormat
  • added: property O.pkgType?: PackageType
  • added: property P.buildOptions: BuildOptions
  • added: property f.write?: boolean
  • added: property j.packageJsonPath: string
  • added: property w.level?: 'error' | 'warn'
  • added: property w.profile?: 'strict' | 'node16' | 'esm-only'
  • added: property x.all?: boolean
  • added: property x.customExports?: (exports: Record<string, any>, context: { pkg: PackageJson; chunks: ChunksByFormat; isPublish: boolean }) => Awaitable<Record<string, any>>
  • added: property x.devExports?: boolean | string
  • added: property x.exclude?: (RegExp | string)[]
  • added: type E = (ctx: { format: Format; fileName: string }) => ChunkAddonObject | string | undefined
  • added: type R = Arrayable<string | CopyEntry>
  • added: type k = (context: OutExtensionContext) => OutExtensionObject | undefined
  • added: type z = (options: ResolvedConfig) => Awaitable<CopyOptions>
  • changed: function ShebangPlugin(logger: Logger, cwd: string, name?: string, isMultiFormat?: boolean): Plugin → function ShebangPlugin(logger: Logger, cwd: string, nameLabel?: string, isDualFormat?: boolean): Plugin
  • added: function WatchPlugin(configFiles: string[], { config, chunks }: TsdownBundle): Plugin