feat(create-turbo): apply official-starter transform

This commit is contained in:
Turbobot
2025-10-06 16:18:41 +02:00
committed by Andras Bacsai
parent 84da487a0c
commit 5d8a02f127
56 changed files with 3465 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
import js from '@eslint/js';
import svelte from 'eslint-plugin-svelte';
import globals from 'globals';
import ts from 'typescript-eslint';
export const config = ts.config(
js.configs.recommended,
...ts.configs.recommended,
...svelte.configs['flat/recommended'],
{
languageOptions: {
globals: {
...globals.browser,
...globals.node
}
}
},
{
files: ['**/*.svelte'],
ignores: ['.svelte-kit/*'],
languageOptions: {
parserOptions: {
parser: ts.parser
}
}
}
);

View File

@@ -0,0 +1,17 @@
{
"name": "@repo/eslint-config",
"version": "0.0.0",
"type": "module",
"publishConfig": {
"access": "public"
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "^9.34.0",
"eslint-config-prettier": "^10.1.1",
"eslint-config-turbo": "^2.5.0",
"eslint-plugin-svelte": "^2.46.1",
"globals": "^15.15.0",
"typescript-eslint": "^8.40.0"
}
}

View File

@@ -0,0 +1,10 @@
{
"name": "@repo/typescript-config",
"version": "0.0.0",
"private": true,
"type": "module",
"license": "MIT",
"publishConfig": {
"access": "public"
}
}

View File

@@ -0,0 +1,18 @@
{
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "NodeNext",
"module": "NodeNext",
"target": "ESNext",
"verbatimModuleSyntax": true,
"isolatedModules": true,
"lib": ["esnext", "DOM", "DOM.Iterable"]
}
}

View File

@@ -0,0 +1,8 @@
import { config } from '@repo/eslint-config/index.js';
export default [
...config,
{
ignores: ['.svelte-kit/**', 'dist/**']
}
];

View File

@@ -0,0 +1 @@
export { default as MyCounterButton } from './components/MyCounterButton.svelte';

View File

@@ -0,0 +1,43 @@
{
"name": "@repo/ui",
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "svelte-kit sync && svelte-package --watch --input=src",
"build": "svelte-kit sync && svelte-package --input=src",
"lint": "eslint .",
"check-types": "svelte-check --tsconfig ./tsconfig.json"
},
"files": [
"dist",
"!dist/**/*.test.*",
"!dist/**/*.spec.*",
"src",
"!src/**/*.test.*",
"!src/**/*.spec.*"
],
"sideEffects": [
"**/*.css"
],
"exports": {
".": {
"types": "./dist/index.d.ts",
"svelte": "./dist/index.js"
}
},
"peerDependencies": {
"svelte": "^5.0.0"
},
"devDependencies": {
"@repo/eslint-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@sveltejs/kit": "^2.36.1",
"@sveltejs/package": "^2.5.0",
"@sveltejs/vite-plugin-svelte": "^5.1.0",
"eslint": "^9.34.0",
"svelte": "^5.38.0",
"svelte-check": "^4.3.0",
"typescript": "5.9.2",
"vite": "^6.3.2"
}
}

View File

@@ -0,0 +1,11 @@
<script lang="ts">
let count = $state(0);
function handleClick() {
count += 1;
}
</script>
<button onclick={handleClick}>
clicks: {count}
</button>

View File

@@ -0,0 +1,2 @@
export { Counter } from './my-counter-class.svelte';
export { default as MyCounterButton } from './MyCounterButton.svelte';

View File

@@ -0,0 +1,11 @@
export class Counter {
count = $state(0);
increment = () => {
this.count++;
};
decrement = () => {
this.count--;
};
}

View File

@@ -0,0 +1,10 @@
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = {
// Consult https://kit.svelte.dev/docs/integrations#preprocessors
// for more information about preprocessors
preprocess: vitePreprocess()
};
export default config;

View File

@@ -0,0 +1,10 @@
{
"extends": ["@repo/typescript-config/svelte.json", "./.svelte-kit/tsconfig.json"],
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"allowArbitraryExtensions": true
},
"include": ["dist", "./src/**/*.svelte", "./src/**/*.ts"],
"exclude": ["node_modules", ".svelte-kit"]
}

View File

@@ -0,0 +1,8 @@
import { defineConfig } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
export default defineConfig({
plugins: [
svelte()
]
});