@storm-software/unbuild 0.35.1 → 0.35.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,7 +21,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
21
21
 
22
22
  <h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
23
23
 
24
- [![Version](https://img.shields.io/badge/version-0.35.0-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
24
+ [![Version](https://img.shields.io/badge/version-0.35.1-1fb2a6.svg?style=for-the-badge&color=1fb2a6)](https://prettier.io/)&nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge&logo=nx&logoWidth=20&&color=1fb2a6)](http://nx.dev/)&nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge&logo=nextdotjs&logoWidth=20&color=1fb2a6)](https://nextjs.org/)&nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge&logo=commitlint&color=1fb2a6)](http://commitizen.github.io/cz-cli/)&nbsp;![Semantic-Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge&color=1fb2a6)&nbsp;[![documented with Fumadocs](https://img.shields.io/badge/documented_with-fumadocs-success.svg?style=for-the-badge&logo=readthedocs&color=1fb2a6)](https://fumadocs.vercel.app/)&nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-ops/cr.yml?style=for-the-badge&logo=github-actions&color=1fb2a6)
25
25
 
26
26
  <!-- prettier-ignore-start -->
27
27
  <!-- markdownlint-disable -->
package/bin/unbuild.cjs CHANGED
@@ -1799,7 +1799,20 @@ async function resolveOptions(options, config) {
1799
1799
  onErrorPlugin(resolvedOptions)
1800
1800
  ]);
1801
1801
  }
1802
- }, "rollup:options")
1802
+ }, "rollup:options"),
1803
+ "mkdist:entry:options": /* @__PURE__ */ __name(async (ctx, entry, opts) => {
1804
+ opts.esbuild ||= {};
1805
+ opts.esbuild.platform ??= resolvedOptions.platform;
1806
+ opts.esbuild.minify ??= resolvedOptions.minify ?? !resolvedOptions.debug;
1807
+ opts.esbuild.sourcemap ??= resolvedOptions.sourcemap ?? !!options.debug;
1808
+ if (options.loaders) {
1809
+ if (typeof options.loaders === "function") {
1810
+ opts.loaders = await Promise.resolve(options.loaders(ctx, entry, opts));
1811
+ } else {
1812
+ opts.loaders = options.loaders;
1813
+ }
1814
+ }
1815
+ }, "mkdist:entry:options")
1803
1816
  };
1804
1817
  stopwatch();
1805
1818
  return resolvedOptions;
package/bin/unbuild.js CHANGED
@@ -1778,7 +1778,20 @@ async function resolveOptions(options, config) {
1778
1778
  onErrorPlugin(resolvedOptions)
1779
1779
  ]);
1780
1780
  }
1781
- }, "rollup:options")
1781
+ }, "rollup:options"),
1782
+ "mkdist:entry:options": /* @__PURE__ */ __name(async (ctx, entry, opts) => {
1783
+ opts.esbuild ||= {};
1784
+ opts.esbuild.platform ??= resolvedOptions.platform;
1785
+ opts.esbuild.minify ??= resolvedOptions.minify ?? !resolvedOptions.debug;
1786
+ opts.esbuild.sourcemap ??= resolvedOptions.sourcemap ?? !!options.debug;
1787
+ if (options.loaders) {
1788
+ if (typeof options.loaders === "function") {
1789
+ opts.loaders = await Promise.resolve(options.loaders(ctx, entry, opts));
1790
+ } else {
1791
+ opts.loaders = options.loaders;
1792
+ }
1793
+ }
1794
+ }, "mkdist:entry:options")
1782
1795
  };
1783
1796
  stopwatch();
1784
1797
  return resolvedOptions;
package/dist/build.cjs CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var _chunk6BNX524Ocjs = require('./chunk-6BNX524O.cjs');
8
+ var _chunk44QVHNBQcjs = require('./chunk-44QVHNBQ.cjs');
9
9
  require('./chunk-OD3ULBE3.cjs');
