(rootDir: string, tag: string)
| 47 | } |
| 48 | |
| 49 | export async function enterPre(rootDir: string, tag: string) { |
| 50 | let packages = await getPackages(rootDir); |
| 51 | let preStatePath = path.resolve(packages.root.dir, ".changeset", "pre.json"); |
| 52 | let preState: PreState | undefined = await readPreState(packages.root.dir); |
| 53 | // can't reenter if pre mode still exists, but we should allow exited pre mode to be reentered |
| 54 | if (preState?.mode === "pre") { |
| 55 | throw new PreEnterButInPreModeError(); |
| 56 | } |
| 57 | let newPreState: PreState = { |
| 58 | mode: "pre", |
| 59 | tag, |
| 60 | initialVersions: {}, |
| 61 | changesets: preState?.changesets ?? [], |
| 62 | }; |
| 63 | for (let pkg of packages.packages) { |
| 64 | newPreState.initialVersions[pkg.packageJson.name] = pkg.packageJson.version; |
| 65 | } |
| 66 | await fs.outputFile( |
| 67 | preStatePath, |
| 68 | JSON.stringify(newPreState, null, 2) + "\n" |
| 69 | ); |
| 70 | } |
no test coverage detected