Skip to content

Commit

Permalink
fix: server symbols should be stripped in the transform for clients (Q…
Browse files Browse the repository at this point in the history
…wikDev#2404)

* fix: server symbols should be stripped in the transform for clients

Signed-off-by: Jeremy Wickersheimer <jwickers@gmail.com>

* workaround TS

Signed-off-by: Jeremy Wickersheimer <jwickers@gmail.com>

Signed-off-by: Jeremy Wickersheimer <jwickers@gmail.com>
Co-authored-by: Manu MA <manu.mtza@gmail.com>
  • Loading branch information
jwickers and manucorporat authored Dec 19, 2022
1 parent 706d3bb commit f291e81
Showing 1 changed file with 30 additions and 18 deletions.
48 changes: 30 additions & 18 deletions packages/qwik/src/optimizer/src/plugins/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,26 @@ import type {
TransformFsOptions,
TransformModule,
TransformModuleInput,
TransformModulesOptions,
TransformOutput,
} from '../types';
import { createLinter, QwikLinter } from './eslint-plugin';
import type { PluginContext } from 'rollup';

const SERVER_STRIP_EXPORTS = [
'onGet',
'onPost',
'onPut',
'onRequest',
'onDelete',
'onHead',
'onOptions',
'onPatch',
'onStaticGenerate',
];

const SERVER_STRIP_CTX_NAME = ['useServerMount$', 'action$', 'loader$'];

export interface QwikPackages {
id: string;
path: string;
Expand Down Expand Up @@ -324,17 +339,8 @@ export function createPlugin(optimizerOptions: OptimizerOptions = {}) {
};

if (opts.target === 'client') {
transformOpts.stripCtxName = ['useServerMount$', 'action$', 'loader$'];
transformOpts.stripExports = [
'onGet',
'onPost',
'onPut',
'onRequest',
'onDelete',
'onHead',
'onOptions',
'onPatch',
];
transformOpts.stripCtxName = SERVER_STRIP_CTX_NAME;
transformOpts.stripExports = SERVER_STRIP_EXPORTS;
} else if (opts.target === 'ssr') {
transformOpts.stripCtxName = ['useClientMount$', 'useClientEffect$'];
transformOpts.stripCtxKind = 'event';
Expand Down Expand Up @@ -498,24 +504,30 @@ export function createPlugin(optimizerOptions: OptimizerOptions = {}) {
filePath = normalizePath(filePath);
const srcDir = opts.srcDir ? opts.srcDir : normalizePath(dir);
const mode = opts.buildMode === 'development' ? 'dev' : 'prod';
const newOutput = optimizer.transformModulesSync({
const transformOpts: TransformModulesOptions = {
input: [
{
code,
code: code,
path: filePath,
},
],
entryStrategy: opts.entryStrategy,
minify: 'simplify',
sourceMaps: opts.buildMode === 'development',
sourceMaps: 'development' === opts.buildMode,
transpileTs: true,
transpileJsx: true,
explicitExtensions: true,
preserveFilenames: true,
srcDir,
mode,
scope: opts.scope ? opts.scope : undefined,
});
srcDir: srcDir,
mode: mode,
scope: opts.scope ? opts.scope : void 0,
};
const isSSR = (ctx as any).ssr;
if (!isSSR) {
transformOpts.stripCtxName = SERVER_STRIP_CTX_NAME;
transformOpts.stripExports = SERVER_STRIP_EXPORTS;
}
const newOutput = optimizer.transformModulesSync(transformOpts);

diagnosticsCallback(newOutput.diagnostics, optimizer, srcDir);

Expand Down

0 comments on commit f291e81

Please sign in to comment.