add sveltekit template
This commit is contained in:
		
							parent
							
								
									401e268281
								
							
						
					
					
						commit
						14f8e77e6a
					
				
					 24 changed files with 2157 additions and 1 deletions
				
			
		
							
								
								
									
										5
									
								
								.idea/.idea.Foxnouns.NET/.idea/codeStyles/codeStyleConfig.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								.idea/.idea.Foxnouns.NET/.idea/codeStyles/codeStyleConfig.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <state> | ||||
|     <option name="USE_PER_PROJECT_SETTINGS" value="true" /> | ||||
|   </state> | ||||
| </component> | ||||
							
								
								
									
										6
									
								
								.idea/.idea.Foxnouns.NET/.idea/inspectionProfiles/Project_Default.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/.idea.Foxnouns.NET/.idea/inspectionProfiles/Project_Default.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| <component name="InspectionProjectProfileManager"> | ||||
|   <profile version="1.0"> | ||||
|     <option name="myName" value="Project Default" /> | ||||
|     <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" /> | ||||
|   </profile> | ||||
| </component> | ||||
							
								
								
									
										6
									
								
								.idea/.idea.Foxnouns.NET/.idea/jsLinters/eslint.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/.idea.Foxnouns.NET/.idea/jsLinters/eslint.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="EslintConfiguration"> | ||||
|     <files-pattern value="**/*.{js,ts,jsx,tsx,html,vue,svelte}" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										9
									
								
								.idea/.idea.Foxnouns.NET/.idea/prettier.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.idea/.idea.Foxnouns.NET/.idea/prettier.xml
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="PrettierConfiguration"> | ||||
|     <option name="myConfigurationMode" value="MANUAL" /> | ||||
|     <option name="myRunOnSave" value="true" /> | ||||
|     <option name="myRunOnReformat" value="true" /> | ||||
|     <option name="myFilesPattern" value="**/*.{js,ts,jsx,tsx,vue,astro,svelte,html}" /> | ||||
|   </component> | ||||
| </project> | ||||
|  | @ -28,5 +28,5 @@ public class DebugController(DatabaseContext db, AuthService authSvc, IClock clo | |||
| 
 | ||||
|     public record CreateUserRequest(string Username, string Password, string Email); | ||||
| 
 | ||||
|     public record AuthResponse(Snowflake Id, string Username, string Token); | ||||
|     private record AuthResponse(Snowflake Id, string Username, string Token); | ||||
| } | ||||
							
								
								
									
										21
									
								
								Foxnouns.Backend/Controllers/MetaController.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Foxnouns.Backend/Controllers/MetaController.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| using Foxnouns.Backend.Database; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Controllers; | ||||
| 
 | ||||
| [Route("/api/v2/meta")] | ||||
| public class MetaController(DatabaseContext db) : ApiControllerBase | ||||
| { | ||||
|     [HttpGet] | ||||
|     [ProducesResponseType(StatusCodes.Status200OK, Type = typeof(MetaResponse))] | ||||
|     public async Task<IActionResult> GetMeta() | ||||
|     { | ||||
|         var userCount = await db.Users.CountAsync(); | ||||
|         var memberCount = await db.Members.CountAsync(); | ||||
| 
 | ||||
|         return Ok(new MetaResponse(userCount, memberCount, BuildInfo.Version, BuildInfo.Hash)); | ||||
|     } | ||||
| 
 | ||||
|     private record MetaResponse(int Users, int Members, string Version, string Hash); | ||||
| } | ||||
							
								
								
									
										4
									
								
								Foxnouns.Frontend/.env.example
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Foxnouns.Frontend/.env.example
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| # The API base that the server itself should call, this should not be behind a reverse proxy. | ||||
| PRIVATE_API_BASE=http://localhost:5000/api | ||||
| # The API base that clients should call, behind a reverse proxy. | ||||
| PUBLIC_API_BASE=https://pronouns.cc/api | ||||
							
								
								
									
										10
									
								
								Foxnouns.Frontend/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								Foxnouns.Frontend/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| .DS_Store | ||||
| node_modules | ||||
| /build | ||||
| /.svelte-kit | ||||
| /package | ||||
| .env | ||||
| .env.* | ||||
| !.env.example | ||||
| vite.config.js.timestamp-* | ||||
| vite.config.ts.timestamp-* | ||||
							
								
								
									
										1
									
								
								Foxnouns.Frontend/.npmrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Foxnouns.Frontend/.npmrc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| engine-strict=true | ||||
							
								
								
									
										4
									
								
								Foxnouns.Frontend/.prettierignore
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								Foxnouns.Frontend/.prettierignore
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| # Ignore files for PNPM, NPM and YARN | ||||
| pnpm-lock.yaml | ||||
| package-lock.json | ||||
| yarn.lock | ||||
							
								
								
									
										6
									
								
								Foxnouns.Frontend/.prettierrc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Foxnouns.Frontend/.prettierrc
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| { | ||||
| 	"useTabs": true, | ||||
| 	"printWidth": 100, | ||||
| 	"plugins": ["prettier-plugin-svelte"], | ||||
| 	"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] | ||||
| } | ||||
							
								
								
									
										38
									
								
								Foxnouns.Frontend/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								Foxnouns.Frontend/README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | |||
