Skip to content

Commit 68bc648

Browse files
clydinalan-agius4
authored andcommitted
refactor(@angular-devkit/build-angular): remove circular dependency in dev-server builder
This commit moves the `isEsbuildBased` function from `builder.ts` to `options.ts` to resolve a circular dependency.
1 parent 04de1f0 commit 68bc648

File tree

3 files changed

+18
-23
lines changed

3 files changed

+18
-23
lines changed

goldens/circular-deps/packages.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
[
2-
[
3-
"packages/angular_devkit/build_angular/src/builders/dev-server/builder.ts",
4-
"packages/angular_devkit/build_angular/src/builders/dev-server/options.ts"
5-
],
62
[
73
"packages/angular/build/src/tools/esbuild/angular/component-stylesheets.ts",
84
"packages/angular/build/src/tools/esbuild/bundler-context.ts",

packages/angular_devkit/build_angular/src/builders/dev-server/builder.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type { Plugin } from 'esbuild';
1313
import type http from 'node:http';
1414
import { EMPTY, Observable, defer, switchMap } from 'rxjs';
1515
import type { ExecutionTransformer } from '../../transforms';
16-
import { normalizeOptions } from './options';
16+
import { isEsbuildBased, normalizeOptions } from './options';
1717
import type { Schema as DevServerBuilderOptions } from './schema';
1818

1919
/**
@@ -194,23 +194,6 @@ case.
194194
};
195195
}
196196

197-
export function isEsbuildBased(
198-
builderName: string,
199-
): builderName is
200-
| '@angular/build:application'
201-
| '@angular-devkit/build-angular:application'
202-
| '@angular-devkit/build-angular:browser-esbuild' {
203-
if (
204-
builderName === '@angular/build:application' ||
205-
builderName === '@angular-devkit/build-angular:application' ||
206-
builderName === '@angular-devkit/build-angular:browser-esbuild'
207-
) {
208-
return true;
209-
}
210-
211-
return false;
212-
}
213-
214197
interface BuilderSelectorInfo {
215198
builderName: string;
216199
forceEsbuild: boolean;

packages/angular_devkit/build_angular/src/builders/dev-server/options.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,27 @@ import { BuilderContext, targetFromTargetString } from '@angular-devkit/architec
1010
import path from 'node:path';
1111
import { normalizeCacheOptions } from '../../utils/normalize-cache';
1212
import { normalizeOptimization } from '../../utils/normalize-optimization';
13-
import { isEsbuildBased } from './builder';
1413
import { Schema as DevServerOptions } from './schema';
1514

1615
export type NormalizedDevServerOptions = Awaited<ReturnType<typeof normalizeOptions>>;
1716

17+
export function isEsbuildBased(
18+
builderName: string,
19+
): builderName is
20+
| '@angular/build:application'
21+
| '@angular-devkit/build-angular:application'
22+
| '@angular-devkit/build-angular:browser-esbuild' {
23+
if (
24+
builderName === '@angular/build:application' ||
25+
builderName === '@angular-devkit/build-angular:application' ||
26+
builderName === '@angular-devkit/build-angular:browser-esbuild'
27+
) {
28+
return true;
29+
}
30+
31+
return false;
32+
}
33+
1834
/**
1935
* Normalize the user provided options by creating full paths for all path based options
2036
* and converting multi-form options into a single form that can be directly used

0 commit comments

Comments
 (0)