diff --git a/justfile b/justfile index e3836418a..e1be9d01d 100644 --- a/justfile +++ b/justfile @@ -4,7 +4,7 @@ default: list-commands list-commands: - @just --list --justfile {{justfile()}} --list-heading $'\nMonorepo recipes:\n' + @just --list --justfile {{justfile()}} --list-heading $'\nMonorepo recipes:\n' # Prepares the repo for development setup: @@ -12,7 +12,9 @@ setup: @just ignore .vscode/settings.json api/.vscode/settings.json web/.vscode/settings.json # ignore api local-state files @just ignore api/dev/states/myservers.cfg api/dev/Unraid.net/myservers.cfg - pnpm install + + just api/setup + just web/setup # restore notification files under api/dev restore-notifications: diff --git a/package.json b/package.json index fab0aec9c..bc53c1ddd 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,15 @@ { "name": "unraid-api-monorepo", - "version": "4.1.2", "private": true, + "version": "4.1.2", "scripts": { "build": "pnpm -r build", - "deps:check": "manypkg check", "dev": "pnpm -r dev", + "test": "pnpm -r test", "lint": "pnpm -r lint", "lint:fix": "pnpm -r lint:fix", - "test": "pnpm -r test" + "check": "manypkg check" }, - "dependencies": { - "@manypkg/cli": "^0.23.0" - }, - "packageManager": "pnpm@10.4.1", "pnpm": { "peerDependencyRules": { "allowAny": [ @@ -32,5 +28,9 @@ "ssh2", "vue-demi" ] - } + }, + "dependencies": { + "@manypkg/cli": "^0.23.0" + }, + "packageManager": "pnpm@10.4.1" } diff --git a/unraid-ui/package.json b/unraid-ui/package.json index 771b87d2d..b688caf2d 100644 --- a/unraid-ui/package.json +++ b/unraid-ui/package.json @@ -19,9 +19,7 @@ "test": "vitest", "test:ui": "vitest --ui", "coverage": "vitest run --coverage", - "clean": "pnpm run clean:build", - "clean:build": "pnpx rimraf dist", - "clean:deps": "pnpx rimraf node_modules", + "clean": "rm -rf dist", "prebuild": "npm run clean", "typecheck": "vue-tsc --noEmit", "storybook": "storybook dev -p 6006", diff --git a/web/.env b/web/.env.example similarity index 100% rename from web/.env rename to web/.env.example diff --git a/web/.gitignore b/web/.gitignore index 914b96267..6ad53f152 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,3 +1 @@ -# Env vars here shouldn't be secret -!.env.* -!.env +!.env.staging \ No newline at end of file diff --git a/web/justfile b/web/justfile index d496691e9..a0e477d99 100644 --- a/web/justfile +++ b/web/justfile @@ -4,6 +4,11 @@ default: @just --list --justfile {{justfile()}} --list-heading $'\nWeb project recipes:\n' @just list-commands +setup: + just ../unraid-ui/setup + cp .env.example .env + npm install + clean: rm -rf .nuxt rm -rf node_modules diff --git a/web/package.json b/web/package.json index 994d762c6..20d6d124b 100644 --- a/web/package.json +++ b/web/package.json @@ -3,29 +3,59 @@ "version": "4.1.2", "private": true, "scripts": { - "prebuild:dev": "./scripts/prebuild-webgui-set-env.sh .env.staging", - "prebuild:webgui": "./scripts/prebuild-webgui-set-env.sh", - "build": "NODE_ENV=production nuxt build && pnpm run manifest-ts", - "build:dev": "nuxt build && pnpm run manifest-ts && pnpm run deploy-to-unraid:dev", - "build:webgui": "pnpm run type-check && nuxt build && pnpm run manifest-ts && pnpm run copy-to-webgui-repo", - "postbuild:dev": "./scripts/postbuild-webgui-restore-env.sh", - "postbuild:webgui": "./scripts/postbuild-webgui-restore-env.sh", - "clean": "pnpx rimraf .nuxt node_modules", - "codegen": "graphql-codegen --config codegen.ts -r dotenv/config", - "codegen:watch": "graphql-codegen --config codegen.ts --watch -r dotenv/config", - "copy-to-webgui-repo": "./scripts/copy-to-webgui-repo.sh", - "deploy-to-unraid:dev": "./scripts/deploy-dev.sh", "dev": "nuxt dev", - "generate": "nuxt generate", - "postinstall": "nuxt prepare", "lint": "eslint .", "lint:fix": "eslint . --fix", + "type-check": "nuxi typecheck", + "prebuild:dev": "./scripts/prebuild-webgui-set-env.sh .env.staging", + "build:dev": "nuxt build && pnpm run manifest-ts && pnpm run deploy-to-unraid:dev", + "postbuild:dev": "./scripts/postbuild-webgui-restore-env.sh", + "prebuild:webgui": "./scripts/prebuild-webgui-set-env.sh", + "build:webgui": "pnpm run type-check && nuxt build && pnpm run manifest-ts && pnpm run copy-to-webgui-repo", + "postbuild:webgui": "./scripts/postbuild-webgui-restore-env.sh", + "build": "NODE_ENV=production nuxt build && pnpm run manifest-ts", + "deploy-to-unraid:dev": "./scripts/deploy-dev.sh", + "copy-to-webgui-repo": "./scripts/copy-to-webgui-repo.sh", "manifest-ts": "node ./scripts/add-timestamp-webcomponent-manifest.js", + "generate": "nuxt generate", "preview": "nuxt preview", + "postinstall": "nuxt prepare", "serve": "NODE_ENV=production PORT=${PORT:-4321} node .output/server/index.mjs", + "codegen": "graphql-codegen --config codegen.ts -r dotenv/config", + "codegen:watch": "graphql-codegen --config codegen.ts --watch -r dotenv/config", "test": "vitest", - "test:ci": "vitest run", - "type-check": "nuxi typecheck" + "test:ci": "vitest run" + }, + "devDependencies": { + "@graphql-codegen/cli": "^5.0.3", + "@graphql-codegen/client-preset": "^4.5.1", + "@graphql-codegen/introspection": "^4.0.3", + "@ianvs/prettier-plugin-sort-imports": "^4.4.0", + "@nuxt/devtools": "^1.6.4", + "@nuxt/eslint": "^0.7.3", + "@nuxtjs/tailwindcss": "^6.12.2", + "@rollup/plugin-strip": "^3.0.4", + "@tailwindcss/typography": "^0.5.15", + "@types/crypto-js": "^4.2.2", + "@types/eslint-config-prettier": "^6.11.3", + "@types/node": "^22", + "@types/semver": "^7.5.8", + "@unraid/tailwind-rem-to-rem": "^1.1.0", + "@vue/apollo-util": "^4.0.0-beta.6", + "@vueuse/core": "^12.0.0", + "@vueuse/nuxt": "^12.0.0", + "eslint-config-prettier": "^9.1.0", + "lodash-es": "^4.17.21", + "nuxt": "^3.14.1592", + "nuxt-custom-elements": "2.0.0-beta.18", + "prettier": "3.5.1", + "prettier-plugin-tailwindcss": "^0.6.9", + "shadcn-nuxt": "^0.11.3", + "tailwindcss-animate": "^1.0.7", + "terser": "^5.37.0", + "vite-plugin-remove-console": "^2.2.0", + "vitest": "^2.1.3", + "vue-tsc": "^2.1.10" }, "dependencies": { "@apollo/client": "^3.12.3", @@ -59,45 +89,14 @@ "vue-i18n": "^10.0.5", "wretch": "^2.11.0" }, - "devDependencies": { - "@graphql-codegen/cli": "^5.0.3", - "@graphql-codegen/client-preset": "^4.5.1", - "@graphql-codegen/introspection": "^4.0.3", - "@ianvs/prettier-plugin-sort-imports": "^4.4.0", - "@nuxt/devtools": "^1.6.4", - "@nuxt/eslint": "^0.7.3", - "@nuxtjs/tailwindcss": "^6.12.2", - "@rollup/plugin-strip": "^3.0.4", - "@tailwindcss/typography": "^0.5.15", - "@types/crypto-js": "^4.2.2", - "@types/eslint-config-prettier": "^6.11.3", - "@types/node": "^22", - "@types/semver": "^7.5.8", - "@unraid/tailwind-rem-to-rem": "^1.1.0", - "@vue/apollo-util": "^4.0.0-beta.6", - "@vueuse/core": "^12.0.0", - "@vueuse/nuxt": "^12.0.0", - "eslint-config-prettier": "^9.1.0", - "lodash-es": "^4.17.21", - "nuxt": "^3.14.1592", - "nuxt-custom-elements": "2.0.0-beta.18", - "prettier": "3.5.1", - "prettier-plugin-tailwindcss": "^0.6.9", - "shadcn-nuxt": "^0.11.3", - "tailwindcss-animate": "^1.0.7", - "terser": "^5.37.0", - "vite-plugin-remove-console": "^2.2.0", - "vitest": "^2.1.3", - "vue-tsc": "^2.1.10" - }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "^4.30.1" }, - "packageManager": "pnpm@10.4.1", "overrides": { "vue": "latest", "radix-vue": { "@floating-ui/vue": "^1.1.5" } - } + }, + "packageManager": "pnpm@10.4.1" }