Skip to content

Commit

Permalink
fix(core): enable esModuleInterop
Browse files Browse the repository at this point in the history
  • Loading branch information
Cammisuli committed Sep 15, 2023
1 parent e98221e commit 08f5621
Show file tree
Hide file tree
Showing 9 changed files with 190 additions and 159 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
"@supabase/supabase-js": "^2.26.0",
"@svgr/rollup": "^8.0.1",
"@svgr/webpack": "^8.0.1",
"@swc-node/register": "^1.4.2",
"@swc-node/register": "1.5.8",
"@swc/cli": "0.1.62",
"@swc/core": "^1.3.51",
"@swc/jest": "^0.2.20",
Expand Down
9 changes: 9 additions & 0 deletions packages/js/migrations.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,15 @@
"version": "~5.1.3"
}
}
},
"16.9.0": {
"version": "16.9.0-beta.1",
"packages": {
"@swc/register": {
"version": "1.5.8",
"alwaysAddToPackageJson": false
}
}
}
}
}
2 changes: 1 addition & 1 deletion packages/js/src/utils/versions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export const prettierVersion = '^2.6.2';
export const swcCliVersion = '~0.1.62';
export const swcCoreVersion = '~1.3.51';
export const swcHelpersVersion = '~0.5.0';
export const swcNodeVersion = '~1.4.2';
export const swcNodeVersion = '1.5.8';
export const tsLibVersion = '^2.3.0';
export const typesNodeVersion = '18.7.1';
export const verdaccioVersion = '^5.0.4';
Expand Down
2 changes: 1 addition & 1 deletion packages/nx/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
"node-machine-id": "1.1.12"
},
"peerDependencies": {
"@swc-node/register": "^1.4.2",
"@swc-node/register": "1.5.8",
"@swc/core": "^1.2.173"
},
"peerDependenciesMeta": {
Expand Down
4 changes: 3 additions & 1 deletion packages/nx/src/plugins/js/utils/register.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,9 @@ export function getTsNodeTranspiler(
warnTsNodeUsage();
}

return () => {};
return () => {
service.enabled(false);
};
}

export function getTranspiler(compilerOptions: CompilerOptions) {
Expand Down
7 changes: 6 additions & 1 deletion packages/nx/src/project-graph/project-graph.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import { workspaceRoot } from '../utils/workspace-root';
import { performance } from 'perf_hooks';
import { retrieveWorkspaceFiles } from './utils/retrieve-workspace-files';
import { readNxJson } from '../config/nx-json';
import { unregisterPluginTSTranspiler } from '../utils/nx-plugin';

/**
* Synchronously reads the latest cached copy of the workspace's ProjectGraph.
Expand Down Expand Up @@ -82,7 +83,7 @@ export async function buildProjectGraphWithoutDaemon() {
} = await retrieveWorkspaceFiles(workspaceRoot, nxJson);

const cacheEnabled = process.env.NX_CACHE_PROJECT_GRAPH !== 'false';
return (
const projectGraph = (
await buildProjectGraphUsingProjectFileMap(
projectConfigurations.projects,
externalNodes,
Expand All @@ -92,6 +93,10 @@ export async function buildProjectGraphWithoutDaemon() {
cacheEnabled
)
).projectGraph;

unregisterPluginTSTranspiler();

return projectGraph;
}

function handleProjectGraphError(opts: { exitOnError: boolean }, e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
loadNxPlugins,
loadNxPluginsSync,
NxPluginV2,
unregisterPluginTSTranspiler,
} from '../../utils/nx-plugin';
import { CreateProjectJsonProjectsPlugin } from '../../plugins/project-json/build-nodes/project-json';
import {
Expand Down
28 changes: 21 additions & 7 deletions packages/nx/src/utils/nx-plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ function getPluginPathAndName(

// Register the ts-transpiler if we are pointing to a
// plain ts file that's not part of a plugin project
if (extension === '.ts' && !tsNodeAndPathsRegistered) {
if (extension === '.ts' && !tsNodeAndPathsUnregisterCallback) {
registerPluginTSTranspiler();
}

Expand Down Expand Up @@ -368,14 +368,14 @@ export function resolveLocalNxPlugin(
return localPluginCache[importPath];
}

let tsNodeAndPathsRegistered = false;
let tsNodeAndPathsUnregisterCallback = undefined;

/**
* Register swc-node or ts-node if they are not currently registered
* with some default settings which work well for Nx plugins.
*/
export function registerPluginTSTranspiler() {
if (!tsNodeAndPathsRegistered) {
if (!tsNodeAndPathsUnregisterCallback) {
// nx-ignore-next-line
const ts: typeof import('typescript') = require('typescript');

Expand All @@ -389,8 +389,8 @@ export function registerPluginTSTranspiler() {
? readTsConfig(tsConfigName)
: {};

registerTsConfigPaths(tsConfigName);
registerTranspiler({
const unregisterTsConfigPaths = registerTsConfigPaths(tsConfigName);
const unregisterTranspiler = registerTranspiler({
experimentalDecorators: true,
emitDecoratorMetadata: true,
...tsConfig.options,
Expand All @@ -400,8 +400,21 @@ export function registerPluginTSTranspiler() {
inlineSourceMap: true,
skipLibCheck: true,
});
tsNodeAndPathsUnregisterCallback = () => {
unregisterTsConfigPaths();
unregisterTranspiler();
};
}
}

/**
* Unregister the ts-node transpiler if it is registered
*/
export function unregisterPluginTSTranspiler() {
if (tsNodeAndPathsUnregisterCallback) {
tsNodeAndPathsUnregisterCallback();
tsNodeAndPathsUnregisterCallback = undefined;
}
tsNodeAndPathsRegistered = true;
}

function lookupLocalPlugin(importPath: string, root = workspaceRoot) {
Expand All @@ -411,7 +424,7 @@ function lookupLocalPlugin(importPath: string, root = workspaceRoot) {
return null;
}

if (!tsNodeAndPathsRegistered) {
if (!tsNodeAndPathsUnregisterCallback) {
registerPluginTSTranspiler();
}

Expand Down Expand Up @@ -451,6 +464,7 @@ function findNxProjectForImportPath(
}

let tsconfigPaths: Record<string, string[]>;

function readTsConfigPaths(root: string = workspaceRoot) {
if (!tsconfigPaths) {
const tsconfigPath: string | null = ['tsconfig.base.json', 'tsconfig.json']
Expand Down
Loading

0 comments on commit 08f5621

Please sign in to comment.