storybook
Version:
Storybook: Develop, document, and test UI components in isolation
41 lines (36 loc) • 1.45 kB
JavaScript
import CJS_COMPAT_NODE_URL_3za304dh1il from 'node:url';
import CJS_COMPAT_NODE_PATH_3za304dh1il from 'node:path';
import CJS_COMPAT_NODE_MODULE_3za304dh1il from "node:module";
var __filename = CJS_COMPAT_NODE_URL_3za304dh1il.fileURLToPath(import.meta.url);
var __dirname = CJS_COMPAT_NODE_PATH_3za304dh1il.dirname(__filename);
var require = CJS_COMPAT_NODE_MODULE_3za304dh1il.createRequire(import.meta.url);
// ------------------------------------------------------------
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
// ------------------------------------------------------------
// src/shared/utils/get-monorepo-type.ts
import { existsSync, readFileSync } from "node:fs";
import { join } from "node:path";
import { getProjectRoot } from "storybook/internal/common";
var monorepoConfigs = {
Nx: "nx.json",
Turborepo: "turbo.json",
Lerna: "lerna.json",
Rush: "rush.json",
Lage: "lage.config.json"
}, getMonorepoType = () => {
let monorepoType = Object.keys(monorepoConfigs).find((monorepo) => {
let configFile = join(getProjectRoot(), monorepoConfigs[monorepo]);
return existsSync(configFile);
});
if (monorepoType)
return monorepoType;
if (!existsSync(join(getProjectRoot(), "package.json")))
return;
if (JSON.parse(
readFileSync(join(getProjectRoot(), "package.json"), { encoding: "utf8" })
)?.workspaces)
return "Workspaces";
};
export {
getMonorepoType
};