@oazmi/build-tools
Version:
general deno build tool scripts which I practically use in all of my typescript repos
68 lines • 3.28 kB
TypeScript
import type * as esbuild from "./src/esbuild_types.js";
import { denoResolverPlugin, type DenoResolverPluginOptions } from "./src/plugin_deno_resolver.js";
export { denoResolverPlugin, type DenoResolverPluginOptions };
import { DEFAULT_LOADER, denoLoaderPlugin, type DenoLoaderPluginOptions } from "./src/plugin_deno_loader.js";
export { DEFAULT_LOADER, denoLoaderPlugin, type DenoLoaderPluginOptions };
export { type EsbuildResolution, esbuildResolutionToURL, urlToEsbuildResolution, } from "./src/shared.js";
/** Options for the {@link denoPlugins} function. */
export interface DenoPluginsOptions {
/**
* Specify which loader to use. By default this will use the `native` loader,
* unless the `--allow-run` permission has not been given.
*
* See {@link denoLoaderPlugin} for more information on the different loaders.
*/
loader?: "native" | "portable";
/**
* Specify the path to a deno.json config file to use. This is equivalent to
* the `--config` flag to the Deno executable. This path must be absolute.
*
* If not specified, the plugin will attempt to find the nearest deno.json and
* use that. If the deno.json is part of a workspace, the plugin will
* automatically find the workspace root.
*/
configPath?: string;
/**
* Specify a URL to an import map file to use when resolving import
* specifiers. This is equivalent to the `--import-map` flag to the Deno
* executable. This URL may be remote or a local file URL.
*
* If this option is not specified, the deno.json config file is consulted to
* determine what import map to use, if any.
*/
importMapURL?: string;
/**
* Specify the path to a deno.lock file to use. This is equivalent to the
* `--lock` flag to the Deno executable. This path must be absolute.
*
* If this option is not specified, the deno.json config file is consulted to
* determine what lock file to use, if any.
*
* A lockfile must be present to resolve `jsr:` specifiers with the `portable`
* loader. When using the `native` loader, a lockfile is not required, but to
* ensure dependencies are de-duplicated correctly, it is recommended to use a
* lockfile.
*/
lockPath?: string;
/**
* Specify how the loader should handle NPM packages. By default and if this
* option is set to `none`, the loader will use the global cache to resolve
* NPM packages. If this option is set to `manual`, the loader will use a
* manually managed `node_modules` directory. If this option is set to `auto`,
* the loader will use a local `node_modules` directory.
*
* If this option is not specified, the deno.json config file is consulted to
* determine which mode to use.
*
* This option is ignored when using the `portable` loader, as the portable
* loader always uses a manual `node_modules` directory (equivalent of
* `nodeModulesDir: "manual"`).
*/
nodeModulesDir?: "auto" | "manual" | "none";
}
/**
* A convenience function to enable both the Deno resolver plugin, and Deno
* loader plugin.
*/
export declare function denoPlugins(opts?: DenoPluginsOptions): esbuild.Plugin[];
//# sourceMappingURL=mod.d.ts.map