Skip to content

Commit d0efd62

Browse files
committed
feat(devextreme-nx-infra-plugin): add ability to pass multiple exclude patterns
1 parent 6f6e369 commit d0efd62

File tree

6 files changed

+20
-14
lines changed

6 files changed

+20
-14
lines changed

packages/devextreme-react/project.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"dependsOn": ["npm:clean"],
3232
"options": {
3333
"srcPattern": "./src/**/*.{ts,tsx}",
34-
"excludePattern": "./src/**/__tests__/**/*",
34+
"excludePatterns": ["./src/**/__tests__/**/*", "./src/**/__mocks__/**/*"],
3535
"tsconfig": "./tsconfig.esm.json",
3636
"outDir": "./npm/esm",
3737
"module": "esm"
@@ -45,7 +45,7 @@
4545
"dependsOn": ["npm:clean"],
4646
"options": {
4747
"srcPattern": "./src/**/*.{ts,tsx}",
48-
"excludePattern": "./src/**/__tests__/**/*",
48+
"excludePatterns": ["./src/**/__tests__/**/*", "./src/**/__mocks__/**/*"],
4949
"tsconfig": "./tsconfig.json",
5050
"outDir": "./npm/cjs",
5151
"module": "cjs"

packages/devextreme-vue/project.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
"dependsOn": ["npm:clean"],
6363
"options": {
6464
"srcPattern": "./src/**/*.ts",
65-
"excludePattern": "./src/**/__tests__/**/*",
65+
"excludePatterns": ["./src/**/__tests__/**/*", "./src/**/__mocks__/**/*"],
6666
"tsconfig": "./tsconfig.esm.json",
6767
"outDir": "./npm/esm",
6868
"module": "esm"
@@ -76,7 +76,7 @@
7676
"dependsOn": ["npm:clean"],
7777
"options": {
7878
"srcPattern": "./src/**/*.ts",
79-
"excludePattern": "./src/**/__tests__/**/*",
79+
"excludePatterns": ["./src/**/__tests__/**/*", "./src/**/__mocks__/**/*"],
8080
"tsconfig": "./tsconfig.json",
8181
"outDir": "./npm/cjs",
8282
"module": "cjs"

packages/nx-infra-plugin/src/executors/build-typescript/executor.e2e.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ describe('BuildTypescriptExecutor E2E', () => {
7878
const options: BuildTypescriptExecutorSchema = {
7979
module: 'esm',
8080
srcPattern: './src/**/*.{ts,tsx}',
81-
excludePattern: './src/**/__tests__/**/*',
81+
excludePatterns: ['./src/**/__tests__/**/*'],
8282
tsconfig: './tsconfig.esm.json',
8383
outDir: './npm/esm',
8484
};
@@ -107,7 +107,7 @@ describe('BuildTypescriptExecutor E2E', () => {
107107
const options: BuildTypescriptExecutorSchema = {
108108
module: 'cjs',
109109
srcPattern: './src/**/*.{ts,tsx}',
110-
excludePattern: './src/**/__tests__/**/*',
110+
excludePatterns: ['./src/**/__tests__/**/*'],
111111
tsconfig: './tsconfig.json',
112112
outDir: './npm/cjs',
113113
};

packages/nx-infra-plugin/src/executors/build-typescript/executor.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,17 @@ const runExecutor: PromiseExecutor<BuildTypescriptExecutorSchema> = async (optio
7070

7171
const srcPattern = options.srcPattern || DEFAULT_SRC_PATTERN;
7272
const globPattern = normalizeGlobPathForWindows(path.join(absoluteProjectRoot, srcPattern));
73-
const excludePattern = options.excludePattern
74-
? normalizeGlobPathForWindows(path.join(absoluteProjectRoot, options.excludePattern))
75-
: undefined;
73+
74+
const excludePatterns = options.excludePatterns
75+
? options.excludePatterns.map((pattern) =>
76+
normalizeGlobPathForWindows(path.join(absoluteProjectRoot, pattern)),
77+
)
78+
: [];
7679

7780
const sourceFiles = await glob(globPattern, {
7881
absolute: true,
7982
nodir: true,
80-
ignore: excludePattern ? [excludePattern] : [],
83+
ignore: excludePatterns,
8184
});
8285

8386
if (sourceFiles.length === 0) {

packages/nx-infra-plugin/src/executors/build-typescript/schema.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@
1515
"description": "Glob pattern for source files to include in compilation. Supports standard glob syntax with wildcards. Default pattern includes all .ts and .tsx files in src directory recursively.",
1616
"default": "./src/**/*.{ts,tsx}"
1717
},
18-
"excludePattern": {
19-
"type": "string",
20-
"description": "Glob pattern for files to exclude from compilation (e.g., test files, stories). Files matching this pattern will be ignored even if they match srcPattern. Commonly used to exclude __tests__, __mocks__, or *.spec.ts files."
18+
"excludePatterns": {
19+
"type": "array",
20+
"items": {
21+
"type": "string"
22+
},
23+
"description": "Array of glob patterns for files to exclude from compilation (e.g., test files, stories)."
2124
},
2225
"tsconfig": {
2326
"type": "string",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export interface BuildTypescriptExecutorSchema {
22
module?: 'cjs' | 'esm';
33
srcPattern?: string;
4-
excludePattern?: string;
4+
excludePatterns?: string[];
55
tsconfig?: string;
66
outDir?: string;
77
}

0 commit comments

Comments
 (0)