munch-ease-frontend/package.json
jableader 211489ca55
Some checks failed
CI / build-test (push) Has been cancelled
pruning (#3)
Reviewed-on: #3
Co-authored-by: jableader <jacobdunk@gmail.com>
Co-committed-by: jableader <jacobdunk@gmail.com>
2025-10-25 02:18:30 +00:00

121 lines
3.2 KiB
JSON

{
"name": "doof",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"format": "prettier --write .",
"prepare": "husky install",
"test": "vitest run",
"test:watch": "vitest",
"typecheck": "tsc -p tsconfig.json --noEmit",
"typecheck:vue": "vue-tsc --noEmit",
"codegen:api": "openapi-typescript ../munch-ease-backend/openapi.json -o src/api/types.ts",
"codegen": "npm run codegen:api",
"codegen:check": "node scripts/codegen-check.js"
},
"dependencies": {
"vue": "^3.5.12",
"vue-router": "^4.4.5"
},
"devDependencies": {
"@types/node": "^20.19.22",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-plugin-typescript": "~5.0.0",
"@vue/cli-service": "~5.0.0",
"eslint": "^8.57.0",
"eslint-plugin-vue": "^9.27.0",
"husky": "^8.0.0",
"lint-staged": "^13.3.0",
"msw": "^2.5.2",
"openapi-fetch": "^0.9.5",
"openapi-typescript": "^7.4.2",
"prettier": "^3.3.3",
"typescript": "~5.5.4",
"vitest": "^1.6.0",
"vue-tsc": "^2.0.29"
},
"lint-staged": {
"*.{js,vue,css,scss,md}": [
"prettier --write"
]
},
"eslintConfig": {
"root": true,
"env": {
"node": true,
"vue/setup-compiler-macros": true
},
"extends": [
"plugin:vue/vue3-recommended",
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "vue-eslint-parser",
"parserOptions": {
"parser": "@typescript-eslint/parser",
"sourceType": "module",
"ecmaVersion": 2020,
"extraFileExtensions": [
".vue"
]
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"vue/multi-word-component-names": "off",
"vue/no-mutating-props": "error"
},
"overrides": [
{
"files": [
"src/**/*.ts",
"src/**/*.vue",
"src/**/*.d.ts"
],
"excludedFiles": [
"src/api/types.ts",
"src/**/*.d.ts"
],
"parserOptions": {
"project": [
"./tsconfig.eslint.json"
],
"tsconfigRootDir": "."
},
"rules": {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unsafe-assignment": "error",
"@typescript-eslint/no-unsafe-call": "error",
"@typescript-eslint/no-unsafe-member-access": "error",
"@typescript-eslint/no-unsafe-return": "error",
"no-restricted-syntax": [
"error",
{
"selector": "TSAsExpression[typeAnnotation.type!='TSConstKeyword']",
"message": "Disallow 'as' type assertions in app code. Prefer precise typing and helpers."
},
{
"selector": "TSTypeAssertion",
"message": "Disallow angle-bracket type assertions in app code. Prefer precise typing and helpers."
}
]
}
}
]
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"not ie 11"
]
}