Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: drop cjs wrapper #654

Merged
merged 1 commit into from Dec 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions package.json
Expand Up @@ -11,14 +11,14 @@
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"main": "dist/cjs.js",
"types": "types/cjs.d.ts",
"main": "dist/index.js",
"types": "types/index.d.ts",
"engines": {
"node": ">= 12.20.0"
},
"scripts": {
"start": "npm run build -- -w",
"clean": "del-cli dist",
"clean": "del-cli dist types",
"prebuild": "npm run clean",
"build:types": "tsc --declaration --emitDeclarationOnly --outDir types --rootDir src && prettier \"types/**/*.ts\" --write",
"build:code": "cross-env NODE_ENV=production babel src -d dist --copy-files",
Expand Down
3 changes: 0 additions & 3 deletions src/cjs.js

This file was deleted.

20 changes: 10 additions & 10 deletions src/index.js
@@ -1,16 +1,16 @@
import path from "path";
const path = require("path");

import { validate } from "schema-utils";
import serialize from "serialize-javascript";
import normalizePath from "normalize-path";
import globParent from "glob-parent";
import fastGlob from "fast-glob";
const { validate } = require("schema-utils");
const serialize = require("serialize-javascript");
const normalizePath = require("normalize-path");
const globParent = require("glob-parent");
const fastGlob = require("fast-glob");

// @ts-ignore
import { version } from "../package.json";
const { version } = require("../package.json");

import schema from "./options.json";
import { readFile, stat, throttleAll } from "./utils";
const schema = require("./options.json");
const { readFile, stat, throttleAll } = require("./utils");

const template = /\[\\*([\w:]+)\\*\]/i;

Expand Down Expand Up @@ -1096,4 +1096,4 @@ class CopyPlugin {
}
}

export default CopyPlugin;
module.exports = CopyPlugin;
2 changes: 1 addition & 1 deletion src/utils.js
Expand Up @@ -119,4 +119,4 @@ function throttleAll(limit, tasks) {
});
}

export { stat, readFile, throttleAll };
module.exports = { stat, readFile, throttleAll };
8 changes: 0 additions & 8 deletions test/cjs.test.js

This file was deleted.

3 changes: 0 additions & 3 deletions types/cjs.d.ts

This file was deleted.

