Skip to content
This repository was archived by the owner on Jan 16, 2025. It is now read-only.

Commit 60a4bd9

Browse files
committed
fix(options): CLI option --ignore
1 parent 2471dae commit 60a4bd9

File tree

5 files changed

+34
-1
lines changed

5 files changed

+34
-1
lines changed

src/swc/__tests__/options.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,4 +240,21 @@ describe('parserArgs', () => {
240240
expect(result.swcOptions).toEqual(expectedOptions);
241241
});
242242
})
243+
244+
describe("--ignore", () => {
245+
it("includes ignore in cli options", async () => {
246+
const args = [
247+
"node",
248+
"/path/to/node_modules/swc-cli/bin/swc.js",
249+
"src",
250+
"--ignore",
251+
"*.js",
252+
];
253+
expect(parserArgs(args).cliOptions).toEqual(
254+
expect.objectContaining({
255+
ignore: ["*.js"],
256+
})
257+
);
258+
});
259+
});
243260
})

src/swc/__tests__/sources.test.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,17 @@ describe("globSources", () => {
5858

5959
expect([...files]).toEqual(["file"]);
6060
});
61+
62+
it("ignore sources when patterns provided", async () => {
63+
(fs as any).setMockStats({ directory: { isDirectory: () => true } });
64+
65+
(glob as unknown as jest.Mock).mockResolvedValue([]);
66+
await globSources(["directory"], false, ["**/file"]);
67+
expect(glob).toHaveBeenCalledWith(
68+
"directory/**",
69+
expect.objectContaining({ ignore: ["**/file"] })
70+
);
71+
});
6172
});
6273

6374
describe("splitCompilableAndCopyable", () => {

src/swc/dir.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ async function initialCompilation(cliOptions: CliOptions, swcOptions: Options) {
9898
const {
9999
includeDotfiles,
100100
filenames,
101+
ignore,
101102
copyFiles,
102103
extensions,
103104
outDir,

src/swc/options.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ export interface CliOptions {
160160
readonly sourceMapTarget?: string;
161161
readonly filename: string;
162162
readonly filenames: string[];
163+
readonly ignore: string[];
163164
readonly extensions: string[];
164165
readonly watch: boolean;
165166
readonly copyFiles: boolean;
@@ -261,6 +262,7 @@ export default function parserArgs(args: string[]) {
261262
outFile: opts.outFile,
262263
filename: opts.filename,
263264
filenames,
265+
ignore: opts.ignore,
264266
sync: !!opts.sync,
265267
sourceMapTarget: opts.sourceMapTarget,
266268
extensions: opts.extensions || DEFAULT_EXTENSIONS,

src/swc/sources.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ import { join, basename, extname } from "path";
88
*/
99
export async function globSources(
1010
sources: string[],
11-
includeDotfiles = false
11+
includeDotfiles = false,
12+
ignore: string[] = []
1213
): Promise<string[]> {
1314
const globConfig = {
1415
dot: includeDotfiles,
1516
nodir: true,
17+
ignore,
1618
};
1719

1820
const files = await Promise.all(

0 commit comments

Comments
 (0)