UNPKG

@embroider/macros

Version:

Standardized build-time macros for ember apps.

38 lines 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = appEmberSatisfies; const semver_1 = require("semver"); const error_1 = __importDefault(require("./error")); const evaluate_json_1 = require("./evaluate-json"); const CACHE = new Map(); function getAppEmberVersion(state) { var _a, _b; let appRoot = state.packageCache.appRoot; if (CACHE.has(appRoot)) { return CACHE.get(appRoot); } let app = state.packageCache.get(appRoot); let version = (_b = (_a = app.dependencies.find(d => d.name === 'ember-source')) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : false; CACHE.set(appRoot, version); return version; } function appEmberSatisfies(path, state) { if (path.node.arguments.length !== 1) { throw (0, error_1.default)(path, `appEmberSatisfies takes exactly one argument, you passed ${path.node.arguments.length}`); } const [range] = path.node.arguments; if (range.type !== 'StringLiteral') { throw (0, error_1.default)((0, evaluate_json_1.assertArray)(path.get('arguments'))[0], `the only argument to appEmberSatisfies must be a string literal`); } let appEmberVersion = getAppEmberVersion(state); if (!appEmberVersion) { return false; } return (0, semver_1.satisfies)(appEmberVersion, range.value, { includePrerelease: true, }); } //# sourceMappingURL=app-ember-satisfies.js.map