Skip to content

Commit 5cd5b38

Browse files
authored
chore: check types in nuxt (#1138)
## Ticket(s) lié(s) ## Description Permet de passer une validation typescript sur les frontend, notemment sur les `<script lang="ts"/>` et sur les composants de shared-ui ### Dont régressions potentielles à tester ## Screenshot / liens loom ## Check-list - [ ] Ma branche est rebase sur main - [ ] Des tests ont été écrits pour tous les endpoints créés ou modifiés - [ ] Refacto "à la volée" des parties sur lesquelles j'ai codée - [ ] Plus de `console.log` - [ ] J'ai ajouté une validation de schéma sur la route que j'ai ajouté ou modifié
2 parents c88e5de + f421748 commit 5cd5b38

55 files changed

Lines changed: 286 additions & 164 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.talismanrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,8 @@ fileignoreconfig:
295295
checksum: 0c60a5a9f3321ab3c36025bdeb35663395586d5bca3d21984fdbe5997b46c6eb
296296
- filename: packages/migrations/src/scripts/reset-s3.js
297297
checksum: 7b52636c4c49bf85a592f649f8fbf653e0203b390f4f9d220fe3ae4da06422a7
298+
- filename: packages/shared-ui/src/components/DsfrMultiselectV2.vue
299+
checksum: 1de96bc77280e61537e5c573a8116d32a8d2793eb073f89080cc66f8a389ce73
298300
- filename: packages/shared-ui/src/components/Table/DsfrDataTableV2.vue
299301
checksum: 0333a8dd3d87ab118f5896b079f89423f9e465208c68bebed045a83350ce24d6
300302
- filename: packages/shared/src/components/Chat.vue

packages/backend/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"license": "Apache-2.0",
77
"main": "src/index.js",
88
"scripts": {
9-
"lint": "eslint --fix ./src",
9+
"lint": "eslint --ext .js,.ts ./src",
10+
"lint:fix": "yarn lint --fix",
1011
"dev": "nodemon --inspect=0.0.0.0:9229 src/index.js",
1112
"test": "jest --config=jest.config.js",
1213
"test:debug": "jest --config=jest.config.js --debug --detectOpenHandles",

packages/backend/src/__tests__/helper/fixtures/hebergementHelper.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { HebergementDto } from "../../../dto/HebergementDto";
1+
import { HebergementDto } from "@vao/shared-bridge";
2+
23
import Hebergement from "../../../services/hebergement/Hebergement";
34

45
export const createHebergement = async ({

packages/backend/src/utils/cipher.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ const { sentry } = require("../config");
55
const log = logger(module.filename);
66
const crypto = require("crypto");
77

8-
98
const algorithm = "aes-256-gcm";
109

1110
// Clé de 32 octets (256 bits), encodée en hex dans la variable d'environnement
@@ -64,7 +63,7 @@ function decrypt(data) {
6463
const decipher = crypto.createDecipheriv(
6564
algorithm,
6665
secretKey,
67-
Buffer.from(data.iv, "hex")
66+
Buffer.from(data.iv, "hex"),
6867
);
6968

7069
decipher.setAuthTag(Buffer.from(data.tag, "hex"));
@@ -90,4 +89,4 @@ function decrypt(data) {
9089
}
9190
}
9291

93-
module.exports = { encrypt, decrypt };
92+
module.exports = { decrypt, encrypt };

packages/cron/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"license": "MIT",
77
"scripts": {
88
"dev": "tsx watch ./src",
9-
"lint": "eslint --fix ./src",
9+
"lint": "eslint --ext .js,.ts ./src",
10+
"lint:fix": "yarn lint --fix",
1011
"test": "jest --config=jest.config.js",
1112
"test:watch": "yarn test --watch",
1213
"test:coverage": "yarn test --coverage --passWithNoTests"

packages/frontend-bo/nuxt.config.ts

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// https://nuxt.com/docs/api/configuration/nuxt-config
2-
2+
import { resolve } from "path";
33
import { sentryVitePlugin } from "@sentry/vite-plugin";
44

55
export default defineNuxtConfig({
@@ -29,6 +29,20 @@ export default defineNuxtConfig({
2929
"@samk-dev/nuxt-vcalendar",
3030
],
3131

32+
typescript: {
33+
typeCheck: true,
34+
tsConfig: {
35+
exclude: [
36+
resolve(__dirname, "../shared-bridge/**"),
37+
resolve(__dirname, "../shared-ui/**"),
38+
],
39+
},
40+
},
41+
alias: {
42+
"@vao/shared-bridge": resolve(__dirname, "../shared-bridge/src"),
43+
"@vao/shared-ui": resolve(__dirname, "../shared-ui/src"),
44+
},
45+
3246
runtimeConfig: {
3347
public: {
3448
appVersion: undefined,
@@ -88,4 +102,4 @@ export default defineNuxtConfig({
88102
},
89103

90104
compatibilityDate: "2025-03-31",
91-
});
105+
});

packages/frontend-bo/package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"generate": "nuxt generate",
1212
"preview": "nuxt preview",
1313
"postinstall": "nuxt prepare",
14-
"lint": "eslint --fix ./src",
14+
"lint": "eslint --ext .vue,.js,.ts ./src",
15+
"lint:fix": "yarn lint --fix",
1516
"test": "vitest",
1617
"clean": "nuxt cleanup"
1718
},
@@ -36,9 +37,8 @@
3637
"pinia": "~2.2.2",
3738
"ufo": "^1.5.4",
3839
"vee-validate": "~4.13.0",
39-
"vue": "latest",
40+
"vue": "^3.5.22",
4041
"vue-matomo": "~4.2.0",
41-
"vue-router": "latest",
4242
"yup": "~1.4.0"
4343
},
4444
"devDependencies": {
@@ -52,7 +52,8 @@
5252
"sass": "~1.79.3",
5353
"sass-loader": "~16.0.2",
5454
"typescript": "~5.6.2",
55-
"vue-dsfr-nuxt-module": "^2.0.0"
55+
"vue-dsfr-nuxt-module": "^2.0.0",
56+
"vue-tsc": "^3.2.2"
5657
},
5758
"lint-staged": {
5859
"src/**/*.{js,vue,ts}": "npx eslint --cache --max-warnings=0"

packages/frontend-bo/src/components/demandes-sejour/DefaultTableFilters.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,14 @@ const props = withDefaults(
106106
{ filters: () => Object.values(demandesSejours.filters) },
107107
);
108108
109-
const defaultStatus = [...Object.values(demandesSejours.statuts)];
109+
// TODO: check if mapper is needed
110+
const defaultStatus = [...Object.values(demandesSejours.statuts)].map(
111+
(status) => ({
112+
id: status,
113+
label: status,
114+
value: status,
115+
}),
116+
);
110117
111118
const emits = defineEmits<{
112119
"update:idFonctionnelle": [string];

packages/frontend-bo/src/pages/eig/index.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ import {
131131
TableWithBackendPagination,
132132
ValidationModal,
133133
} from "@vao/shared-ui";
134-
import { mapEigToLabel } from "@vao/shared-ui/src/utils/eigUtils";
134+
import { eigUtils } from "@vao/shared-ui";
135+
const mapEigToLabel = eigUtils.mapEigToLabel;
135136
136137
definePageMeta({
137138
middleware: ["is-connected", "check-role"],

packages/frontend-bo/src/pages/footer/accessibilite.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
</template>
44

55
<script setup>
6-
import Accessibilite from "@vao/shared-ui/src/components/Accessibilite.vue";
6+
import { Accessibilite } from "@vao/shared-ui";
77
</script>

0 commit comments

Comments
 (0)