Skip to content

Commit 0cf1eaf

Browse files
authored
Merge pull request #7413 from maiieul/refactor-normalizeRollupOutputOptionsObject-2
refactor(rollup): normalizeRollupOutputOptionsObject to accept qwikPlugin as an argument
1 parent 1ca63f8 commit 0cf1eaf

File tree

4 files changed

+20
-39
lines changed

4 files changed

+20
-39
lines changed

packages/qwik/src/optimizer/src/plugins/plugin.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export interface QwikPackages {
7777
path: string;
7878
}
7979

80-
export function createPlugin(optimizerOptions: OptimizerOptions = {}) {
80+
export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) {
8181
const id = `${Math.round(Math.random() * 899) + 100}`;
8282

8383
const clientResults = new Map<string, TransformOutput>();
@@ -1053,6 +1053,8 @@ export interface NormalizedQwikPluginOptions
10531053
experimental?: Record<keyof typeof ExperimentalFeatures, boolean>;
10541054
}
10551055

1056+
export type QwikPlugin = ReturnType<typeof createQwikPlugin>;
1057+
10561058
/** @public */
10571059
export type QwikBuildTarget = 'client' | 'ssr' | 'lib' | 'test';
10581060

packages/qwik/src/optimizer/src/plugins/plugin.unit.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import path, { resolve } from 'node:path';
22
import { assert, describe, expect, test } from 'vitest';
33
import type { QwikManifest } from '../types';
4-
import { ExperimentalFeatures, createPlugin } from './plugin';
4+
import { ExperimentalFeatures, createQwikPlugin } from './plugin';
55
import { normalizePath } from '../../../testing/util';
66
import { qwikVite } from './vite';
77

@@ -297,7 +297,7 @@ describe('resolveId', () => {
297297
});
298298

