Koha/package.json
Victor Grousset/tuxayo 66c244ebe4
Bug 38524: Enable ESLint for .ts and .vue files
Test plan:
1. Apply only bug 38167 and it's dependency (assuming they are not in main)
2. Restart KTD or run
     sudo yarn install --modules-folder /kohadevbox/node_modules
3. Run the following and see that it doesn't lint
     eslint t/cypress/integration/AdditionalFields_spec.ts
     eslint koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/UsageStatisticsReportBuilder.vue
4. Apply the patches of this ticket
5. restart KTD
   (it tests that the provisionning works well to get all
   the JS libs)
6. Run the following and see that it lints
     eslint t/cypress/integration/AdditionalFields_spec.ts
     eslint ./t/cypress/integration/ERM/DataProviders_spec.ts
     eslint ./koha-tmpl/intranet-tmpl/prog/js/vue/modules/preservation.ts
     eslint koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/UsageStatisticsReportBuilder.vue
     eslint ./koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsFormAdd.vue

Various files tested here give an idea of the output, feel free to try others.
And report stuff that should obviously be silenced due to making too much
noise and having low value or being contrary to our current practices.
Non obvious stuff to fix might be put in a follow-up ticket.

---------

This was removed from config:
indent: ["error", 4],

Because this check was finding it redundant:
npx eslint-config-prettier koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/Main.vue
check which is documented here:
https://github.com/prettier/eslint-config-prettier?tab=readme-ov-file#cli-helper-tool

To doubled check, I sabotaged some indentation in a .js/.ts section on these files
koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/Main.vue
koha-tmpl/intranet-tmpl/prog/js/ajax.js
And without `indent: ["error", 4]` the prettier rule was still reporting the issue.
And with `indent: ["error", 4]` the issue was reported twice.
This looks enough to confirm it's redundant to keep it.

----

For the same reason as above, the following was removed:
semi: ["error", "always"],
tested by removing a semicolon in
koha-tmpl/intranet-tmpl/prog/js/ajax.js
t/cypress/integration/Auth/csrf.ts

----

This was removed:
"linebreak-style": ["error", "unix"],

Because it's the default of prettier
https://prettier.io/docs/en/options.html#end-of-line

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-01-16 15:56:17 +01:00

101 lines
3.1 KiB
JSON

{
"name": "koha",
"description": "Koha is distributed under the GNU GPL version 3 or later.",
"main": "gulpfile.js",
"directories": {
"doc": "docs",
"test": "test"
},
"dependencies": {
"@cypress/vue": "^3.1.1",
"@cypress/webpack-dev-server": "^1.8.3",
"@faker-js/faker": "^9.2.0",
"@fortawesome/fontawesome-svg-core": "^6.1.0",
"@fortawesome/free-solid-svg-icons": "^6.0.0",
"@fortawesome/vue-fontawesome": "^3.0.0-5",
"@popperjs/core": "^2.11.6",
"@redocly/cli": "^1.25.11",
"bootstrap": "^5.3.3",
"css-loader": "^6.6.0",
"cypress": "^12.17.2",
"cypress-mysql": "^1.0.0",
"datatables.net-buttons": "^2.3.4",
"datatables.net-vue3": "^2.0.0",
"gulp": "^4.0.2",
"gulp-autoprefixer": "^4.0.0",
"gulp-concat-po": "^1.0.0",
"gulp-exec": "^4.0.0",
"gulp-rename": "^2.0.0",
"gulp-rtlcss": "^1.4.1",
"gulp-sass": "^5.1.0",
"gulp-sourcemaps": "^2.6.1",
"js-yaml": "^3.13.1",
"lodash": "^4.17.12",
"merge-stream": "^2.0.0",
"minimatch": "^3.0.2",
"minimist": "^1.2.5",
"mysql": "^2.18.1",
"pinia": "^2.0.13",
"sass": "^1.58.1",
"style-loader": "^3.3.1",
"vue": "^3.2.31",
"vue-flatpickr-component": "^9",
"vue-router": "^4.0.14",
"vue-select": "4.0.0-beta.3",
"yaml": "^2.6.1"
},
"scripts": {
"css:build": "gulp css && gulp css --view opac",
"css:build:prod": "gulp build && gulp build --view opac",
"css:watch": "gulp watch",
"js:build": "rspack build --mode development",
"js:build:analyze": "rspack build --mode development --analyze",
"js:watch": "rspack build --mode development --watch",
"js:build:prod": "rspack build --mode production",
"build": "yarn css:build && yarn js:build && yarn api:bundle",
"build:prod": "yarn css:build:prod && yarn js:build:prod && yarn api:bundle",
"cypress": "cypress",
"prettier": "prettier",
"api:bundle": "redocly bundle --ext json api/v1/swagger/swagger.yaml --output api/v1/swagger/swagger_bundle.json"
},
"repository": {
"type": "git",
"url": "git://git.koha-community.org/koha.git"
},
"resolutions": {
"minimatch": "^3.0.2",
"lodash": "^4.17.12"
},
"author": "",
"license": "GPL-3.0",
"devDependencies": {
"@rspack/cli": "^1.0.1",
"@rspack/core": "^1.0.1",
"@vue/compiler-sfc": "^3.2.31",
"browserify": "^17.0.0",
"clean-webpack-plugin": "^4.0.0",
"eslint": "^9.12.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-vue": "^9.29.0",
"gulp-tap": "^1.0.1",
"html-webpack-plugin": "^5.5.0",
"node-sass-tilde-importer": "^1.0.2",
"postcss": "^8.4.14",
"postcss-selector-parser": "^6.0.10",
"prettier": "^3.4.2",
"stylelint": "^14.9.1",
"stylelint-config-standard-scss": "^5.0.0",
"stylelint-order": "^5.0.0",
"swagger-cli": "^4.0.4",
"ts-loader": "^9.2.7",
"typescript": "^4.6.2",
"typescript-eslint": "^8.9.0",
"vinyl-source-stream": "^2.0.0",
"vue-loader": "^17.0.0",
"watchify": "^4.0.0",
"webpack": "^5.69.1",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.7.4"
}
}