Skip to content

Commit 4af1108

Browse files
author
Daniel Del Core
committed
more robust module parsing
1 parent c856a52 commit 4af1108

File tree

3 files changed

+18
-8
lines changed

3 files changed

+18
-8
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@codeshift/core': patch
3+
---
4+
5+
Improves module parsing to account for different import schemes

packages/core/lib/Worker.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ function retrievePath(str) {
5757
return str.replace(/[@#][^@#]*$/, '');
5858
}
5959

60+
function getModule(mod) {
61+
return mod.hasOwnProperty('default') ? mod.default : mod;
62+
}
63+
6064
function setup(entryPath, babel) {
6165
if (babel === 'babel') {
6266
const presets = [];
@@ -100,23 +104,20 @@ function setup(entryPath, babel) {
100104
let transformModule;
101105

102106
if (transformId) {
103-
transformPkg = require(retrievePath(entryPath));
107+
transformPkg = getModule(require(path.resolve(retrievePath(entryPath))));
104108
transformModule = transformPkg.transforms[transformId];
105109
}
106110

107111
if (presetId) {
108-
transformPkg = require(retrievePath(entryPath));
112+
transformPkg = getModule(require(path.resolve(retrievePath(entryPath))));
109113
transformModule = transformPkg.presets[presetId];
110114
}
111115

112116
if (!transformId && !presetId) {
113117
transformModule = require(path.resolve(entryPath));
114118
}
115119

116-
transform =
117-
typeof transformModule.default === 'function'
118-
? transformModule.default
119-
: transformModule;
120+
transform = getModule(transformModule);
120121

121122
if (transformModule.parser) {
122123
parserFromTransform =

packages/core/src/runner.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,11 +166,15 @@ export function run(entrypointPath: string, paths: string[], options: Flags) {
166166
ignores.add(options.ignorePattern);
167167
ignores.addFromFile(options.ignoreConfig);
168168

169-
if (!fs.existsSync(entrypointPath.replace(/[@#][^@#]*$/, ''))) {
169+
const absoluteEntrypointPath = path.resolve(
170+
entrypointPath.replace(/[@#][^@#]*$/, ''),
171+
);
172+
173+
if (!fs.existsSync(absoluteEntrypointPath)) {
170174
process.stderr.write(
171175
chalk.white.bgRed('ERROR') +
172176
' Transform file ' +
173-
entrypointPath +
177+
absoluteEntrypointPath +
174178
' does not exist \n',
175179
);
176180
return;

0 commit comments

Comments
 (0)