diff options
| author | 2023-11-03 21:25:40 +0800 | |
|---|---|---|
| committer | 2023-11-03 21:25:40 +0800 | |
| commit | 9029588590bea8b10451575c5142dcde77ecd1b5 (patch) | |
| tree | 04cf8aee56c23fd225ff19d340f7cee621d874ef /packages/create-turbo/src/utils | |
| parent | 94071d7ce16c56641d67d488e2bac6be84ffe731 (diff) | |
| download | HydroRoll-9029588590bea8b10451575c5142dcde77ecd1b5.tar.gz HydroRoll-9029588590bea8b10451575c5142dcde77ecd1b5.zip | |
chore: delete useless files
Diffstat (limited to 'packages/create-turbo/src/utils')
| -rw-r--r-- | packages/create-turbo/src/utils/examples.ts | 139 | ||||
| -rw-r--r-- | packages/create-turbo/src/utils/git.ts | 90 | ||||
| -rw-r--r-- | packages/create-turbo/src/utils/isDefaultExample.ts | 5 | ||||
| -rw-r--r-- | packages/create-turbo/src/utils/isFolderEmpty.ts | 37 | ||||
| -rw-r--r-- | packages/create-turbo/src/utils/isOnline.ts | 40 | ||||
| -rw-r--r-- | packages/create-turbo/src/utils/isWriteable.ts | 10 | ||||
| -rw-r--r-- | packages/create-turbo/src/utils/notifyUpdate.ts | 22 |
7 files changed, 0 insertions, 343 deletions
diff --git a/packages/create-turbo/src/utils/examples.ts b/packages/create-turbo/src/utils/examples.ts deleted file mode 100644 index b7c4812..0000000 --- a/packages/create-turbo/src/utils/examples.ts +++ /dev/null @@ -1,139 +0,0 @@ -import got from "got"; -import tar from "tar"; -import { Stream } from "stream"; -import { promisify } from "util"; -import { join } from "path"; -import { tmpdir } from "os"; -import { createWriteStream, promises as fs } from "fs"; - -const pipeline = promisify(Stream.pipeline); - -export type RepoInfo = { - username: string; - name: string; - branch: string; - filePath: string; -}; - -export async function isUrlOk(url: string): Promise<boolean> { - try { - const res = await got.head(url); - return res.statusCode === 200; - } catch (err) { - return false; - } -} - -export async function getRepoInfo( - url: URL, - examplePath?: string -): Promise<RepoInfo | undefined> { - const [, username, name, tree, sourceBranch, ...file] = - url.pathname.split("/"); - const filePath = examplePath - ? examplePath.replace(/^\//, "") - : file.join("/"); - - if ( - // Support repos whose entire purpose is to be a Turborepo example, e.g. - // https://github.com/:username/:my-cool-turborepo-example-repo-name. - tree === undefined || - // Support GitHub URL that ends with a trailing slash, e.g. - // https://github.com/:username/:my-cool-turborepo-example-repo-name/ - // In this case "t" will be an empty string while the turbo part "_branch" will be undefined - (tree === "" && sourceBranch === undefined) - ) { - try { - const infoResponse = await got( - `https://api.github.com/repos/${username}/${name}` - ); - const info = JSON.parse(infoResponse.body); - return { username, name, branch: info["default_branch"], filePath }; - } catch (err) { - return; - } - } - - // If examplePath is available, the branch name takes the entire path - const branch = examplePath - ? `${sourceBranch}/${file.join("/")}`.replace( - new RegExp(`/${filePath}|/$`), - "" - ) - : sourceBranch; - - if (username && name && branch && tree === "tree") { - return { username, name, branch, filePath }; - } -} - -export function hasRepo({ - username, - name, - branch, - filePath, -}: RepoInfo): Promise<boolean> { - const contentsUrl = `https://api.github.com/repos/${username}/${name}/contents`; - const packagePath = `${filePath ? `/${filePath}` : ""}/package.json`; - - return isUrlOk(contentsUrl + packagePath + `?ref=${branch}`); -} - -export function existsInRepo(nameOrUrl: string): Promise<boolean> { - try { - const url = new URL(nameOrUrl); - return isUrlOk(url.href); - } catch { - return isUrlOk( - `https://api.github.com/repos/vercel/turbo/contents/examples/${encodeURIComponent( - nameOrUrl - )}` - ); - } -} - -async function downloadTar(url: string, name: string) { - const tempFile = join(tmpdir(), `${name}.temp-${Date.now()}`); - await pipeline(got.stream(url), createWriteStream(tempFile)); - return tempFile; -} - -export async function downloadAndExtractRepo( - root: string, - { username, name, branch, filePath }: RepoInfo -) { - const tempFile = await downloadTar( - `https://codeload.github.com/${username}/${name}/tar.gz/${branch}`, - `turbo-ct-example` - ); - - await tar.x({ - file: tempFile, - cwd: root, - strip: filePath ? filePath.split("/").length + 1 : 1, - filter: (p: string) => - p.startsWith( - `${name}-${branch.replace(/\//g, "-")}${ - filePath ? `/${filePath}/` : "/" - }` - ), - }); - - await fs.unlink(tempFile); -} - -export async function downloadAndExtractExample(root: string, name: string) { - const tempFile = await downloadTar( - `https://codeload.github.com/vercel/turbo/tar.gz/main`, - `turbo-ct-example` - ); - - await tar.x({ - file: tempFile, - cwd: root, - strip: 2 + name.split("/").length, - filter: (p: string) => p.includes(`turbo-main/examples/${name}/`), - }); - - await fs.unlink(tempFile); -} diff --git a/packages/create-turbo/src/utils/git.ts b/packages/create-turbo/src/utils/git.ts deleted file mode 100644 index 593e7ea..0000000 --- a/packages/create-turbo/src/utils/git.ts +++ /dev/null @@ -1,90 +0,0 @@ -import fs from "fs-extra"; -import { execSync } from "child_process"; -import path from "path"; -import rimraf from "rimraf"; - -export const DEFAULT_IGNORE = ` -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -node_modules -.pnp -.pnp.js - -# testing -coverage - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# turbo -.turbo - -# vercel -.vercel -`; - -export const GIT_REPO_COMMAND = "git rev-parse --is-inside-work-tree"; -export const HG_REPO_COMMAND = "hg --cwd . root"; - -export function isInGitRepository(): boolean { - try { - execSync(GIT_REPO_COMMAND, { stdio: "ignore" }); - return true; - } catch (_) {} - return false; -} - -export function isInMercurialRepository(): boolean { - try { - execSync(HG_REPO_COMMAND, { stdio: "ignore" }); - return true; - } catch (_) {} - return false; -} - -export function tryGitInit(root: string, message: string): boolean { - let didInit = false; - try { - execSync("git --version", { stdio: "ignore" }); - if (isInGitRepository() || isInMercurialRepository()) { - return false; - } - - execSync("git init", { stdio: "ignore" }); - didInit = true; - - execSync("git checkout -b main", { stdio: "ignore" }); - - execSync("git add -A", { stdio: "ignore" }); - execSync(`git commit -m "${message}"`, { - stdio: "ignore", - }); - return true; - } catch (err) { - if (didInit) { - try { - rimraf.sync(path.join(root, ".git")); - } catch (_) {} - } - return false; - } -} - -export function tryGitCommit(message: string): boolean { - try { - execSync("git add -A", { stdio: "ignore" }); - execSync(`git commit -m "${message}"`, { - stdio: "ignore", - }); - return true; - } catch (err) { - return false; - } -} diff --git a/packages/create-turbo/src/utils/isDefaultExample.ts b/packages/create-turbo/src/utils/isDefaultExample.ts deleted file mode 100644 index 9fb2ef2..0000000 --- a/packages/create-turbo/src/utils/isDefaultExample.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const DEFAULT_EXAMPLES = new Set(["basic", "default"]); - -export function isDefaultExample(example: string): boolean { - return DEFAULT_EXAMPLES.has(example); -} diff --git a/packages/create-turbo/src/utils/isFolderEmpty.ts b/packages/create-turbo/src/utils/isFolderEmpty.ts deleted file mode 100644 index 4de2d58..0000000 --- a/packages/create-turbo/src/utils/isFolderEmpty.ts +++ /dev/null @@ -1,37 +0,0 @@ -import fs from "fs-extra"; - -const VALID_FILES = [ - ".DS_Store", - ".git", - ".gitattributes", - ".gitignore", - ".gitlab-ci.yml", - ".hg", - ".hgcheck", - ".hgignore", - ".idea", - ".npmignore", - ".travis.yml", - "LICENSE", - "Thumbs.db", - "docs", - "mkdocs.yml", - "npm-debug.log", - "yarn-debug.log", - "yarn-error.log", - "yarnrc.yml", - ".yarn", -]; - -export function isFolderEmpty(root: string): { - isEmpty: boolean; - conflicts: Array<string>; -} { - const conflicts = fs - .readdirSync(root) - .filter((file) => !VALID_FILES.includes(file)) - // Support IntelliJ IDEA-based editors - .filter((file) => !/\.iml$/.test(file)); - - return { isEmpty: conflicts.length === 0, conflicts }; -} diff --git a/packages/create-turbo/src/utils/isOnline.ts b/packages/create-turbo/src/utils/isOnline.ts deleted file mode 100644 index f02b2e6..0000000 --- a/packages/create-turbo/src/utils/isOnline.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { execSync } from "child_process"; -import dns from "dns"; -import url from "url"; - -function getProxy(): string | undefined { - if (process.env.https_proxy) { - return process.env.https_proxy; - } - - try { - const httpsProxy = execSync("npm config get https-proxy").toString().trim(); - return httpsProxy !== "null" ? httpsProxy : undefined; - } catch (e) { - return; - } -} - -export function isOnline(): Promise<boolean> { - return new Promise((resolve) => { - dns.lookup("registry.yarnpkg.com", (registryErr) => { - if (!registryErr) { - return resolve(true); - } - - const proxy = getProxy(); - if (!proxy) { - return resolve(false); - } - - const { hostname } = url.parse(proxy); - if (!hostname) { - return resolve(false); - } - - dns.lookup(hostname, (proxyErr) => { - resolve(proxyErr == null); - }); - }); - }); -} diff --git a/packages/create-turbo/src/utils/isWriteable.ts b/packages/create-turbo/src/utils/isWriteable.ts deleted file mode 100644 index 132c42a..0000000 --- a/packages/create-turbo/src/utils/isWriteable.ts +++ /dev/null @@ -1,10 +0,0 @@ -import fs from "fs-extra"; - -export async function isWriteable(directory: string): Promise<boolean> { - try { - await fs.access(directory, (fs.constants || fs).W_OK); - return true; - } catch (err) { - return false; - } -} diff --git a/packages/create-turbo/src/utils/notifyUpdate.ts b/packages/create-turbo/src/utils/notifyUpdate.ts deleted file mode 100644 index e1dadc0..0000000 --- a/packages/create-turbo/src/utils/notifyUpdate.ts +++ /dev/null @@ -1,22 +0,0 @@ -import chalk from "chalk"; -import checkForUpdate from "update-check"; - -import cliPkgJson from "../../package.json"; - -const update = checkForUpdate(cliPkgJson).catch(() => null); - -export default async function notifyUpdate(): Promise<void> { - try { - const res = await update; - if (res?.latest) { - console.log(); - console.log( - chalk.yellow.bold("A new version of `create-turbo` is available!") - ); - console.log(); - } - process.exit(); - } catch (_e: any) { - // ignore error - } -} |
