diff --git a/CHANGELOG.md b/CHANGELOG.md index 8841a9b..ee58304 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [7.0.2](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/compare/v7.0.1...v7.0.2) (2025-03-06) + + +### Bug Fixes + +* better types ([9d009b3](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/commit/9d009b366a6f45b44d3120bda8450c28ceee6427)) + ### [7.0.1](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/compare/v7.0.0...v7.0.1) (2025-03-06) diff --git a/package-lock.json b/package-lock.json index 332218c..eee691a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "css-minimizer-webpack-plugin", - "version": "7.0.1", + "version": "7.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "css-minimizer-webpack-plugin", - "version": "7.0.1", + "version": "7.0.2", "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", diff --git a/package.json b/package.json index 810656b..96c3ce6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "css-minimizer-webpack-plugin", - "version": "7.0.1", + "version": "7.0.2", "description": "CSS minimizer (minifier) plugin for Webpack", "license": "MIT", "repository": "webpack-contrib/css-minimizer-webpack-plugin", diff --git a/src/index.js b/src/index.js index 8a9f367..973f54c 100644 --- a/src/index.js +++ b/src/index.js @@ -15,7 +15,7 @@ const { } = require("./utils"); const schema = require("./options.json"); -const { minify: minifyWorker } = require("./minify"); +const { minify } = require("./minify"); /** @typedef {import("schema-utils/declarations/validate").Schema} Schema */ /** @typedef {import("webpack").Compiler} Compiler */ @@ -87,7 +87,7 @@ const { minify: minifyWorker } = require("./minify"); * @param {Input} input * @param {RawSourceMap | undefined} sourceMap * @param {InferDefaultType} minifyOptions - * @returns {Promise} + * @returns {Promise | MinimizedResult} */ /** @@ -134,7 +134,7 @@ const { minify: minifyWorker } = require("./minify"); /** * @template T - * @typedef {JestWorker & { transform: (options: string) => InternalResult, minify: (options: InternalOptions) => InternalResult }} MinimizerWorker + * @typedef {JestWorker & { transform: (options: string) => Promise, minify: (options: InternalOptions) => Promise }} MinimizerWorker */ /** @@ -578,7 +578,7 @@ class CssMinimizerPlugin { try { result = await (getWorker ? getWorker().transform(getSerializeJavascript()(options)) - : minifyWorker(options)); + : minify(options)); } catch (error) { const hasSourceMap = inputSourceMap && CssMinimizerPlugin.isSourceMap(inputSourceMap); diff --git a/src/minify.js b/src/minify.js index 000f0fd..8f76cbf 100644 --- a/src/minify.js +++ b/src/minify.js @@ -6,7 +6,7 @@ * @param {import("./index.js").InternalOptions} options * @returns {Promise} */ -const minify = async (options) => { +async function minify(options) { const minifyFns = Array.isArray(options.minimizer.implementation) ? options.minimizer.implementation : [options.minimizer.implementation]; @@ -59,7 +59,7 @@ const minify = async (options) => { } return result; -}; +} /** * @param {string} options diff --git a/src/utils.js b/src/utils.js index a576746..8466f32 100644 --- a/src/utils.js +++ b/src/utils.js @@ -69,8 +69,8 @@ function throttleAll(limit, tasks) { /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function cssnanoMinify( @@ -191,8 +191,8 @@ cssnanoMinify.supportsWorkerThreads = () => true; /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function cssoMinify(input, sourceMap, minimizerOptions) { @@ -220,8 +220,8 @@ cssoMinify.supportsWorkerThreads = () => true; /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function cleanCssMinify(input, sourceMap, minimizerOptions) { @@ -265,8 +265,8 @@ cleanCssMinify.supportsWorkerThreads = () => true; /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function esbuildMinify(input, sourceMap, minimizerOptions) { @@ -359,8 +359,8 @@ esbuildMinify.supportsWorkerThreads = () => false; /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function parcelCssMinify(input, sourceMap, minimizerOptions) { @@ -405,8 +405,8 @@ parcelCssMinify.supportsWorkerThreads = () => false; /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function lightningCssMinify(input, sourceMap, minimizerOptions) { @@ -451,8 +451,8 @@ lightningCssMinify.supportsWorkerThreads = () => false; /* istanbul ignore next */ /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ async function swcMinify(input, sourceMap, minimizerOptions) { diff --git a/test/minify-option.test.js b/test/minify-option.test.js index 6e26c88..855cda9 100644 --- a/test/minify-option.test.js +++ b/test/minify-option.test.js @@ -152,7 +152,7 @@ describe('"minify" option', () => { { test: ".three{background: white;}" }, ], minify: [ - async (data, inputMap, minimizerOptions) => { + (data, inputMap, minimizerOptions) => { const [input] = Object.values(data); return { code: `${input}\n.one{color: red;}\n${minimizerOptions.test}\n`, diff --git a/types/index.d.ts b/types/index.d.ts index 8ff1703..c34d48c 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -179,7 +179,7 @@ type BasicMinimizerImplementation = ( input: Input, sourceMap: RawSourceMap | undefined, minifyOptions: InferDefaultType, -) => Promise; +) => Promise | MinimizedResult; type MinimizeFunctionHelpers = { supportsWorkerThreads?: (() => boolean | undefined) | undefined; }; @@ -222,8 +222,8 @@ type BasePluginOptions = { parallel?: Parallel; }; type MinimizerWorker = JestWorker & { - transform: (options: string) => InternalResult; - minify: (options: InternalOptions) => InternalResult; + transform: (options: string) => Promise; + minify: (options: InternalOptions) => Promise; }; type ProcessOptionsExtender = | ProcessOptions diff --git a/types/utils.d.ts b/types/utils.d.ts index 9549d12..e1ea35c 100644 --- a/types/utils.d.ts +++ b/types/utils.d.ts @@ -25,98 +25,98 @@ export function throttleAll(limit: number, tasks: Task[]): Promise; export function memoize(fn: (() => any) | undefined): () => T; /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function cssnanoMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions?: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace cssnanoMinify { function supportsWorkerThreads(): boolean; } /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function cssoMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace cssoMinify { function supportsWorkerThreads(): boolean; } /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function cleanCssMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace cleanCssMinify { function supportsWorkerThreads(): boolean; } /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function esbuildMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace esbuildMinify { function supportsWorkerThreads(): boolean; } /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function parcelCssMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace parcelCssMinify { function supportsWorkerThreads(): boolean; } /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function lightningCssMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace lightningCssMinify { function supportsWorkerThreads(): boolean; } /** * @param {Input} input - * @param {RawSourceMap | undefined} sourceMap - * @param {CustomOptions} minimizerOptions + * @param {RawSourceMap} [sourceMap] + * @param {CustomOptions} [minimizerOptions] * @return {Promise} */ export function swcMinify( input: Input, - sourceMap: RawSourceMap | undefined, - minimizerOptions: CustomOptions, + sourceMap?: import("@jridgewell/trace-mapping").EncodedSourceMap | undefined, + minimizerOptions?: import("./index.js").CustomOptions | undefined, ): Promise; export namespace swcMinify { function supportsWorkerThreads(): boolean;