10
10
  require('./chunk-3HGUCQU6.cjs');
11
11
  require('./chunk-N5KR37LU.cjs');
@@ -20,4 +20,4 @@ require('./chunk-BGYQAVKQ.cjs');
20
20
 
21
21
 
22
22
 
23
- exports.build = _chunk6BNX524Ocjs.build; exports.cleanOutputPath = _chunk6BNX524Ocjs.cleanOutputPath; exports.copyBuildAssets = _chunk6BNX524Ocjs.copyBuildAssets; exports.executeUnbuild = _chunk6BNX524Ocjs.executeUnbuild; exports.generatePackageJson = _chunk6BNX524Ocjs.generatePackageJson; exports.resolveOptions = _chunk6BNX524Ocjs.resolveOptions;
23
+ exports.build = _chunk44QVHNBQcjs.build; exports.cleanOutputPath = _chunk44QVHNBQcjs.cleanOutputPath; exports.copyBuildAssets = _chunk44QVHNBQcjs.copyBuildAssets; exports.executeUnbuild = _chunk44QVHNBQcjs.executeUnbuild; exports.generatePackageJson = _chunk44QVHNBQcjs.generatePackageJson; exports.resolveOptions = _chunk44QVHNBQcjs.resolveOptions;
package/dist/build.d.cts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { StormConfig } from '@storm-software/config/types';
2
2
  import { UnbuildOptions, UnbuildResolvedOptions } from './types.cjs';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  /**
package/dist/build.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { StormConfig } from '@storm-software/config/types';
2
2
  import { UnbuildOptions, UnbuildResolvedOptions } from './types.js';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  /**
package/dist/build.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  executeUnbuild,
6
6
  generatePackageJson,
7
7
  resolveOptions
8
- } from "./chunk-TG57GPRS.js";
8
+ } from "./chunk-KXDOKQLW.js";
9
9
  import "./chunk-RBYYB7X2.js";
10
10
  import "./chunk-2E6P5U5P.js";
11
11
  import "./chunk-L3WYWYD4.js";
@@ -936,7 +936,20 @@ async function resolveOptions(options, config) {
936
936
  _chunkY7PS2HJAcjs.onErrorPlugin.call(void 0, resolvedOptions)
937
937
  ]);
938
938
  }
939
- }, "rollup:options")
939
+ }, "rollup:options"),
940
+ "mkdist:entry:options": /* @__PURE__ */ _chunkBGYQAVKQcjs.__name.call(void 0, async (ctx, entry, opts) => {
941
+ opts.esbuild ||= {};
942
+ opts.esbuild.platform ??= resolvedOptions.platform;
943
+ opts.esbuild.minify ??= _nullishCoalesce(resolvedOptions.minify, () => ( !resolvedOptions.debug));
944
+ opts.esbuild.sourcemap ??= _nullishCoalesce(resolvedOptions.sourcemap, () => ( !!options.debug));
945
+ if (options.loaders) {
946
+ if (typeof options.loaders === "function") {
947
+ opts.loaders = await Promise.resolve(options.loaders(ctx, entry, opts));
948
+ } else {
949
+ opts.loaders = options.loaders;
950
+ }
951
+ }
952
+ }, "mkdist:entry:options")
940
953
  };
941
954
  stopwatch();
942
955
  return resolvedOptions;
@@ -936,7 +936,20 @@ async function resolveOptions(options, config) {
936
936
  onErrorPlugin(resolvedOptions)
937
937
  ]);
938
938
  }
