(pkgDir: string)
| 63 | const resolveChannel = (version: string): Channel => (version.includes("-") ? "beta" : "latest"); |
| 64 | |
| 65 | const readPackageMeta = async (pkgDir: string) => { |
| 66 | const pkgJsonPath = join(pkgDir, "package.json"); |
| 67 | const pkg = (await Bun.file(pkgJsonPath).json()) as { |
| 68 | name?: string; |
| 69 | version?: string; |
| 70 | private?: boolean; |
| 71 | }; |
| 72 | |
| 73 | if (!pkg.name || !pkg.version) { |
| 74 | throw new Error(`Missing name/version in ${pkgJsonPath}`); |
| 75 | } |
| 76 | if (pkg.private === true) { |
| 77 | throw new Error(`${pkg.name} is marked private and cannot be published`); |
| 78 | } |
| 79 | |
| 80 | return { name: pkg.name, version: pkg.version }; |
| 81 | }; |
| 82 | |
| 83 | const packageAlreadyPublished = async (name: string, version: string): Promise<boolean> => { |
| 84 | const proc = Bun.spawn(["npm", "view", `${name}@${version}`, "version"], { |
no test coverage detected