diff options
Diffstat (limited to 'packages/create-turbo/src/transforms/git-ignore.ts')
| -rw-r--r-- | packages/create-turbo/src/transforms/git-ignore.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/create-turbo/src/transforms/git-ignore.ts b/packages/create-turbo/src/transforms/git-ignore.ts new file mode 100644 index 0000000..bb61ca7 --- /dev/null +++ b/packages/create-turbo/src/transforms/git-ignore.ts @@ -0,0 +1,30 @@ +import path from "path"; +import fs from "fs-extra"; +import { DEFAULT_IGNORE } from "../utils/git"; +import { TransformInput, TransformResult } from "./types"; +import { TransformError } from "./errors"; + +const meta = { + name: "git-ignore", +}; + +export async function transform(args: TransformInput): TransformResult { + const { prompts } = args; + const ignorePath = path.join(prompts.root, ".gitignore"); + try { + if (!fs.existsSync(ignorePath)) { + fs.writeFileSync(ignorePath, DEFAULT_IGNORE); + } else { + return { result: "not-applicable", ...meta }; + } + } catch (err) { + // existsSync cannot throw, so we don't need to narrow here and can + // assume this came from writeFileSync + throw new TransformError("Unable to write .gitignore", { + transform: meta.name, + fatal: false, + }); + } + + return { result: "success", ...meta }; +} |