939
- }, "rollup:options")
939
+ }, "rollup:options"),
940
+ "mkdist:entry:options": /* @__PURE__ */ __name(async (ctx, entry, opts) => {
941
+ opts.esbuild ||= {};
942
+ opts.esbuild.platform ??= resolvedOptions.platform;
943
+ opts.esbuild.minify ??= resolvedOptions.minify ?? !resolvedOptions.debug;
944
+ opts.esbuild.sourcemap ??= resolvedOptions.sourcemap ?? !!options.debug;
945
+ if (options.loaders) {
946
+ if (typeof options.loaders === "function") {
947
+ opts.loaders = await Promise.resolve(options.loaders(ctx, entry, opts));
948
+ } else {
949
+ opts.loaders = options.loaders;
950
+ }
951
+ }
952
+ }, "mkdist:entry:options")
940
953
  };
941
954
  stopwatch();
942
955
  return resolvedOptions;
package/dist/index.cjs CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var _chunk6BNX524Ocjs = require('./chunk-6BNX524O.cjs');
8
+ var _chunk44QVHNBQcjs = require('./chunk-44QVHNBQ.cjs');
9
9
  require('./chunk-OD3ULBE3.cjs');
10
10
 
11
11
 
@@ -31,4 +31,4 @@ require('./chunk-BGYQAVKQ.cjs');
31
31
 
32
32
 
33
33
 
34
- exports.build = _chunk6BNX524Ocjs.build; exports.clean = _chunk3HGUCQU6cjs.clean; exports.cleanDirectories = _chunk3HGUCQU6cjs.cleanDirectories; exports.cleanOutputPath = _chunk6BNX524Ocjs.cleanOutputPath; exports.copyBuildAssets = _chunk6BNX524Ocjs.copyBuildAssets; exports.createTsCompilerOptions = _chunkZPWH22ZMcjs.createTsCompilerOptions; exports.executeUnbuild = _chunk6BNX524Ocjs.executeUnbuild; exports.generatePackageJson = _chunk6BNX524Ocjs.generatePackageJson; exports.loadConfig = _chunkZPWH22ZMcjs.loadConfig; exports.resolveOptions = _chunk6BNX524Ocjs.resolveOptions;
34
+ exports.build = _chunk44QVHNBQcjs.build; exports.clean = _chunk3HGUCQU6cjs.clean; exports.cleanDirectories = _chunk3HGUCQU6cjs.cleanDirectories; exports.cleanOutputPath = _chunk44QVHNBQcjs.cleanOutputPath; exports.copyBuildAssets = _chunk44QVHNBQcjs.copyBuildAssets; exports.createTsCompilerOptions = _chunkZPWH22ZMcjs.createTsCompilerOptions; exports.executeUnbuild = _chunk44QVHNBQcjs.executeUnbuild; exports.generatePackageJson = _chunk44QVHNBQcjs.generatePackageJson; exports.loadConfig = _chunkZPWH22ZMcjs.loadConfig; exports.resolveOptions = _chunk44QVHNBQcjs.resolveOptions;
package/dist/index.d.cts CHANGED
@@ -1,12 +1,14 @@
1
1
  export { build, cleanOutputPath, copyBuildAssets, executeUnbuild, generatePackageJson, resolveOptions } from './build.cjs';
2
2
  export { clean, cleanDirectories } from './clean.cjs';
3
- export { DeepPartial, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions } from './types.cjs';
3
+ export { DeepPartial, LoadFile, Loader, LoaderContext, LoaderInputFile, LoaderOptions, LoaderOutputFile, LoaderResult, Loaders, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions } from './types.cjs';
4
4
  import { DependentBuildableProjectNode } from '@nx/js/src/utils/buildable-libs-utils';
5
5
  import { StormConfig } from '@storm-software/config';
6
6
  import ts from 'typescript';
7
7
  import { RollupBuildOptions } from 'unbuild';
8
8
  import '@storm-software/config/types';
9
9
  import '@storm-software/build-tools';
10
+ import 'esbuild';
11
+ import 'mkdist';
10
12
 
