Skip to content

Commit

Permalink
chore(swc): Easier to maintain SWC cli option defaults using struct
Browse files Browse the repository at this point in the history
  • Loading branch information
medz committed Jun 27, 2023
1 parent 3b1c1c4 commit c70aa59
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 11 deletions.
25 changes: 16 additions & 9 deletions lib/compiler/defaults/swc-defaults.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import * as ts from 'typescript';
import { SwcCliOptions } from '../../configuration';
import { Configuration } from '../../configuration';

type SwcCliOptions = Required<
Required<Configuration>['compilerOptions']
>['swcCliOptions'];

export const swcDefaultsFactory = (
tsOptions: ts.CompilerOptions,
swcCliOptions?: SwcCliOptions,
swcCliOptions: SwcCliOptions,
) => {
return {
swcOptions: {
Expand All @@ -29,14 +33,17 @@ export const swcDefaultsFactory = (
swcrc: true,
},
cliOptions: {
outDir: swcCliOptions?.outDir || tsOptions.outDir || 'dist',
filenames: swcCliOptions?.filenames || ['src'],
sync: swcCliOptions?.sync || false,
extensions: swcCliOptions?.extensions || ['.js', '.ts'],
outDir: tsOptions.outDir || 'dist',
filenames: ['src'],
sync: false,
extensions: ['.js', '.ts'],
copyFiles: false,
includeDotfiles: false,
quiet: false,
watch: false,
copyFiles: swcCliOptions?.copyFiles || false,
includeDotfiles: swcCliOptions?.includeDotfiles || false,
quiet: swcCliOptions?.quiet || false,

// Merge swcCliOptions
...swcCliOptions,
},
};
};
2 changes: 1 addition & 1 deletion lib/compiler/swc/swc-compiler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export class SwcCompiler extends BaseCompiler {
) {
const swcOptions = swcDefaultsFactory(
extras.tsOptions,
configuration.compilerOptions.swcCliOptions,
configuration.compilerOptions.swcCliOptions || {},
);
if (extras.watch) {
if (extras.typeCheck) {
Expand Down
2 changes: 1 addition & 1 deletion lib/configuration/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export interface ActionOnFile {
watchAssetsMode: boolean;
}

export interface SwcCliOptions {
interface SwcCliOptions {
outDir?: string;
filenames?: string[];
sync?: boolean;
Expand Down

0 comments on commit c70aa59

Please sign in to comment.