diff --git a/web/pw-server/.eslintrc.cjs b/web/pw-server/.eslintrc.cjs new file mode 100644 index 0000000..3ccf435 --- /dev/null +++ b/web/pw-server/.eslintrc.cjs @@ -0,0 +1,20 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], + plugins: ['svelte3', '@typescript-eslint'], + ignorePatterns: ['*.cjs'], + overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], + settings: { + 'svelte3/typescript': () => require('typescript') + }, + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020 + }, + env: { + browser: true, + es2017: true, + node: true + } +}; diff --git a/web/pw-server/.gitignore b/web/pw-server/.gitignore new file mode 100644 index 0000000..dc61a8d --- /dev/null +++ b/web/pw-server/.gitignore @@ -0,0 +1,9 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +package-lock.json \ No newline at end of file diff --git a/web/pw-server/.npmrc b/web/pw-server/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/web/pw-server/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/web/pw-server/.prettierrc b/web/pw-server/.prettierrc new file mode 100644 index 0000000..ff2677e --- /dev/null +++ b/web/pw-server/.prettierrc @@ -0,0 +1,6 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100 +} diff --git a/web/pw-server/README.md b/web/pw-server/README.md new file mode 100644 index 0000000..82510ca --- /dev/null +++ b/web/pw-server/README.md @@ -0,0 +1,38 @@ +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/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 init svelte@next + +# create a new project in my-app +npm init svelte@next my-app +``` + +> Note: the `@next` is temporary + +## 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 + +Before creating a production version of your app, install an [adapter](https://kit.svelte.dev/docs#adapters) for your target environment. Then: + +```bash +npm run build +``` + +> You can preview the built app with `npm run preview`, regardless of whether you installed an adapter. This should _not_ be used to serve your app in production. diff --git a/web/pw-server/package.json b/web/pw-server/package.json new file mode 100644 index 0000000..29d59f6 --- /dev/null +++ b/web/pw-server/package.json @@ -0,0 +1,37 @@ +{ + "name": "pw-server", + "version": "0.0.1", + "scripts": { + "dev": "svelte-kit dev", + "build": "svelte-kit build", + "package": "svelte-kit package", + "preview": "svelte-kit preview", + "check": "svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .", + "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ." + }, + "devDependencies": { + "@sveltejs/adapter-auto": "next", + "@sveltejs/kit": "next", + "@typescript-eslint/eslint-plugin": "^4.31.1", + "@typescript-eslint/parser": "^4.31.1", + "@originjs/vite-plugin-commonjs": "^1.0.1", + "@sveltejs/vite-plugin-svelte": "^1.0.0-next.30", + "vite-plugin-wasm-pack": "^0.1.9", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-svelte3": "^3.2.1", + "prettier": "^2.4.1", + "prettier-plugin-svelte": "^2.4.0", + "svelte": "^3.44.0", + "svelte-check": "^2.2.6", + "svelte-preprocess": "^4.9.4", + "tslib": "^2.3.1", + "typescript": "^4.4.3" + }, + "dependencies": { + "moment": "^2.29.1" + }, + "type": "module" +} \ No newline at end of file diff --git a/web/pw-server/src/app.html b/web/pw-server/src/app.html new file mode 100644 index 0000000..9c8080f --- /dev/null +++ b/web/pw-server/src/app.html @@ -0,0 +1,13 @@ + + + + + + + + %svelte.head% + + +
%svelte.body%
+ + diff --git a/web/pw-server/src/global.d.ts b/web/pw-server/src/global.d.ts new file mode 100644 index 0000000..63908c6 --- /dev/null +++ b/web/pw-server/src/global.d.ts @@ -0,0 +1 @@ +/// diff --git a/web/pw-server/src/routes/index.svelte b/web/pw-server/src/routes/index.svelte new file mode 100644 index 0000000..5982b0a --- /dev/null +++ b/web/pw-server/src/routes/index.svelte @@ -0,0 +1,2 @@ +

Welcome to SvelteKit

+

Visit kit.svelte.dev to read the documentation

diff --git a/web/pw-server/static/favicon.ico b/web/pw-server/static/favicon.ico new file mode 100644 index 0000000..628e6ed Binary files /dev/null and b/web/pw-server/static/favicon.ico differ diff --git a/web/pw-server/svelte.config.js b/web/pw-server/svelte.config.js new file mode 100644 index 0000000..14e6a05 --- /dev/null +++ b/web/pw-server/svelte.config.js @@ -0,0 +1,49 @@ +import adapter from '@sveltejs/adapter-auto'; +import preprocess from 'svelte-preprocess'; +// import { svelte } from '@sveltejs/vite-plugin-svelte' +import { viteCommonjs } from '@originjs/vite-plugin-commonjs' +import wasmPack from 'vite-plugin-wasm-pack'; + + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://github.com/sveltejs/svelte-preprocess + // for more information about preprocessors + preprocess: preprocess(), + + kit: { + adapter: adapter(), + + // hydrate the
element in src/app.html + target: '#svelte', + ssr: false, + vite: { + plugins: [ + // svelte(), + // wasmPack([], ["planetwars-rs"]), + viteCommonjs({ + transformMixedEsModules: true, + }), + ], + build: { + commonjsOptions: { + transformMixedEsModules: true, + }, + }, + server: { + proxy: { + "/api/": "http://localhost:9000", + "/ws": "ws://localhost:9000/ws", + }, + fs: { + // Allow serving files from one level up to the project root + allow: ['..'] + } + }, + } + + }, + +}; + +export default config; diff --git a/web/pw-server/tsconfig.json b/web/pw-server/tsconfig.json new file mode 100644 index 0000000..0555d52 --- /dev/null +++ b/web/pw-server/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "moduleResolution": "node", + "module": "es2020", + "lib": ["es2020", "DOM"], + "target": "es2020", + /** + svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using \`import type\` instead of \`import\` for Types. + */ + "importsNotUsedAsValues": "error", + "isolatedModules": true, + "resolveJsonModule": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ + "sourceMap": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": ".", + "allowJs": true, + "checkJs": true, + "paths": { + "$lib": ["src/lib"], + "$lib/*": ["src/lib/*"] + } + }, + "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] +}