11
13
  /**
12
14
  * Load a rolldown configuration file
package/dist/index.d.ts CHANGED
@@ -1,12 +1,14 @@
1
1
  export { build, cleanOutputPath, copyBuildAssets, executeUnbuild, generatePackageJson, resolveOptions } from './build.js';
2
2
  export { clean, cleanDirectories } from './clean.js';
3
- export { DeepPartial, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions } from './types.js';
3
+ export { DeepPartial, LoadFile, Loader, LoaderContext, LoaderInputFile, LoaderOptions, LoaderOutputFile, LoaderResult, Loaders, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions } from './types.js';
4
4
  import { DependentBuildableProjectNode } from '@nx/js/src/utils/buildable-libs-utils';
5
5
  import { StormConfig } from '@storm-software/config';
6
6
  import ts from 'typescript';
7
7
  import { RollupBuildOptions } from 'unbuild';
8
8
  import '@storm-software/config/types';
9
9
  import '@storm-software/build-tools';
10
+ import 'esbuild';
11
+ import 'mkdist';
10
12
 
11
13
  /**
12
14
  * Load a rolldown configuration file
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  executeUnbuild,
6
6
  generatePackageJson,
7
7
  resolveOptions
8
- } from "./chunk-TG57GPRS.js";
8
+ } from "./chunk-KXDOKQLW.js";
9
9
  import "./chunk-RBYYB7X2.js";
10
10
  import {
11
11
  clean,
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.cjs';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  declare const analyzePlugin: (options: UnbuildResolvedOptions) => Plugin;
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.js';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  declare const analyzePlugin: (options: UnbuildResolvedOptions) => Plugin;
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.cjs';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  /**
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.js';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  /**
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.cjs';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  declare const swcPlugin: (options: UnbuildResolvedOptions) => Plugin;
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.js';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  declare const swcPlugin: (options: UnbuildResolvedOptions) => Plugin;
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.cjs';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  declare const tscPlugin: (options: UnbuildResolvedOptions) => Promise<Plugin<any>>;
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.js';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  declare const tscPlugin: (options: UnbuildResolvedOptions) => Promise<Plugin<any>>;
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.cjs';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  /**
@@ -1,6 +1,8 @@
1
1
  import { Plugin } from 'rollup';
2
2
  import { UnbuildResolvedOptions } from '../types.js';
3
3
  import '@storm-software/build-tools';
4
+ import 'esbuild';
5
+ import 'mkdist';
4
6
  import 'unbuild';
5
7
 
6
8
  /**
package/dist/types.d.cts CHANGED
@@ -1,9 +1,45 @@
1
1
  import { TypeScriptBuildOptions, TypeScriptBuildResolvedOptions, AdditionalCLIOptions } from '@storm-software/build-tools';
2
- import { BuildOptions, RollupBuildOptions, BuildConfig } from 'unbuild';
2
+ import { CommonOptions } from 'esbuild';
3
+ import { MkdistOptions } from 'mkdist';
4
+ import { BuildOptions, RollupBuildOptions, BuildContext, MkdistBuildEntry, BuildConfig } from 'unbuild';
3
5
 
4
6
  type DeepPartial<T> = T extends object ? {
5
7
  [P in keyof T]?: DeepPartial<T[P]>;
6
8
  } : T;
9
+ interface LoaderInputFile {
10
+ path: string;
11
+ extension: string;
12
+ srcPath?: string;
13
+ getContents: () => Promise<string> | string;
14
+ }
15
+ interface LoaderOutputFile {
16
+ /**
17
+ * relative to distDir
18
+ */
19
+ path: string;
20
+ srcPath?: string;
21
+ extension?: string;
22
+ contents?: string;
23
+ declaration?: boolean;
24
+ errors?: Error[];
25
+ raw?: boolean;
26
+ skip?: boolean;
27
+ }
28
+ type LoaderResult = LoaderOutputFile[] | undefined;
29
+ type LoadFile = (input: LoaderInputFile) => LoaderResult | Promise<LoaderResult>;
30
+ interface LoaderOptions {
31
+ ext?: "js" | "mjs" | "cjs" | "ts" | "mts" | "cts";
32
+ format?: "cjs" | "esm";
33
+ declaration?: boolean;
34
+ esbuild?: CommonOptions;
35
+ postcss?: false | Record<string, any>;
36
+ }
37
+ interface LoaderContext {
38
+ loadFile: LoadFile;
39
+ options: LoaderOptions;
40
+ }
41
+ type Loader = (input: LoaderInputFile, context: LoaderContext) => LoaderResult | Promise<LoaderResult>;
42
+ type Loaders = ("js" | "vue" | "sass" | "postcss" | Loader)[];
7
43
  type UnbuildOptions = Omit<Partial<BuildOptions>, "entries" | "rootDir" | "externals" | "rollupConfig" | "outDir" | "declaration" | "format" | "parallel"> & Omit<TypeScriptBuildOptions, "entry" | "format"> & {
8
44
  /**
9
45
  * The directories to run the build process out of
@@ -19,7 +55,16 @@ type UnbuildOptions = Omit<Partial<BuildOptions>, "entries" | "rootDir" | "exter
19
55
  * Path to a unbuild configuration file relative to the project root
20
56
  */
21
57
  configPath?: string;
58
+ /**
59
+ * Should the build process emit declaration files
60
+ *
61
+ * @defaultValue `true`
62
+ */
22
63
  emitTypes?: boolean;
64
+ /**
65
+ * Override the loader options used in the build process
66
+ */
67
+ loaders?: Loaders | ((ctx: BuildContext, entry: MkdistBuildEntry, opts: MkdistOptions) => Loaders | Promise<Loaders>);
23
68
  };