299299
async function mockPlugin(os = process.platform) {
300-
const plugin = createPlugin({
300+
const plugin = createQwikPlugin({
301301
sys: {
302302
cwd: () => process.cwd(),
303303
env: 'node',

packages/qwik/src/optimizer/src/plugins/rollup.ts

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ import type {
1010
Optimizer,
1111
} from '../types';
1212
import {
13-
createPlugin,
13+
createQwikPlugin,
1414
type NormalizedQwikPluginOptions,
1515
type QwikBuildMode,
1616
type QwikBuildTarget,
1717
type QwikPluginOptions,
1818
Q_MANIFEST_FILENAME,
1919
type ExperimentalFeatures,
20+
type QwikPlugin,
2021
} from './plugin';
2122
import { versions } from '../versions';
2223

@@ -27,7 +28,7 @@ type QwikRollupPluginApi = {
2728

2829
/** @public */
2930
export function qwikRollup(qwikRollupOpts: QwikRollupPluginOptions = {}): any {
30-
const qwikPlugin = createPlugin(qwikRollupOpts.optimizerOptions);
31+
const qwikPlugin = createQwikPlugin(qwikRollupOpts.optimizerOptions);
3132

3233
const rollupPlugin: QwikRollupPlugin = {
3334
name: 'rollup-plugin-qwik',
@@ -77,13 +78,7 @@ export function qwikRollup(qwikRollupOpts: QwikRollupPluginOptions = {}): any {
7778
},
7879

7980
outputOptions(rollupOutputOpts) {
80-
return normalizeRollupOutputOptionsObject(
81-
qwikPlugin.getOptimizer(),
82-
qwikPlugin.getOptions(),
83-
rollupOutputOpts,
84-
false,
85-
qwikPlugin.manualChunks
86-
);
81+
return normalizeRollupOutputOptionsObject(qwikPlugin, rollupOutputOpts, false);
8782
},
8883

8984
async buildStart() {
@@ -161,11 +156,9 @@ export function qwikRollup(qwikRollupOpts: QwikRollupPluginOptions = {}): any {
161156
}
162157

163158
export function normalizeRollupOutputOptions(
164-
optimizer: Optimizer,
165-
opts: NormalizedQwikPluginOptions,
159+
qwikPlugin: QwikPlugin,
166160
rollupOutputOpts: Rollup.OutputOptions | Rollup.OutputOptions[] | undefined,
167161
useAssetsDir: boolean,
168-
manualChunks: Rollup.GetManualChunk,
169162
outDir?: string
170163
): Rollup.OutputOptions | Rollup.OutputOptions[] {
171164
if (Array.isArray(rollupOutputOpts)) {
@@ -175,38 +168,26 @@ export function normalizeRollupOutputOptions(
175168
}
176169

177170
return rollupOutputOpts.map((outputOptsObj) => ({
178-
...normalizeRollupOutputOptionsObject(
179-
optimizer,
180-
opts,
181-
outputOptsObj,
182-
useAssetsDir,
183-
manualChunks
184-
),
171+
...normalizeRollupOutputOptionsObject(qwikPlugin, outputOptsObj, useAssetsDir),
185172
dir: outDir || outputOptsObj.dir,
186173
}));
187174
}
188175

189176
return {
190-
...normalizeRollupOutputOptionsObject(
191-
optimizer,
192-
opts,
193-
rollupOutputOpts,
194-
useAssetsDir,
195-
manualChunks
196-
),
177+
...normalizeRollupOutputOptionsObject(qwikPlugin, rollupOutputOpts, useAssetsDir),
197178
dir: outDir || rollupOutputOpts?.dir,
198179
};
199180
}
200181

201182
export function normalizeRollupOutputOptionsObject(
202-
optimizer: Optimizer,
203-
opts: NormalizedQwikPluginOptions,
183+
qwikPlugin: QwikPlugin,
204184
rollupOutputOptsObj: Rollup.OutputOptions | undefined,
205-
useAssetsDir: boolean,
206-
manualChunks: Rollup.GetManualChunk
185+
useAssetsDir: boolean
207186
): Rollup.OutputOptions {
208187
const outputOpts: Rollup.OutputOptions = { ...rollupOutputOptsObj };
209-
188+
const opts = qwikPlugin.getOptions();
189+
const optimizer = qwikPlugin.getOptimizer();
190+
const manualChunks = qwikPlugin.manualChunks;
210191
if (opts.target === 'client') {
211192
// client output
212193
if (!outputOpts.assetFileNames) {

packages/qwik/src/optimizer/src/plugins/vite.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import {
2525
Q_MANIFEST_FILENAME,
2626
SSR_OUT_DIR,
2727
TRANSFORM_REGEX,
28-
createPlugin,
28+
createQwikPlugin,
2929
parseId,
3030
type ExperimentalFeatures,
3131
type NormalizedQwikPluginOptions,
@@ -74,7 +74,7 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any {
7474
? (id, type) => TRANSFORM_REGEX.test(id) || qwikViteOpts.fileFilter!(id, type)
7575
: () => true;
7676
const injections: GlobalInjections[] = [];
77-
const qwikPlugin = createPlugin(qwikViteOpts.optimizerOptions);
77+
const qwikPlugin = createQwikPlugin(qwikViteOpts.optimizerOptions);
7878

7979
async function loadQwikInsights(clientOutDir = ''): Promise<InsightManifest | null> {
8080
const sys = qwikPlugin.getSys();
@@ -360,11 +360,9 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any {
360360
updatedViteConfig.build!.rollupOptions = {
361361
input: opts.input,
362362
output: normalizeRollupOutputOptions(
363-
qwikPlugin.getOptimizer(),
364-
opts,
363+
qwikPlugin,
365364
viteConfig.build?.rollupOptions?.output,
366365
useAssetsDir,
367-
qwikPlugin.manualChunks,
368366
buildOutputDir
369367
),
370368
preserveEntrySignatures: 'exports-only',

0 commit comments

Comments
 (0)