| # create-svelte | ||||
| 
 | ||||
| Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). | ||||
| 
 | ||||
| ## Creating a project | ||||
| 
 | ||||
| If you're seeing this, you've probably already done this step. Congrats! | ||||
| 
 | ||||
| ```bash | ||||
| # create a new project in the current directory | ||||
| npm create svelte@latest | ||||
| 
 | ||||
| # create a new project in my-app | ||||
| npm create svelte@latest my-app | ||||
| ``` | ||||
| 
 | ||||
| ## Developing | ||||
| 
 | ||||
| Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: | ||||
| 
 | ||||
| ```bash | ||||
| npm run dev | ||||
| 
 | ||||
| # or start the server and open the app in a new browser tab | ||||
| npm run dev -- --open | ||||
| ``` | ||||
| 
 | ||||
| ## Building | ||||
| 
 | ||||
| To create a production version of your app: | ||||
| 
 | ||||
| ```bash | ||||
| npm run build | ||||
| ``` | ||||
| 
 | ||||
| You can preview the production build with `npm run preview`. | ||||
| 
 | ||||
| > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. | ||||
							
								
								
									
										33
									
								
								Foxnouns.Frontend/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Foxnouns.Frontend/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,33 @@ | |||
| import js from '@eslint/js'; | ||||
| import ts from 'typescript-eslint'; | ||||
| import svelte from 'eslint-plugin-svelte'; | ||||
| import prettier from 'eslint-config-prettier'; | ||||
| import globals from 'globals'; | ||||
| 
 | ||||