238 changes: 134 additions & 104 deletions types/index.d.ts
@@ -1,107 +1,4 @@
export default CopyPlugin;
export type Schema = import("schema-utils/declarations/validate").Schema;
export type Compiler = import("webpack").Compiler;
export type Compilation = import("webpack").Compilation;
export type WebpackError = import("webpack").WebpackError;
export type Asset = import("webpack").Asset;
export type GlobbyOptions = import("globby").Options;
export type GlobEntry = import("globby").GlobEntry;
export type WebpackLogger = ReturnType<Compilation["getLogger"]>;
export type CacheFacade = ReturnType<Compilation["getCache"]>;
export type Etag = ReturnType<
ReturnType<Compilation["getCache"]>["getLazyHashedEtag"]
>;
export type Snapshot = ReturnType<
Compilation["fileSystemInfo"]["mergeSnapshots"]
>;
export type Force = boolean;
export type CopiedResult = {
sourceFilename: string;
absoluteFilename: string;
filename: string;
source: Asset["source"];
force: Force | undefined;
info: {
[key: string]: string;
};
};
export type StringPattern = string;
export type NoErrorOnMissing = boolean;
export type Context = string;
export type From = string;
export type ToFunction = (pathData: {
context: string;
absoluteFilename?: string;
}) => string;
export type To = string | ToFunction;
export type ToType = "dir" | "file" | "template";
export type TransformerFunction = (
input: Buffer,
absoluteFilename: string
) => any;
export type TransformerCacheObject =
| {
keys: {
[key: string]: any;
};
}
| {
keys: (
defaultCacheKeys: {
[key: string]: any;
},
absoluteFilename: string
) => Promise<{
[key: string]: any;
}>;
};
export type TransformerObject = {
transformer: TransformerFunction;
cache?: boolean | TransformerCacheObject | undefined;
};
export type Transform = TransformerFunction | TransformerObject;
export type Filter = (filepath: string) => any;
export type TransformAllFunction = (
data: {
data: Buffer;
sourceFilename: string;
absoluteFilename: string;
}[]
) => any;
export type Info =
| {
[key: string]: string;
}
| ((item: {
absoluteFilename: string;
sourceFilename: string;
filename: string;
toType: ToType;
}) => {
[key: string]: string;
});
export type ObjectPattern = {
from: From;
globOptions?: import("globby").Options | undefined;
context?: string | undefined;
to?: To | undefined;
toType?: ToType | undefined;
info?: Info | undefined;
filter?: Filter | undefined;
transform?: Transform | undefined;
transformAll?: TransformAllFunction | undefined;
force?: boolean | undefined;
priority?: number | undefined;
noErrorOnMissing?: boolean | undefined;
};
export type Pattern = StringPattern | ObjectPattern;
export type AdditionalOptions = {
concurrency?: number | undefined;
};
export type PluginOptions = {
patterns: Pattern[];
options?: AdditionalOptions | undefined;
};
export = CopyPlugin;
/** @typedef {import("schema-utils/declarations/validate").Schema} Schema */
/** @typedef {import("webpack").Compiler} Compiler */
/** @typedef {import("webpack").Compilation} Compilation */
Expand Down Expand Up @@ -257,3 +154,136 @@ declare class CopyPlugin {
*/
apply(compiler: Compiler): void;
}
declare namespace CopyPlugin {
export {
Schema,
Compiler,
Compilation,
WebpackError,
Asset,
GlobbyOptions,
GlobEntry,
WebpackLogger,
CacheFacade,
Etag,
Snapshot,
Force,
CopiedResult,
StringPattern,
NoErrorOnMissing,
Context,
From,
ToFunction,
To,
ToType,
TransformerFunction,
TransformerCacheObject,
TransformerObject,
Transform,
Filter,
TransformAllFunction,
Info,
ObjectPattern,
Pattern,
AdditionalOptions,
PluginOptions,
};
}
type Compiler = import("webpack").Compiler;
type PluginOptions = {
patterns: Pattern[];
options?: AdditionalOptions | undefined;
};
type Schema = import("schema-utils/declarations/validate").Schema;
type Compilation = import("webpack").Compilation;
type WebpackError = import("webpack").WebpackError;
type Asset = import("webpack").Asset;
type GlobbyOptions = import("globby").Options;
type GlobEntry = import("globby").GlobEntry;
type WebpackLogger = ReturnType<Compilation["getLogger"]>;
type CacheFacade = ReturnType<Compilation["getCache"]>;
type Etag = ReturnType<
ReturnType<Compilation["getCache"]>["getLazyHashedEtag"]
>;
type Snapshot = ReturnType<Compilation["fileSystemInfo"]["mergeSnapshots"]>;
type Force = boolean;
type CopiedResult = {
sourceFilename: string;
absoluteFilename: string;
filename: string;
source: Asset["source"];
force: Force | undefined;
info: {
[key: string]: string;
};
};
type StringPattern = string;
type NoErrorOnMissing = boolean;
type Context = string;
type From = string;
type ToFunction = (pathData: {
context: string;
absoluteFilename?: string;
}) => string;
type To = string | ToFunction;
type ToType = "dir" | "file" | "template";
type TransformerFunction = (input: Buffer, absoluteFilename: string) => any;
type TransformerCacheObject =
| {
keys: {
[key: string]: any;
};
}
| {
keys: (
defaultCacheKeys: {
[key: string]: any;
},
absoluteFilename: string
) => Promise<{
[key: string]: any;
}>;
};
type TransformerObject = {
transformer: TransformerFunction;
cache?: boolean | TransformerCacheObject | undefined;
};
type Transform = TransformerFunction | TransformerObject;
type Filter = (filepath: string) => any;
type TransformAllFunction = (
data: {
data: Buffer;
sourceFilename: string;
absoluteFilename: string;
}[]
) => any;
type Info =
| {
[key: string]: string;
}
| ((item: {
absoluteFilename: string;
sourceFilename: string;
filename: string;
toType: ToType;
}) => {
[key: string]: string;
});
type ObjectPattern = {
from: From;
globOptions?: import("globby").Options | undefined;
context?: string | undefined;
to?: To | undefined;
toType?: ToType | undefined;
info?: Info | undefined;
filter?: Filter | undefined;
transform?: Transform | undefined;
transformAll?: TransformAllFunction | undefined;
force?: boolean | undefined;
priority?: number | undefined;
noErrorOnMissing?: boolean | undefined;
};
type Pattern = StringPattern | ObjectPattern;
type AdditionalOptions = {
concurrency?: number | undefined;
};