From 151876bcd4a521abebbfb3f73da30003469edc75 Mon Sep 17 00:00:00 2001 From: Savanni D'Gerinel Date: Thu, 13 Feb 2025 09:54:09 -0500 Subject: [PATCH] Create the three parts of the app --- visions/server/Cargo.toml | 6 +++++ visions/server/Taskfile.yml | 23 +++++++++++++++++ visions/server/src/main.rs | 3 +++ visions/types/Taskfile.yml | 8 ++++++ visions/types/package.json | 14 ++++++++++ visions/types/tsconfig.json | 15 +++++++++++ visions/ui/.gitignore | 23 +++++++++++++++++ visions/ui/Taskfile.yml | 14 ++++++++++ visions/ui/package.json | 51 +++++++++++++++++++++++++++++++++++++ visions/ui/tsconfig.json | 27 ++++++++++++++++++++ 10 files changed, 184 insertions(+) create mode 100644 visions/server/Cargo.toml create mode 100644 visions/server/Taskfile.yml create mode 100644 visions/server/src/main.rs create mode 100644 visions/types/Taskfile.yml create mode 100644 visions/types/package.json create mode 100644 visions/types/tsconfig.json create mode 100644 visions/ui/.gitignore create mode 100644 visions/ui/Taskfile.yml create mode 100644 visions/ui/package.json create mode 100644 visions/ui/tsconfig.json diff --git a/visions/server/Cargo.toml b/visions/server/Cargo.toml new file mode 100644 index 0000000..a35055c --- /dev/null +++ b/visions/server/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "server" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/visions/server/Taskfile.yml b/visions/server/Taskfile.yml new file mode 100644 index 0000000..a02f7f4 --- /dev/null +++ b/visions/server/Taskfile.yml @@ -0,0 +1,23 @@ +version: '3' + +tasks: + build: + cmds: + - cargo watch -x build + + test: + cmds: + - cargo watch -x 'nextest run' + + dev: + cmds: + - cargo watch -x run + + lint: + cmds: + - cargo watch -x clippy + + release: + cmds: + - task lint + - cargo build --release diff --git a/visions/server/src/main.rs b/visions/server/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/visions/server/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/visions/types/Taskfile.yml b/visions/types/Taskfile.yml new file mode 100644 index 0000000..d082755 --- /dev/null +++ b/visions/types/Taskfile.yml @@ -0,0 +1,8 @@ +version: '3' + +tasks: + build: + cmds: + - npm install typescript + - typeshare --lang typescript --output-file visions.ts ../server/src + - npx tsc diff --git a/visions/types/package.json b/visions/types/package.json new file mode 100644 index 0000000..6d972c1 --- /dev/null +++ b/visions/types/package.json @@ -0,0 +1,14 @@ +{ + "name": "visions-types", + "version": "0.0.1", + "description": "Shared data types for Visions", + "main": "visions.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "typescript": "^5.7.3" + } +} diff --git a/visions/types/tsconfig.json b/visions/types/tsconfig.json new file mode 100644 index 0000000..2fbee24 --- /dev/null +++ b/visions/types/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "es2016", + "module": "commonjs", + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "outDir": "./dist", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + }, + "include": ["./visions.ts"] +} diff --git a/visions/ui/.gitignore b/visions/ui/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/visions/ui/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/visions/ui/Taskfile.yml b/visions/ui/Taskfile.yml new file mode 100644 index 0000000..826f96e --- /dev/null +++ b/visions/ui/Taskfile.yml @@ -0,0 +1,14 @@ +version: '3' + +tasks: + dev: + cmds: + - cd ../visions-types && task build + - npm install + - npm run start + + test: + cmds: + - cd ../visions-types && task build + - npm install + - npm run test diff --git a/visions/ui/package.json b/visions/ui/package.json new file mode 100644 index 0000000..dcfa591 --- /dev/null +++ b/visions/ui/package.json @@ -0,0 +1,51 @@ +{ + "name": "ui", + "version": "0.1.0", + "private": true, + "dependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.2.0", + "@testing-library/user-event": "^14.6.1", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.119", + "@types/react": "^18.3.12", + "@types/react-dom": "^18.3.1", + "@types/react-router": "^5.1.20", + "@types/react-router-dom": "^5.3.3", + "classnames": "^2.5.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router": "^6.28.0", + "react-router-dom": "^6.28.0", + "react-scripts": "5.0.1", + "react-use-websocket": "^4.11.1", + "typescript": "^4.9.5", + "visions-types": "../visions-types", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/visions/ui/tsconfig.json b/visions/ui/tsconfig.json new file mode 100644 index 0000000..2ccd292 --- /dev/null +++ b/visions/ui/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": [ + "src", + "gen" + ] +}