Make sure to actually use yarn to install the main-packages, otherwise the packages.json#resolutions property will not be used and @babel/helpers would not get overruled

Overruled @babel/helpers to fix how initializers play with decorated properties. Thus circumventing the imperformant and lengthy code being generated by babel in the non-legacy option.
This commit is contained in:
2019-11-05 21:11:01 +01:00
parent 5ca9bec93a
commit 72f38c1137
47 changed files with 5004 additions and 80 deletions

View File

@@ -0,0 +1,26 @@
import path from "path";
import template from "@babel/template";
import helpers from "../../lib/helpers";
function getHelperId(dir, name) {
const testName = path.basename(dir);
return `_$_${testName}_${name}`;
}
export default function defineHelper(
dir: string,
name: string,
code: string,
): string {
const id = getHelperId(dir, name);
if (id in helpers) {
throw new Error(`The ${id} helper is already defined.`);
}
Object.defineProperty(helpers, id, {
value: {
minVersion: "7.0.0-beta.0",
ast: template.program(code),
},
});
return id;
}