Skip to content

Commit

Permalink
refactor(compiler): propagate ValidatedConfig (#4569)
Browse files Browse the repository at this point in the history
This propagates the `ValidatedConfig` in place of the `Config`,
branching out from `src/compiler/transpile.ts`
  • Loading branch information
alicewriteswrongs committed Jul 18, 2023
1 parent d5b31ce commit 7d5dc6c
Show file tree
Hide file tree
Showing 13 changed files with 29 additions and 28 deletions.
2 changes: 1 addition & 1 deletion src/compiler/bundle/typescript-plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export const typescriptPlugin = (compilerCtx: d.CompilerCtx, bundleOpts: BundleO
};
};

export const resolveIdWithTypeScript = (config: d.Config, compilerCtx: d.CompilerCtx): Plugin => {
export const resolveIdWithTypeScript = (config: d.ValidatedConfig, compilerCtx: d.CompilerCtx): Plugin => {
return {
name: `resolveIdWithTypeScript`,

Expand Down
4 changes: 2 additions & 2 deletions src/compiler/sys/typescript/typescript-resolve-module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
import { patchTsSystemFileSystem } from './typescript-sys';

export const tsResolveModuleName = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
moduleName: string,
containingFile: string
Expand All @@ -38,7 +38,7 @@ export const tsResolveModuleName = (
};

export const tsResolveModuleNamePackageJsonPath = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
moduleName: string,
containingFile: string
Expand Down
10 changes: 4 additions & 6 deletions src/compiler/sys/typescript/typescript-sys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { InMemoryFileSystem } from '../in-memory-fs';

// TODO(STENCIL-728): fix typing of `inMemoryFs` parameter in `patchTypescript`, related functions
export const patchTsSystemFileSystem = (
config: d.Config,
config: d.ValidatedConfig,
compilerSys: d.CompilerSystem,
inMemoryFs: InMemoryFileSystem,
tsSys: ts.System
Expand Down Expand Up @@ -165,12 +165,10 @@ const patchTsSystemWatch = (compilerSystem: d.CompilerSystem, tsSys: ts.System)
};

// TODO(STENCIL-728): fix typing of `inMemoryFs` parameter in `patchTypescript`, related functions
export const patchTypescript = (config: d.Config, inMemoryFs: InMemoryFileSystem) => {
export const patchTypescript = (config: d.ValidatedConfig, inMemoryFs: InMemoryFileSystem) => {
if (!(ts as any).__patched) {
if (config.sys) {
patchTsSystemFileSystem(config, config.sys, inMemoryFs, ts.sys);
patchTsSystemWatch(config.sys, ts.sys);
}
patchTsSystemFileSystem(config, config.sys, inMemoryFs, ts.sys);
patchTsSystemWatch(config.sys, ts.sys);
(ts as any).__patched = true;
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { tsResolveModuleNamePackageJsonPath } from '../../sys/typescript/typescr
import { parseCollection } from './parse-collection-module';

export const addExternalImport = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
moduleFile: d.Module,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type * as d from '../../../declarations';
import { updateModule } from '../static-to-meta/parse-static';

export const parseCollectionComponents = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
collectionDir: string,
Expand All @@ -21,7 +21,7 @@ export const parseCollectionComponents = (
};

export const transpileCollectionModule = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
collection: d.CollectionCompilerMeta,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type * as d from '../../../declarations';
import { parseCollectionComponents, transpileCollectionModule } from './parse-collection-components';

export const parseCollectionManifest = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
collectionName: string,
Expand Down Expand Up @@ -40,7 +40,7 @@ export const parseCollectionDependencies = (collectionManifest: d.CollectionMani
};

export const parseGlobal = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
collectionDir: string,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import type * as d from '../../../declarations';
import { parseCollectionManifest } from './parse-collection-manifest';

export const parseCollection = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
moduleId: string,
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/transformers/static-to-meta/import.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type * as d from '../../../declarations';
import { addExternalImport } from '../collections/add-external-import';

export const parseModuleImport = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
moduleFile: d.Module,
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/transformers/static-to-meta/parse-static.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { parseModuleImport } from './import';
import { parseStringLiteral } from './string-literal';

export const updateModule = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
tsSourceFile: ts.SourceFile,
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/transformers/static-to-meta/visitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { parseModuleImport } from './import';
import { parseStringLiteral } from './string-literal';

export const convertStaticToMeta = (
config: d.Config,
config: d.ValidatedConfig,
compilerCtx: d.CompilerCtx,
buildCtx: d.BuildCtx,
typeChecker: ts.TypeChecker,
Expand Down
6 changes: 3 additions & 3 deletions src/compiler/transformers/test/transpile.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type * as d from '@stencil/core/declarations';
import { mockBuildCtx, mockCompilerCtx, mockConfig } from '@stencil/core/testing';
import { mockBuildCtx, mockCompilerCtx, mockValidatedConfig } from '@stencil/core/testing';
import ts from 'typescript';

import { convertDecoratorsToStatic } from '../decorators-to-static/convert-decorators';
Expand All @@ -23,7 +23,7 @@ import { getScriptTarget } from '../transform-utils';
*/
export function transpileModule(
input: string,
config?: d.Config | null,
config?: d.ValidatedConfig | null,
compilerCtx?: d.CompilerCtx | null,
beforeTransformers: ts.TransformerFactory<ts.SourceFile>[] = [],
afterTransformers: ts.TransformerFactory<ts.SourceFile>[] = [],
Expand Down Expand Up @@ -61,7 +61,7 @@ export function transpileModule(
...tsConfig,
};

config = config || mockConfig();
config = config || mockValidatedConfig();
compilerCtx = compilerCtx || mockCompilerCtx(config);

const sourceFile = ts.createSourceFile(inputFileName, input, options.target);
Expand Down
15 changes: 9 additions & 6 deletions src/compiler/transpile.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import rollupPluginUtils from '@rollup/pluginutils';
import type {
Config,
TransformCssToEsmInput,
TransformOptions,
TranspileOptions,
TranspileResults,
ValidatedConfig,
} from '@stencil/core/internal';
import { catchError, getInlineSourceMappingUrlLinker, isString } from '@utils';

import { getTranspileConfig, getTranspileCssConfig, getTranspileResults } from './config/transpile-options';
import { validateConfig } from './config/validate-config';
import { transformCssToEsm, transformCssToEsmSync } from './style/css-to-esm';
import { patchTypescript } from './sys/typescript/typescript-sys';
import { getPublicCompilerMeta } from './transformers/add-component-meta-static';
Expand Down Expand Up @@ -40,8 +41,9 @@ export const transpile = async (code: string, opts: TranspileOptions = {}): Prom
try {
if (shouldTranspileModule(results.inputFileExtension)) {
const { config, compileOpts, transformOpts } = getTranspileConfig(opts);
patchTypescript(config, null);
transpileCode(config, compileOpts, transformOpts, results);
const validatedConfig = validateConfig(config, {}).config;
patchTypescript(validatedConfig, null);
transpileCode(validatedConfig, compileOpts, transformOpts, results);
} else if (results.inputFileExtension === 'd.ts') {
results.code = '';
} else if (results.inputFileExtension === 'css') {
Expand Down Expand Up @@ -72,8 +74,9 @@ export const transpileSync = (code: string, opts: TranspileOptions = {}): Transp
try {
if (shouldTranspileModule(results.inputFileExtension)) {
const { config, compileOpts, transformOpts } = getTranspileConfig(opts);
patchTypescript(config, null);
transpileCode(config, compileOpts, transformOpts, results);
const validatedConfig = validateConfig(config, {}).config;
patchTypescript(validatedConfig, null);
transpileCode(validatedConfig, compileOpts, transformOpts, results);
} else if (results.inputFileExtension === 'd.ts') {
results.code = '';
} else if (results.inputFileExtension === 'css') {
Expand All @@ -90,7 +93,7 @@ export const transpileSync = (code: string, opts: TranspileOptions = {}): Transp
};

const transpileCode = (
config: Config,
config: ValidatedConfig,
transpileOpts: TranspileOptions,
transformOpts: TransformOptions,
results: TranspileResults
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/transpile/transpile-module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import { updateStencilCoreImports } from '../transformers/update-stencil-core-im
* @returns the results of compiling the provided input string
*/
export const transpileModule = (
config: d.Config,
config: d.ValidatedConfig,
input: string,
transformOpts: d.TransformOptions
): d.TranspileModuleResults => {
Expand Down

0 comments on commit 7d5dc6c

Please sign in to comment.