@backstage/cli
Version:
CLI for developing Backstage plugins and apps
47 lines (41 loc) • 1.45 kB
JavaScript
;
var fs = require('fs-extra');
var yaml = require('yaml');
var z = require('zod');
var paths = require('./paths.cjs.js');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
var z__default = /*#__PURE__*/_interopDefaultCompat(z);
const yarnRcSchema = z__default.default.object({
plugins: z__default.default.array(
z__default.default.object({
path: z__default.default.string()
})
).optional()
});
async function getHasYarnPlugin() {
const yarnRcPath = paths.paths.resolveTargetRoot(".yarnrc.yml");
const yarnRcContent = await fs__default.default.readFile(yarnRcPath, "utf-8").catch((e) => {
if (e.code === "ENOENT") {
return "";
}
throw e;
});
if (!yarnRcContent) {
return false;
}
const parseResult = yarnRcSchema.safeParse(yaml__default.default.parse(yarnRcContent));
if (!parseResult.success) {
throw new Error(
`Unexpected content in .yarnrc.yml: ${parseResult.error.toString()}`
);
}
const yarnRc = parseResult.data;
const backstagePlugin = yarnRc.plugins?.some(
(plugin) => plugin.path === ".yarn/plugins/@yarnpkg/plugin-backstage.cjs"
);
return Boolean(backstagePlugin);
}
exports.getHasYarnPlugin = getHasYarnPlugin;
//# sourceMappingURL=yarnPlugin.cjs.js.map