@embroider/macros
Version:
Standardized build-time macros for ember apps.
32 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = appEmberSatisfies;
const semver_1 = require("semver");
const packageName = 'ember-source';
function appEmberSatisfies(node, packageCache) {
if (node.params.length !== 1) {
throw new Error(`macroAppEmberSatisfies requires only one argument, you passed ${node.params.length}`);
}
if (!node.params.every((p) => p.type === 'StringLiteral')) {
throw new Error(`all arguments to macroAppEmberSatisfies must be string literals`);
}
let root = packageCache.get(packageCache.appRoot);
let range = node.params[0].value;
if (!(root === null || root === void 0 ? void 0 : root.hasDependency(packageName))) {
return false;
}
let pkg;
try {
pkg = packageCache.resolve(packageName, root);
}
catch (err) {
// it's not an error if we can't resolve it, we just don't satisfy it.
}
if (pkg) {
return (0, semver_1.satisfies)(pkg.version, range, {
includePrerelease: true,
});
}
return false;
}
//# sourceMappingURL=app-ember-satisfies.js.map