UNPKG

@modyqyw/fabric

Version:

Opinionated shareable specifications for git-based JavaScript/TypeScript projects.

168 lines (162 loc) 6.91 kB
'use strict'; const node_fs = require('node:fs'); const node_path = require('node:path'); const process = require('node:process'); const localPkg = require('local-pkg'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; } const process__default = /*#__PURE__*/_interopDefaultCompat(process); const hasTypeScript = localPkg.isPackageExists("typescript"); const hasNuxt = localPkg.isPackageExists("nuxt"); const getNuxtVersion = () => { const pkg = localPkg.getPackageInfoSync("nuxt", { paths: [process__default.cwd()] }); if (pkg && typeof pkg.version === "string" && !Number.isNaN(+pkg.version[0])) { return +pkg.version[0]; } return 3; }; const hasNuxt3 = getNuxtVersion() === 3; const hasVuePress = localPkg.isPackageExists("vuepress"); const hasVitePress = localPkg.isPackageExists("vitepress"); const hasSlidev = localPkg.isPackageExists("@slidev/cli"); const hasUniApp = localPkg.isPackageExists("@dcloudio/vite-plugin-uni") || localPkg.isPackageExists("@dcloudio/vue-cli-plugin-uni"); const hasTaroVue = [ "@tarojs/taro", "@tarojs/plugin-framework-vue" ].every((p) => localPkg.isPackageExists(p)); const hasIonicVue = localPkg.isPackageExists("@ionic/vue"); const hasVue = localPkg.isPackageExists("vue") || hasNuxt || hasVuePress || hasVitePress || hasSlidev || hasUniApp || hasTaroVue || hasIonicVue; const getVueVersion = () => { const pkg = localPkg.getPackageInfoSync("vue", { paths: [process__default.cwd()] }); if (pkg && typeof pkg.version === "string" && !Number.isNaN(+pkg.version[0])) { return +pkg.version[0]; } return 3; }; const hasVue3 = getVueVersion() === 3; const hasNext = ["next"].some((p) => localPkg.isPackageExists(p)); const hasRemix = [ "@remix-run/node", "@remix-run/react", "@remix-run/serve", "@remix-run/dev", "remix" ].some((p) => localPkg.isPackageExists(p)); const hasReactRouter = [ "@react-router/node", "@react-router/react", "@react-router/serve", "@react-router/dev" ].some((p) => localPkg.isPackageExists(p)); const hasReactNative = ["react-native", "@expo/cli"].some( (p) => localPkg.isPackageExists(p) ); const hasIonicReact = localPkg.isPackageExists("@ionic/react"); const hasDocusaurus = localPkg.isPackageExists("docusaurus"); const hasTaroReact = [ "@tarojs/taro", "@tarojs/plugin-framework-react" ].every((p) => localPkg.isPackageExists(p)); const hasReact = localPkg.isPackageExists("react") || hasNext || hasRemix || hasReactNative || hasIonicReact || hasDocusaurus || hasTaroReact; const hasSvelteKit = localPkg.isPackageExists("@sveltejs/kit"); const hasTaroSvelte = [ "@tarojs/taro", "@tarojs/plugin-framework-svelte" ].every((p) => localPkg.isPackageExists(p)); const hasSvelte = hasSvelteKit || hasTaroSvelte || localPkg.isPackageExists("svelte"); const hasSolidStart = localPkg.isPackageExists("solid-start"); const hasTaroSolid = [ "@tarojs/taro", "@tarojs/plugin-framework-solid" ].every((p) => localPkg.isPackageExists(p)); const hasSolid = hasSolidStart || hasTaroSolid || localPkg.isPackageExists("solid-js"); const hasAstro = localPkg.isPackageExists("astro"); const hasTaro = localPkg.isPackageExists("@tarojs/taro"); const hasMiniProgram = hasUniApp || hasTaro; const hasScss = localPkg.isPackageExists("sass"); const hasLess = localPkg.isPackageExists("less"); const hasUnoCss = localPkg.isPackageExists("unocss"); const hasWindiCss = localPkg.isPackageExists("windicss"); const hasTailwindCss = localPkg.isPackageExists("tailwindcss"); const hasVite = localPkg.isPackageExists("vite"); const hasLerna = localPkg.isPackageExists("lerna") || localPkg.isPackageExists("@lerna-lite/cli"); const hasNx = localPkg.isPackageExists("nx"); const hasRush = localPkg.isPackageExists("@microsoft/rush"); const hasPnpmWorkspace = node_fs.existsSync( node_path.resolve(process__default.cwd(), "pnpm-workspace.yaml") ); const hasMonoRepo = hasLerna || hasNx || hasRush || hasPnpmWorkspace; const hasVitest = localPkg.isPackageExists("vitest"); const hasTsconfigVitestJson = node_fs.existsSync( node_path.resolve(process__default.cwd(), "tsconfig.vitest.json") ); const hasTsconfigTestJson = node_fs.existsSync( node_path.resolve(process__default.cwd(), "tsconfig.test.json") ); const hasTsconfigAppJson = node_fs.existsSync( node_path.resolve(process__default.cwd(), "tsconfig.app.json") ); const hasBiome = localPkg.isPackageExists("biome"); const hasESLint = localPkg.isPackageExists("eslint"); const hasOxlint = localPkg.isPackageExists("oxlint"); const hasStylelint = localPkg.isPackageExists("stylelint"); const hasPrettier = localPkg.isPackageExists("prettier"); const hasTsc = localPkg.isPackageExists("typescript"); const hasVueTsc = localPkg.isPackageExists("vue-tsc"); const hasMarkdownlintCli = localPkg.isPackageExists("markdownlint-cli"); const hasLintStaged = localPkg.isPackageExists("lint-staged"); const hasCommitlint = localPkg.isPackageExists("@commitlint/cli") || localPkg.isPackageExists("commitlint-cli"); exports.getNuxtVersion = getNuxtVersion; exports.getVueVersion = getVueVersion; exports.hasAstro = hasAstro; exports.hasBiome = hasBiome; exports.hasCommitlint = hasCommitlint; exports.hasDocusaurus = hasDocusaurus; exports.hasESLint = hasESLint; exports.hasIonicReact = hasIonicReact; exports.hasIonicVue = hasIonicVue; exports.hasLerna = hasLerna; exports.hasLess = hasLess; exports.hasLintStaged = hasLintStaged; exports.hasMarkdownlintCli = hasMarkdownlintCli; exports.hasMiniProgram = hasMiniProgram; exports.hasMonoRepo = hasMonoRepo; exports.hasNext = hasNext; exports.hasNuxt = hasNuxt; exports.hasNuxt3 = hasNuxt3; exports.hasNx = hasNx; exports.hasOxlint = hasOxlint; exports.hasPnpmWorkspace = hasPnpmWorkspace; exports.hasPrettier = hasPrettier; exports.hasReact = hasReact; exports.hasReactNative = hasReactNative; exports.hasReactRouter = hasReactRouter; exports.hasRemix = hasRemix; exports.hasRush = hasRush; exports.hasScss = hasScss; exports.hasSlidev = hasSlidev; exports.hasSolid = hasSolid; exports.hasSolidStart = hasSolidStart; exports.hasStylelint = hasStylelint; exports.hasSvelte = hasSvelte; exports.hasSvelteKit = hasSvelteKit; exports.hasTailwindCss = hasTailwindCss; exports.hasTaro = hasTaro; exports.hasTaroReact = hasTaroReact; exports.hasTaroSolid = hasTaroSolid; exports.hasTaroSvelte = hasTaroSvelte; exports.hasTaroVue = hasTaroVue; exports.hasTsc = hasTsc; exports.hasTsconfigAppJson = hasTsconfigAppJson; exports.hasTsconfigTestJson = hasTsconfigTestJson; exports.hasTsconfigVitestJson = hasTsconfigVitestJson; exports.hasTypeScript = hasTypeScript; exports.hasUniApp = hasUniApp; exports.hasUnoCss = hasUnoCss; exports.hasVite = hasVite; exports.hasVitePress = hasVitePress; exports.hasVitest = hasVitest; exports.hasVue = hasVue; exports.hasVue3 = hasVue3; exports.hasVuePress = hasVuePress; exports.hasVueTsc = hasVueTsc; exports.hasWindiCss = hasWindiCss;