24
69
  type UnbuildResolvedOptions = Omit<TypeScriptBuildResolvedOptions, "entryPoints" | "external" | "emitTypes"> & BuildConfig & {
25
70
  /**
@@ -33,4 +78,4 @@ type UnbuildResolvedOptions = Omit<TypeScriptBuildResolvedOptions, "entryPoints"
33
78
  };
34
79
  type UnbuildCLIOptions = AdditionalCLIOptions & Pick<UnbuildOptions, "name" | "outputPath" | "platform" | "bundle" | "target" | "watch" | "clean" | "debug" | "banner" | "footer" | "splitting" | "treeShaking" | "generatePackageJson" | "metafile" | "minify" | "includeSrc" | "verbose" | "emitTypes">;
35
80
 
36
- export type { DeepPartial, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions };
81
+ export type { DeepPartial, LoadFile, Loader, LoaderContext, LoaderInputFile, LoaderOptions, LoaderOutputFile, LoaderResult, Loaders, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions };
package/dist/types.d.ts CHANGED
@@ -1,9 +1,45 @@
1
1
  import { TypeScriptBuildOptions, TypeScriptBuildResolvedOptions, AdditionalCLIOptions } from '@storm-software/build-tools';
2
- import { BuildOptions, RollupBuildOptions, BuildConfig } from 'unbuild';
2
+ import { CommonOptions } from 'esbuild';
3
+ import { MkdistOptions } from 'mkdist';
4
+ import { BuildOptions, RollupBuildOptions, BuildContext, MkdistBuildEntry, BuildConfig } from 'unbuild';
3
5
 
4
6
  type DeepPartial<T> = T extends object ? {
5
7
  [P in keyof T]?: DeepPartial<T[P]>;
6
8
  } : T;
9
+ interface LoaderInputFile {
10
+ path: string;
11
+ extension: string;
12
+ srcPath?: string;
13
+ getContents: () => Promise<string> | string;
14
+ }
15
+ interface LoaderOutputFile {
16
+ /**
17
+ * relative to distDir
18
+ */
19
+ path: string;
20
+ srcPath?: string;
21
+ extension?: string;
22
+ contents?: string;
23
+ declaration?: boolean;
24
+ errors?: Error[];
25
+ raw?: boolean;
26
+ skip?: boolean;
27
+ }
28
+ type LoaderResult = LoaderOutputFile[] | undefined;
29
+ type LoadFile = (input: LoaderInputFile) => LoaderResult | Promise<LoaderResult>;
30
+ interface LoaderOptions {
31
+ ext?: "js" | "mjs" | "cjs" | "ts" | "mts" | "cts";
32
+ format?: "cjs" | "esm";
33
+ declaration?: boolean;
34
+ esbuild?: CommonOptions;
35
+ postcss?: false | Record<string, any>;
36
+ }
37
+ interface LoaderContext {
38
+ loadFile: LoadFile;
39
+ options: LoaderOptions;
40
+ }
41
+ type Loader = (input: LoaderInputFile, context: LoaderContext) => LoaderResult | Promise<LoaderResult>;
42
+ type Loaders = ("js" | "vue" | "sass" | "postcss" | Loader)[];
7
43
  type UnbuildOptions = Omit<Partial<BuildOptions>, "entries" | "rootDir" | "externals" | "rollupConfig" | "outDir" | "declaration" | "format" | "parallel"> & Omit<TypeScriptBuildOptions, "entry" | "format"> & {
8
44
  /**
9
45
  * The directories to run the build process out of
@@ -19,7 +55,16 @@ type UnbuildOptions = Omit<Partial<BuildOptions>, "entries" | "rootDir" | "exter
19
55
  * Path to a unbuild configuration file relative to the project root
20
56
  */
21
57
  configPath?: string;
58
+ /**
59
+ * Should the build process emit declaration files
60
+ *
61
+ * @defaultValue `true`
62
+ */
22
63
  emitTypes?: boolean;
64
+ /**
65
+ * Override the loader options used in the build process
66
+ */
67
+ loaders?: Loaders | ((ctx: BuildContext, entry: MkdistBuildEntry, opts: MkdistOptions) => Loaders | Promise<Loaders>);
23
68
  };