| /** @type {import('eslint').Linter.FlatConfig[]} */ | ||||
| export default [ | ||||
| 	js.configs.recommended, | ||||
| 	...ts.configs.recommended, | ||||
| 	...svelte.configs['flat/recommended'], | ||||
| 	prettier, | ||||
| 	...svelte.configs['flat/prettier'], | ||||
| 	{ | ||||
| 		languageOptions: { | ||||
| 			globals: { | ||||
| 				...globals.browser, | ||||
| 				...globals.node | ||||
| 			} | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		files: ['**/*.svelte'], | ||||
| 		languageOptions: { | ||||
| 			parserOptions: { | ||||
| 				parser: ts.parser | ||||
| 			} | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		ignores: ['build/', '.svelte-kit/', 'dist/'] | ||||
| 	} | ||||
| ]; | ||||
							
								
								
									
										36
									
								
								Foxnouns.Frontend/package.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Foxnouns.Frontend/package.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| { | ||||
| 	"name": "foxnouns.frontend", | ||||
| 	"version": "0.0.1", | ||||
| 	"private": true, | ||||
| 	"scripts": { | ||||
| 		"dev": "vite dev", | ||||
| 		"build": "vite build", | ||||
| 		"preview": "vite preview", | ||||
| 		"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", | ||||
| 		"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", | ||||
| 		"lint": "prettier --check . && eslint .", | ||||
| 		"format": "prettier --write ." | ||||
| 	}, | ||||
| 	"devDependencies": { | ||||
| 		"@sveltejs/adapter-node": "^5.0.1", | ||||
| 		"@sveltejs/kit": "^2.0.0", | ||||
| 		"@sveltejs/vite-plugin-svelte": "^3.0.0", | ||||
| 		"@sveltestrap/sveltestrap": "^6.2.7", | ||||
| 		"@types/eslint": "^8.56.7", | ||||
| 		"bootstrap": "^5.3.3", | ||||
| 		"eslint": "^9.0.0", | ||||
| 		"eslint-config-prettier": "^9.1.0", | ||||
| 		"eslint-plugin-svelte": "^2.36.0", | ||||
| 		"globals": "^15.0.0", | ||||
| 		"prettier": "^3.1.1", | ||||
| 		"prettier-plugin-svelte": "^3.1.2", | ||||
| 		"svelte": "^4.2.7", | ||||
| 		"svelte-check": "^3.6.0", | ||||
| 		"tslib": "^2.4.1", | ||||
| 		"typescript": "^5.0.0", | ||||
| 		"typescript-eslint": "^8.0.0-alpha.20", | ||||
| 		"vite": "^5.0.3" | ||||
| 	}, | ||||
| 	"type": "module", | ||||
| 	"dependencies": {} | ||||
| } | ||||
							
								
								
									
										16
									
								
								Foxnouns.Frontend/src/app.d.ts
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Foxnouns.Frontend/src/app.d.ts
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| // See https://kit.svelte.dev/docs/types#app
 | ||||
| // for information about these interfaces
 | ||||
| declare global { | ||||
| 	namespace App { | ||||
| 		// interface Error {}
 | ||||
| 		// interface Locals {}
 | ||||
| 		interface Locals { | ||||
| 			token?: string; | ||||
| 		} | ||||
| 		// interface PageData {}
 | ||||
| 		// interface PageState {}
 | ||||
| 		// interface Platform {}
 | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| export {}; | ||||
							
								
								
									
										12
									
								
								Foxnouns.Frontend/src/app.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Foxnouns.Frontend/src/app.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| <!doctype html> | ||||
| <html lang="en"> | ||||
| 	<head> | ||||
| 		<meta charset="utf-8" /> | ||||
| 		<link rel="icon" href="%sveltekit.assets%/favicon.png" /> | ||||
| 		<meta name="viewport" content="width=device-width, initial-scale=1" /> | ||||
| 		%sveltekit.head% | ||||
| 	</head> | ||||
| 	<body data-sveltekit-preload-data="hover"> | ||||
| 		<div style="display: contents">%sveltekit.body%</div> | ||||
| 	</body> | ||||
| </html> | ||||
							
								
								
									
										15
									
								
								Foxnouns.Frontend/src/hooks.server.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								Foxnouns.Frontend/src/hooks.server.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | |||
| import { PRIVATE_API_BASE } from "$env/static/private"; | ||||
| import { PUBLIC_API_BASE } from "$env/static/public"; | ||||
| 
 | ||||
| export async function handle({ event, resolve }) { | ||||
| 	event.locals.token = event.cookies.get("pronounscc-token"); | ||||
| 	return await resolve(event); | ||||
| } | ||||
| 
 | ||||
| export function handleFetch({ event, request, fetch }) { | ||||
| 	if (request.url.startsWith(PUBLIC_API_BASE)) | ||||
| 		request = new Request(request.url.replace(PUBLIC_API_BASE, PRIVATE_API_BASE), request); | ||||
| 	if (event.locals.token) request.headers.set("Authorization", event.locals.token); | ||||
| 
 | ||||
| 	return fetch(request); | ||||
| } | ||||
							
								
								
									
										1
									
								
								Foxnouns.Frontend/src/lib/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								Foxnouns.Frontend/src/lib/index.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| // place files you want to import through the `$lib` alias in this folder.
 | ||||
							
								
								
									
										2
									
								
								Foxnouns.Frontend/src/routes/+page.svelte
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								Foxnouns.Frontend/src/routes/+page.svelte
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| <h1>Welcome to SvelteKit</h1> | ||||
| <p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p> | ||||
							
								
								
									
										
											BIN
										
									
								
								Foxnouns.Frontend/static/favicon.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Foxnouns.Frontend/static/favicon.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										21
									
								
								Foxnouns.Frontend/svelte.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Foxnouns.Frontend/svelte.config.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| import adapter from "@sveltejs/adapter-node"; | ||||
| 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(), | ||||
| 
 | ||||
| 	kit: { | ||||
| 		// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
 | ||||
| 		// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
 | ||||
| 		// See https://kit.svelte.dev/docs/adapters for more information about adapters.
 | ||||
| 		adapter: adapter(), | ||||
| 		env: { | ||||
| 			privatePrefix: "PRIVATE_", | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| 
 | ||||
| export default config; | ||||
							
								
								
									
										19
									
								
								Foxnouns.Frontend/tsconfig.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Foxnouns.Frontend/tsconfig.json
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| { | ||||
| 	"extends": "./.svelte-kit/tsconfig.json", | ||||
| 	"compilerOptions": { | ||||
| 		"allowJs": true, | ||||
| 		"checkJs": true, | ||||
| 		"esModuleInterop": true, | ||||
| 		"forceConsistentCasingInFileNames": true, | ||||
| 		"resolveJsonModule": true, | ||||
| 		"skipLibCheck": true, | ||||
| 		"sourceMap": true, | ||||
| 		"strict": true, | ||||
| 		"moduleResolution": "bundler" | ||||
| 	} | ||||
| 	// Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias | ||||
| 	// except $lib which is handled by https://kit.svelte.dev/docs/configuration#files | ||||
| 	// | ||||
| 	// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes | ||||
| 	// from the referenced tsconfig.json - TypeScript does not merge them in | ||||
| } | ||||
							
								
								
									
										6
									
								
								Foxnouns.Frontend/vite.config.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								Foxnouns.Frontend/vite.config.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| import { sveltekit } from '@sveltejs/kit/vite'; | ||||
| import { defineConfig } from 'vite'; | ||||
| 
 | ||||
| export default defineConfig({ | ||||
| 	plugins: [sveltekit()] | ||||
| }); | ||||
							
								
								
									
										1885
									
								
								Foxnouns.Frontend/yarn.lock
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1885
									
								
								Foxnouns.Frontend/yarn.lock
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue