Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion packages/angular/src/builders/build/builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,13 @@ export async function* runBuilder(
? nfBuilderOptions.tsConfig
: ngBuilderOptions.tsConfig;

const adapter = createAngularBuildAdapter(ngBuilderOptions, context);
const adapter = createAngularBuildAdapter(
{
...ngBuilderOptions,
plugins: nfBuilderOptions.plugins,
},
context
);

setBuildAdapter(adapter);

Expand Down
2 changes: 1 addition & 1 deletion packages/angular/src/builders/build/schema.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ export interface NfBuilderSchema extends JsonObject {
cacheExternalArtifacts?: boolean;
}

export type NfInternalOptions = { plugins: Plugin[] };
export type NfInternalOptions = { plugins?: Plugin[] };
3 changes: 3 additions & 0 deletions packages/angular/src/config/angular-skip-list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ import { type SkipList, DEFAULT_SKIP_LIST } from '@softarc/native-federation/con
export const NG_SKIP_LIST: SkipList = [
...DEFAULT_SKIP_LIST,
'@angular-architects/native-federation',
'@angular-architects/native-federation-v4',
'@angular-architects/native-federation-v4/config',
'@angular-architects/native-federation-v4/internal',
'zone.js',
'@angular/localize',
'@angular/localize/init',
Expand Down
6 changes: 5 additions & 1 deletion packages/angular/src/utils/angular-bundler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,10 @@ export async function createAngularEsbuildContext(options: NormalizedContextOpti
stylesheetBundlerOptions
);

const customPlugins = Array.isArray(options.builderOptions.plugins)
? options.builderOptions.plugins
: [];

const config: esbuild.BuildOptions = {
entryPoints: entryPoints.map(ep => ({
in: ep.fileName,
Expand All @@ -157,7 +161,7 @@ export async function createAngularEsbuildContext(options: NormalizedContextOpti
format: 'esm',
target: target,
logLimit: 0,
plugins: [compilerPlugin, commonjsPlugin()],
plugins: [compilerPlugin, commonjsPlugin(), ...customPlugins],
define: {
ngDevMode: dev ? 'true' : 'false',
ngJitMode: 'false',
Expand Down
3 changes: 2 additions & 1 deletion packages/angular/src/utils/angular-esbuild-adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import type { ApplicationBuilderOptions } from '@angular/build';
import { createAngularEsbuildContext } from './angular-bundler.js';
import { createNodeModulesEsbuildContext } from './node-modules-bundler.js';
import { normalizeContextOptions } from './normalize-context-options.js';
import type { NfInternalOptions } from '../builders/build/schema.js';

export interface EsbuildContextResult extends NFBuildAdapterContext<esbuild.BuildContext> {
pluginDisposed: Promise<void>;
Expand Down Expand Up @@ -59,7 +60,7 @@ function setNgServerMode(): void {
}

export function createAngularBuildAdapter(
ngBuilderOptions: ApplicationBuilderOptions,
ngBuilderOptions: ApplicationBuilderOptions & NfInternalOptions,
context: BuilderContext
): NFBuildAdapter {
const bundleContextCache = new Map<string, EsbuildContextResult>();
Expand Down
10 changes: 9 additions & 1 deletion packages/angular/src/utils/node-modules-bundler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ export async function createNodeModulesEsbuildContext(options: NormalizedContext
const commonjsPluginModule = await import('@chialab/esbuild-plugin-commonjs');
const commonjsPlugin = commonjsPluginModule.default;

const customPlugins = Array.isArray(options.builderOptions.plugins)
? options.builderOptions.plugins
: [];

// Create JavaScriptTransformer for handling Angular partial compilation linking
const advancedOptimizations = !dev;
const jsTransformerCacheStore = getOrCreateJsTransformerCacheStore(cache.cachePath);
Expand Down Expand Up @@ -146,7 +150,11 @@ export async function createNodeModulesEsbuildContext(options: NormalizedContext
format: 'esm',
target: target,
logLimit: 1,
plugins: [createAngularLinkerPlugin(jsTransformer, advancedOptimizations), commonjsPlugin()],
plugins: [
createAngularLinkerPlugin(jsTransformer, advancedOptimizations),
commonjsPlugin(),
...customPlugins,
],
define: {
ngDevMode: dev ? 'true' : 'false',
ngJitMode: 'false',
Expand Down
5 changes: 3 additions & 2 deletions packages/angular/src/utils/normalize-context-options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ import type {
NFBuildAdapterOptions,
} from '@softarc/native-federation';
import type { PathToImport } from '@softarc/native-federation/internal';
import type { NfInternalOptions } from '../builders/build/schema';

export interface NormalizedContextOptions {
builderOptions: ApplicationBuilderOptions;
builderOptions: ApplicationBuilderOptions & NfInternalOptions;
context: BuilderContext;
entryPoints: EntryPoint[];
external: string[];
Expand All @@ -26,7 +27,7 @@ export interface NormalizedContextOptions {
}

export function normalizeContextOptions(
builderOptions: ApplicationBuilderOptions,
builderOptions: ApplicationBuilderOptions & NfInternalOptions,
context: BuilderContext,
adapterOptions: NFBuildAdapterOptions<SourceFileCache>
): NormalizedContextOptions {
Expand Down
Loading