UNPKG

@backstage/cli

Version:

CLI for developing Backstage plugins and apps

47 lines (41 loc) 1.45 kB
'use strict'; 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