UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

1 lines 4.93 kB
{"version":3,"file":"framework-version.cjs","names":[],"sources":["../../src/cli/framework-version.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nexport interface FrameworkPackageResolution {\n specifier?: string;\n installedVersion?: string;\n isLinked: boolean;\n isWorkspaceLike: boolean;\n}\n\nfunction stripVersionPrefix(version: string): string {\n return version.replace(/^[\\^~>=]+/, \"\");\n}\n\nexport function readRootCatalogVersion(\n projectDir: string,\n packageName: string,\n): string | undefined {\n const pkgPath = join(projectDir, \"package.json\");\n if (!existsSync(pkgPath)) return undefined;\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\")) as {\n workspaces?: { catalog?: Record<string, string> };\n };\n const version = pkg.workspaces?.catalog?.[packageName];\n return version ? stripVersionPrefix(version) : undefined;\n}\n\nexport function readNodeModulesVersion(\n projectDir: string,\n packageName: string,\n): string | undefined {\n const pkgPath = join(projectDir, \"node_modules\", packageName, \"package.json\");\n if (!existsSync(pkgPath)) return undefined;\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\")) as { version?: string };\n return pkg.version;\n}\n\nfunction readSpecifier(pkg: Record<string, unknown>, packageName: string): string | undefined {\n const deps = (pkg.dependencies ?? {}) as Record<string, string>;\n const devDeps = (pkg.devDependencies ?? {}) as Record<string, string>;\n const peerDeps = (pkg.peerDependencies ?? {}) as Record<string, string>;\n return deps[packageName] || devDeps[packageName] || peerDeps[packageName];\n}\n\nexport function resolveFrameworkPackage(\n projectDir: string,\n packageName: string,\n): FrameworkPackageResolution {\n const pkgPath = join(projectDir, \"package.json\");\n if (!existsSync(pkgPath)) {\n return { isLinked: false, isWorkspaceLike: false };\n }\n\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\")) as Record<string, unknown>;\n const specifier = readSpecifier(pkg, packageName);\n\n if (!specifier) {\n const catalog = readRootCatalogVersion(projectDir, packageName);\n const installed = catalog ?? readNodeModulesVersion(projectDir, packageName);\n return {\n specifier,\n installedVersion: installed,\n isLinked: false,\n isWorkspaceLike: false,\n };\n }\n\n if (specifier.startsWith(\"link:\")) {\n return {\n specifier,\n installedVersion: readNodeModulesVersion(projectDir, packageName),\n isLinked: true,\n isWorkspaceLike: false,\n };\n }\n\n if (specifier.startsWith(\"workspace:\") || specifier.startsWith(\"file:\")) {\n return {\n specifier,\n installedVersion: readNodeModulesVersion(projectDir, packageName),\n isLinked: false,\n isWorkspaceLike: true,\n };\n }\n\n if (specifier === \"catalog:\") {\n const catalog = readRootCatalogVersion(projectDir, packageName);\n const installed = catalog ?? readNodeModulesVersion(projectDir, packageName);\n return {\n specifier,\n installedVersion: installed,\n isLinked: false,\n isWorkspaceLike: false,\n };\n }\n\n return {\n specifier,\n installedVersion: stripVersionPrefix(specifier),\n isLinked: false,\n isWorkspaceLike: false,\n };\n}\n\nexport function readInstalledFrameworkVersion(\n projectDir: string,\n packageName: string,\n): string | undefined {\n return resolveFrameworkPackage(projectDir, packageName).installedVersion;\n}\n"],"mappings":";;;;AAUA,SAAS,mBAAmB,SAAyB;CACnD,OAAO,QAAQ,QAAQ,aAAa,EAAE;AACxC;AAEA,SAAgB,uBACd,YACA,aACoB;CACpB,MAAM,8BAAe,YAAY,cAAc;CAC/C,IAAI,yBAAY,OAAO,GAAG,OAAO;CAIjC,MAAM,UAHM,KAAK,gCAAmB,SAAS,OAAO,CAGlC,CAAC,CAAC,YAAY,UAAU;CAC1C,OAAO,UAAU,mBAAmB,OAAO,IAAI;AACjD;AAEA,SAAgB,uBACd,YACA,aACoB;CACpB,MAAM,8BAAe,YAAY,gBAAgB,aAAa,cAAc;CAC5E,IAAI,yBAAY,OAAO,GAAG,OAAO;CAEjC,OADY,KAAK,gCAAmB,SAAS,OAAO,CAC3C,CAAC,CAAC;AACb;AAEA,SAAS,cAAc,KAA8B,aAAyC;CAC5F,MAAM,OAAQ,IAAI,gBAAgB,CAAC;CACnC,MAAM,UAAW,IAAI,mBAAmB,CAAC;CACzC,MAAM,WAAY,IAAI,oBAAoB,CAAC;CAC3C,OAAO,KAAK,gBAAgB,QAAQ,gBAAgB,SAAS;AAC/D;AAEA,SAAgB,wBACd,YACA,aAC4B;CAC5B,MAAM,8BAAe,YAAY,cAAc;CAC/C,IAAI,yBAAY,OAAO,GACrB,OAAO;EAAE,UAAU;EAAO,iBAAiB;CAAM;CAInD,MAAM,YAAY,cADN,KAAK,gCAAmB,SAAS,OAAO,CAClB,GAAG,WAAW;CAEhD,IAAI,CAAC,WAGH,OAAO;EACL;EACA,kBAJc,uBAAuB,YAAY,WAC3B,KAAK,uBAAuB,YAAY,WAAW;EAIzE,UAAU;EACV,iBAAiB;CACnB;CAGF,IAAI,UAAU,WAAW,OAAO,GAC9B,OAAO;EACL;EACA,kBAAkB,uBAAuB,YAAY,WAAW;EAChE,UAAU;EACV,iBAAiB;CACnB;CAGF,IAAI,UAAU,WAAW,YAAY,KAAK,UAAU,WAAW,OAAO,GACpE,OAAO;EACL;EACA,kBAAkB,uBAAuB,YAAY,WAAW;EAChE,UAAU;EACV,iBAAiB;CACnB;CAGF,IAAI,cAAc,YAGhB,OAAO;EACL;EACA,kBAJc,uBAAuB,YAAY,WAC3B,KAAK,uBAAuB,YAAY,WAAW;EAIzE,UAAU;EACV,iBAAiB;CACnB;CAGF,OAAO;EACL;EACA,kBAAkB,mBAAmB,SAAS;EAC9C,UAAU;EACV,iBAAiB;CACnB;AACF;AAEA,SAAgB,8BACd,YACA,aACoB;CACpB,OAAO,wBAAwB,YAAY,WAAW,CAAC,CAAC;AAC1D"}