Skip to content

Commit

Permalink
Merge pull request #26 from marko-js/avoid-custom-resolver-marko-4
Browse files Browse the repository at this point in the history
feat: avoid custom resolver for newer Marko 4 versions
  • Loading branch information
DylanPiercey authored Jun 22, 2023
2 parents c598095 + 7fd3fb8 commit eea3a3c
Showing 1 changed file with 30 additions and 20 deletions.
50 changes: 30 additions & 20 deletions src/preset/browser/jest-preset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,39 @@ export = {
...common,
testEnvironment: "jsdom",
// uses a webpack style resolver, the default one has many issues.
resolver:
(() => {
try {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const parts = require("@marko/compiler/package.json").version.split(
"."
);
const major = parseInt(parts[0], 10);
const minor = parseInt(parts[1], 10);
const patch = parseInt(parts[2], 10);
// Checks if the version is less than 5.25.12
return major === 5
? minor === 25
? patch < 12
: minor < 25
: major < 5;
} catch {
return false;
}
})() && require.resolve("../resolver"),
resolver: needsResolver() && require.resolve("../resolver"),
// preprocesses Marko files.
transform: {
"\\.marko$": require.resolve("../../transform/browser"),
...common.transform,
},
};

function needsResolver() {
const version = getVersion("@marko/compiler") || getVersion("marko");
if (!version) return false;

const parts = version.split(".");
const major = parseInt(parts[0], 10);
const minor = parseInt(parts[1], 10);
const patch = parseInt(parts[2], 10);

// Checks if the version is less than 5.25.12 || 4.26.0
switch (major) {
case 5:
return minor === 25 ? patch < 12 : minor < 25;
case 4:
return minor < 26;
default:
return false;
}
}

function getVersion(name: string) {
try {
// eslint-disable-next-line @typescript-eslint/no-var-requires
return require(`${name}/package.json`).version;
} catch {
return undefined;
}
}

0 comments on commit eea3a3c

Please sign in to comment.