24
69
  type UnbuildResolvedOptions = Omit<TypeScriptBuildResolvedOptions, "entryPoints" | "external" | "emitTypes"> & BuildConfig & {
25
70
  /**
@@ -33,4 +78,4 @@ type UnbuildResolvedOptions = Omit<TypeScriptBuildResolvedOptions, "entryPoints"
33
78
  };
34
79
  type UnbuildCLIOptions = AdditionalCLIOptions & Pick<UnbuildOptions, "name" | "outputPath" | "platform" | "bundle" | "target" | "watch" | "clean" | "debug" | "banner" | "footer" | "splitting" | "treeShaking" | "generatePackageJson" | "metafile" | "minify" | "includeSrc" | "verbose" | "emitTypes">;
35
80
 
36
- export type { DeepPartial, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions };
81
+ export type { DeepPartial, LoadFile, Loader, LoaderContext, LoaderInputFile, LoaderOptions, LoaderOutputFile, LoaderResult, Loaders, UnbuildCLIOptions, UnbuildOptions, UnbuildResolvedOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/unbuild",
3
- "version": "0.35.1",
3
+ "version": "0.35.2",
4
4
  "type": "module",
5
5
  "description": "A package containing `unbuild` utilities for building Storm Software libraries and applications",
6
6
  "repository": {
@@ -162,8 +162,10 @@
162
162
  "@swc/core": "1.7.26",
163
163
  "commander": "^12.1.0",
164
164
  "defu": "6.1.4",
165
+ "esbuild": "^0.24.0",
165
166
  "glob": "^11.0.1",
166
167
  "jiti": "^2.4.2",
168
+ "mkdist": "^2.2.0",
167
169
  "rollup": "^4.29.1",
168
170
  "rollup-plugin-typescript2": "0.36.0",
169
171
  "unbuild": "^3.2.0"