-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2ae6dfa
Showing
23 changed files
with
4,123 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# Dependencies | ||
node_modules | ||
.pnp | ||
.pnp.js | ||
|
||
# Local env files | ||
.env | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
# Testing | ||
coverage | ||
|
||
# Turbo | ||
.turbo | ||
|
||
# Vercel | ||
.vercel | ||
|
||
# Build Outputs | ||
.next/ | ||
out/ | ||
build | ||
dist | ||
|
||
|
||
# Debug | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# Misc | ||
.DS_Store | ||
*.pem |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# Turborepo starter | ||
|
||
This is an official starter Turborepo. | ||
|
||
## Using this example | ||
|
||
Run the following command: | ||
|
||
```sh | ||
npx create-turbo@latest | ||
``` | ||
|
||
## What's inside? | ||
|
||
This Turborepo includes the following packages/apps: | ||
|
||
### Apps and Packages | ||
|
||
- `docs`: a [Next.js](https://nextjs.org/) app | ||
- `web`: another [Next.js](https://nextjs.org/) app | ||
- `@repo/ui`: a stub React component library shared by both `web` and `docs` applications | ||
- `@repo/eslint-config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`) | ||
- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo | ||
|
||
Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). | ||
|
||
### Utilities | ||
|
||
This Turborepo has some additional tools already setup for you: | ||
|
||
- [TypeScript](https://www.typescriptlang.org/) for static type checking | ||
- [ESLint](https://eslint.org/) for code linting | ||
- [Prettier](https://prettier.io) for code formatting | ||
|
||
### Build | ||
|
||
To build all apps and packages, run the following command: | ||
|
||
``` | ||
cd my-turborepo | ||
pnpm build | ||
``` | ||
|
||
### Develop | ||
|
||
To develop all apps and packages, run the following command: | ||
|
||
``` | ||
cd my-turborepo | ||
pnpm dev | ||
``` | ||
|
||
### Remote Caching | ||
|
||
> [!TIP] | ||
> Vercel Remote Cache is free for all plans. Get started today at [vercel.com](https://vercel.com/signup?/signup?utm_source=remote-cache-sdk&utm_campaign=free_remote_cache). | ||
Turborepo can use a technique known as [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines. | ||
|
||
By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup?utm_source=turborepo-examples), then enter the following commands: | ||
|
||
``` | ||
cd my-turborepo | ||
npx turbo login | ||
``` | ||
|
||
This will authenticate the Turborepo CLI with your [Vercel account](https://vercel.com/docs/concepts/personal-accounts/overview). | ||
|
||
Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo: | ||
|
||
``` | ||
npx turbo link | ||
``` | ||
|
||
## Useful Links | ||
|
||
Learn more about the power of Turborepo: | ||
|
||
- [Tasks](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks) | ||
- [Caching](https://turbo.build/repo/docs/core-concepts/caching) | ||
- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) | ||
- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering) | ||
- [Configuration Options](https://turbo.build/repo/docs/reference/configuration) | ||
- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{ | ||
"name": "automation", | ||
"private": true, | ||
"scripts": { | ||
"build": "turbo build", | ||
"dev": "turbo dev", | ||
"lint": "turbo lint", | ||
"format": "prettier --write \"**/*.{ts,tsx,md}\"" | ||
}, | ||
"devDependencies": { | ||
"prettier": "^3.2.5", | ||
"turbo": "^2.3.3", | ||
"typescript": "5.5.4" | ||
}, | ||
"engines": { | ||
"node": ">=18" | ||
}, | ||
"packageManager": "[email protected]", | ||
"workspaces": [ | ||
"apps/*", | ||
"packages/*" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# `@turbo/eslint-config` | ||
|
||
Collection of internal eslint configurations. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
import js from "@eslint/js"; | ||
import eslintConfigPrettier from "eslint-config-prettier"; | ||
import turboPlugin from "eslint-plugin-turbo"; | ||
import tseslint from "typescript-eslint"; | ||
import onlyWarn from "eslint-plugin-only-warn"; | ||
|
||
/** | ||
* A shared ESLint configuration for the repository. | ||
* | ||
* @type {import("eslint").Linter.Config} | ||
* */ | ||
export const config = [ | ||
js.configs.recommended, | ||
eslintConfigPrettier, | ||
...tseslint.configs.recommended, | ||
{ | ||
plugins: { | ||
turbo: turboPlugin, | ||
}, | ||
rules: { | ||
"turbo/no-undeclared-env-vars": "warn", | ||
}, | ||
}, | ||
{ | ||
plugins: { | ||
onlyWarn, | ||
}, | ||
}, | ||
{ | ||
ignores: ["dist/**"], | ||
}, | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import js from "@eslint/js"; | ||
import eslintConfigPrettier from "eslint-config-prettier"; | ||
import tseslint from "typescript-eslint"; | ||
import pluginReactHooks from "eslint-plugin-react-hooks"; | ||
import pluginReact from "eslint-plugin-react"; | ||
import globals from "globals"; | ||
import pluginNext from "@next/eslint-plugin-next"; | ||
import { config as baseConfig } from "./base.js"; | ||
|
||
/** | ||
* A custom ESLint configuration for libraries that use Next.js. | ||
* | ||
* @type {import("eslint").Linter.Config} | ||
* */ | ||
export const nextJsConfig = [ | ||
...baseConfig, | ||
js.configs.recommended, | ||
eslintConfigPrettier, | ||
...tseslint.configs.recommended, | ||
{ | ||
...pluginReact.configs.flat.recommended, | ||
languageOptions: { | ||
...pluginReact.configs.flat.recommended.languageOptions, | ||
globals: { | ||
...globals.serviceworker, | ||
}, | ||
}, | ||
}, | ||
{ | ||
plugins: { | ||
"@next/next": pluginNext, | ||
}, | ||
rules: { | ||
...pluginNext.configs.recommended.rules, | ||
...pluginNext.configs["core-web-vitals"].rules, | ||
}, | ||
}, | ||
{ | ||
plugins: { | ||
"react-hooks": pluginReactHooks, | ||
}, | ||
settings: { react: { version: "detect" } }, | ||
rules: { | ||
...pluginReactHooks.configs.recommended.rules, | ||
// React scope no longer necessary with new JSX transform. | ||
"react/react-in-jsx-scope": "off", | ||
}, | ||
}, | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{ | ||
"name": "@repo/eslint-config", | ||
"version": "0.0.0", | ||
"type": "module", | ||
"private": true, | ||
"exports": { | ||
"./base": "./base.js", | ||
"./next-js": "./next.js", | ||
"./react-internal": "./react-internal.js" | ||
}, | ||
"devDependencies": { | ||
"@eslint/js": "^9.17.0", | ||
"@next/eslint-plugin-next": "^15.1.0", | ||
"eslint": "^9.15.0", | ||
"eslint-config-prettier": "^9.1.0", | ||
"eslint-plugin-only-warn": "^1.1.0", | ||
"eslint-plugin-react": "^7.37.2", | ||
"eslint-plugin-react-hooks": "^5.0.0", | ||
"eslint-plugin-turbo": "^2.3.0", | ||
"globals": "^15.12.0", | ||
"typescript": "^5.3.3", | ||
"typescript-eslint": "^8.15.0" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
import js from "@eslint/js"; | ||
import eslintConfigPrettier from "eslint-config-prettier"; | ||
import tseslint from "typescript-eslint"; | ||
import pluginReactHooks from "eslint-plugin-react-hooks"; | ||
import pluginReact from "eslint-plugin-react"; | ||
import globals from "globals"; | ||
import { config as baseConfig } from "./base.js"; | ||
|
||
/** | ||
* A custom ESLint configuration for libraries that use React. | ||
* | ||
* @type {import("eslint").Linter.Config} */ | ||
export const config = [ | ||
...baseConfig, | ||
js.configs.recommended, | ||
eslintConfigPrettier, | ||
...tseslint.configs.recommended, | ||
pluginReact.configs.flat.recommended, | ||
{ | ||
languageOptions: { | ||
...pluginReact.configs.flat.recommended.languageOptions, | ||
globals: { | ||
...globals.serviceworker, | ||
...globals.browser, | ||
}, | ||
}, | ||
}, | ||
{ | ||
plugins: { | ||
"react-hooks": pluginReactHooks, | ||
}, | ||
settings: { react: { version: "detect" } }, | ||
rules: { | ||
...pluginReactHooks.configs.recommended.rules, | ||
// React scope no longer necessary with new JSX transform. | ||
"react/react-in-jsx-scope": "off", | ||
}, | ||
}, | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"$schema": "https://json.schemastore.org/tsconfig", | ||
"compilerOptions": { | ||
"declaration": true, | ||
"declarationMap": true, | ||
"esModuleInterop": true, | ||
"incremental": false, | ||
"isolatedModules": true, | ||
"lib": ["es2022", "DOM", "DOM.Iterable"], | ||
"module": "NodeNext", | ||
"moduleDetection": "force", | ||
"moduleResolution": "NodeNext", | ||
"noUncheckedIndexedAccess": true, | ||
"resolveJsonModule": true, | ||
"skipLibCheck": true, | ||
"strict": true, | ||
"target": "ES2022" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"$schema": "https://json.schemastore.org/tsconfig", | ||
"extends": "./base.json", | ||
"compilerOptions": { | ||
"plugins": [{ "name": "next" }], | ||
"module": "ESNext", | ||
"moduleResolution": "Bundler", | ||
"allowJs": true, | ||
"jsx": "preserve", | ||
"noEmit": true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"name": "@repo/typescript-config", | ||
"version": "0.0.0", | ||
"private": true, | ||
"license": "MIT", | ||
"publishConfig": { | ||
"access": "public" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"$schema": "https://json.schemastore.org/tsconfig", | ||
"extends": "./base.json", | ||
"compilerOptions": { | ||
"jsx": "react-jsx" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
import { config } from "@repo/eslint-config/react-internal"; | ||
|
||
/** @type {import("eslint").Linter.Config} */ | ||
export default config; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
{ | ||
"name": "@repo/ui", | ||
"version": "0.0.0", | ||
"type": "module", | ||
"private": true, | ||
"exports": { | ||
"./button": "./src/button.tsx", | ||
"./card": "./src/card.tsx", | ||
"./code": "./src/code.tsx" | ||
}, | ||
"scripts": { | ||
"lint": "eslint . --max-warnings 0", | ||
"generate:component": "turbo gen react-component", | ||
"check-types": "tsc --noEmit" | ||
}, | ||
"devDependencies": { | ||
"@repo/eslint-config": "*", | ||
"@repo/typescript-config": "*", | ||
"@turbo/gen": "^1.12.4", | ||
"@types/node": "^20.11.24", | ||
"@types/react": "18.3.0", | ||
"@types/react-dom": "18.3.1", | ||
"typescript": "5.5.4" | ||
}, | ||
"dependencies": { | ||
"react": "^19.0.0", | ||
"react-dom": "^19.0.0" | ||
} | ||
} |
Oops, something went wrong.