From dd84b9d64fb98746a230cd24233ff50a562c39c9 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 28 Apr 2023 01:36:44 +0800 Subject: --- packages/create-turbo/src/transforms/git-ignore.ts | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 packages/create-turbo/src/transforms/git-ignore.ts (limited to 'packages/create-turbo/src/transforms/git-ignore.ts') 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 }; +} -- cgit v1.2.3-70-g09d2