feat(create-turbo): create with-vite-react

This commit is contained in:
Turbobot
2026-01-05 13:41:53 +07:00
committed by Firman Ramdhani
commit 43b929db64
32 changed files with 2288 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
module.exports = {
env: {
node: true,
},
parser: "@typescript-eslint/parser",
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier",
],
plugins: ["@typescript-eslint"],
parserOptions: {
sourceType: "module",
ecmaVersion: 2020,
},
rules: {
"@typescript-eslint/no-non-null-assertion": "off",
},
};
+14
View File
@@ -0,0 +1,14 @@
{
"name": "@repo/eslint-config",
"version": "0.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "^7.1.0",
"@typescript-eslint/parser": "^7.1.0",
"eslint-config-prettier": "^9.1.0"
},
"publishConfig": {
"access": "public"
}
}
+20
View File
@@ -0,0 +1,20 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"composite": false,
"declaration": true,
"declarationMap": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"inlineSources": false,
"isolatedModules": true,
"module": "ESNext",
"moduleResolution": "Bundler",
"noUnusedLocals": false,
"noUnusedParameters": false,
"preserveWatchOutput": true,
"skipLibCheck": true,
"strict": true
},
"exclude": ["node_modules"]
}
+9
View File
@@ -0,0 +1,9 @@
{
"name": "@repo/typescript-config",
"version": "0.0.0",
"private": true,
"license": "MIT",
"publishConfig": {
"access": "public"
}
}
@@ -0,0 +1,7 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "./base.json",
"compilerOptions": {
"jsx": "react-jsx"
}
}
+16
View File
@@ -0,0 +1,16 @@
{
"extends": "./base.json",
"compilerOptions": {
"target": "ESNext",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": ["ESNext", "DOM"],
"sourceMap": true,
"resolveJsonModule": true,
"noEmit": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true
},
"exclude": ["node_modules"]
}
+10
View File
@@ -0,0 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@repo/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+11
View File
@@ -0,0 +1,11 @@
import React, { useState } from "react";
export const Counter: React.FC = () => {
const [count, setCount] = useState(0);
return (
<button id="counter" type="button" onClick={() => setCount(count + 1)}>
{count}
</button>
);
};
+13
View File
@@ -0,0 +1,13 @@
import React from "react";
interface HeaderProps {
title: string;
}
export const Header: React.FC<HeaderProps> = ({ title }) => {
return (
<header id="header">
<h1>{title}</h1>
</header>
);
};
+2
View File
@@ -0,0 +1,2 @@
export * from "./header";
export * from "./counter";
+2
View File
@@ -0,0 +1,2 @@
// components
export * from "./components";
+26
View File
@@ -0,0 +1,26 @@
{
"name": "@repo/ui",
"version": "0.0.0",
"exports": {
".": "./index.ts",
"./counter": "./components/counter.ts",
"./header": "./components/header.ts",
"./setup-counter": "./utils/counter.ts"
},
"license": "MIT",
"scripts": {
"lint": "eslint \"**/*.ts\""
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/react": "^19.0.1",
"@types/react-dom": "^19.0.2",
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"eslint": "^8.57.0",
"typescript": "5.5.4"
}
}
+5
View File
@@ -0,0 +1,5 @@
{
"extends": "@repo/typescript-config/react-library.json",
"include": ["."],
"exclude": ["node_modules"]
}