Skip to content

Commit 528cf1d

Browse files
committed
refactor: improve Nuxt configuration and clean up imports
- Updated nuxt.config.ts to enhance environment variable handling and caching for OpenAPI types generation. - Refactored useDebug composable to use the correct type for Monaco editor options. - Removed unnecessary imports of Monaco editor from multiple Vue components. - Updated keyrings.vue to change the label for the suspendedAt field to 'Expire' and adjusted the display for better clarity.
1 parent f4ae1af commit 528cf1d

File tree

7 files changed

+24
-19
lines changed

7 files changed

+24
-19
lines changed

apps/web/nuxt.config.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { resolve } from 'path'
2-
import { readFileSync, writeFileSync } from 'fs'
2+
import { existsSync, readFileSync, statSync, writeFileSync } from 'fs'
33
import openapiTS, { astToString, COMMENT_HEADER } from 'openapi-typescript'
44
import { defineNuxtConfig } from 'nuxt/config'
55
import { parse } from 'yaml'
@@ -8,8 +8,9 @@ import setupApp from './src/server/extension.setup'
88

99
const SESAME_APP_API_URL = process.env.SESAME_APP_API_URL || 'http://localhost:4002'
1010
const SESAME_ALLOWED_HOSTS = process.env.SESAME_ALLOWED_HOSTS ? process.env.SESAME_ALLOWED_HOSTS.split(',') : []
11+
const IS_DEV = process.env.NODE_ENV === 'development'
1112

12-
if (SESAME_ALLOWED_HOSTS.length === 0 && !/localhost/.test(SESAME_APP_API_URL) && process.env.NODE_ENV === 'development') {
13+
if (SESAME_ALLOWED_HOSTS.length === 0 && !/localhost/.test(SESAME_APP_API_URL) && IS_DEV) {
1314
SESAME_ALLOWED_HOSTS.push(new URL(SESAME_APP_API_URL).hostname)
1415
}
1516

@@ -53,9 +54,9 @@ export default defineNuxtConfig({
5354
...sslCfg,
5455
},
5556
devtools: {
56-
enabled: process.env.NODE_ENV === 'development',
57+
enabled: IS_DEV,
5758
timeline: {
58-
enabled: true,
59+
enabled: IS_DEV,
5960
},
6061
},
6162
css: ['~/assets/sass/global.sass'],
@@ -86,7 +87,7 @@ export default defineNuxtConfig({
8687
'nuxt-quasar-ui',
8788
'@vueuse/nuxt',
8889
'dayjs-nuxt',
89-
'@nuxt/devtools',
90+
...(IS_DEV ? ['@nuxt/devtools'] : []),
9091
'nuxt-monaco-editor',
9192
...setupApp(),
9293
],
@@ -219,7 +220,7 @@ export default defineNuxtConfig({
219220
template: {
220221
preprocessOptions: {
221222
pug: {
222-
pretty: true,
223+
pretty: IS_DEV,
223224
},
224225
},
225226
},
@@ -279,10 +280,22 @@ export default defineNuxtConfig({
279280
console.debug('[Nuxt] Error while reading identities-columns.yml', error)
280281
}
281282

283+
const forceOpenapiRefresh = /true|on|yes|1/i.test(`${process.env.SESAME_FORCE_OPENAPI_TYPES_REFRESH}`)
284+
const openapiTypesPath = '.nuxt/types/service-api.d.ts'
285+
const maxOpenapiTypesAgeMs = 1000 * 60 * 15
286+
287+
if (!forceOpenapiRefresh && existsSync(openapiTypesPath)) {
288+
const ageMs = Date.now() - statSync(openapiTypesPath).mtimeMs
289+
if (ageMs < maxOpenapiTypesAgeMs) {
290+
console.log('[OpenapiTS] Skip generation (cache still fresh).')
291+
return
292+
}
293+
}
294+
282295
console.log('[OpenapiTS] Generating .nuxt/types/service-api.d.ts...')
283296
try {
284297
const fileData = await openapiTS(`${SESAME_APP_API_URL}/swagger/json`)
285-
writeFileSync('.nuxt/types/service-api.d.ts', `${COMMENT_HEADER}${astToString(fileData)}`)
298+
writeFileSync(openapiTypesPath, `${COMMENT_HEADER}${astToString(fileData)}`)
286299
console.log('[OpenapiTS] Generated .nuxt/types/service-api.d.ts !')
287300
} catch (error) {
288301
console.debug('[OpenapiTS] Error while generating .nuxt/types/service-api.d.ts', error)

apps/web/src/composables/useDebug.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as Monaco from 'monaco-editor'
1+
import type { editor } from 'monaco-editor'
22

33
export function useDebug() {
44
const $q = useQuasar()
@@ -50,7 +50,7 @@ export function useDebug() {
5050
}
5151
}
5252

53-
const monacoOptions = computed<Monaco.editor.IStandaloneEditorConstructionOptions>(() => {
53+
const monacoOptions = computed<editor.IStandaloneEditorConstructionOptions>(() => {
5454
const existingMonacoEnvironment = (window as any).MonacoEnvironment ?? {}
5555
;(window as any).MonacoEnvironment = {
5656
...existingMonacoEnvironment,

apps/web/src/pages/identities/table/[_id]/jobs.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ div
6868
</template>
6969

7070
<script lang="ts">
71-
import * as Monaco from 'monaco-editor'
72-
7371
export default defineNuxtComponent({
7472
name: 'JobsIndexPage',
7573
data() {

apps/web/src/pages/jobs/details.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ div
6464
</template>
6565

6666
<script lang="ts">
67-
import * as Monaco from 'monaco-editor'
68-
6967
export default defineComponent({
7068
name: 'JobsIndexPage',
7169
data() {

apps/web/src/pages/jobs/table.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,6 @@ q-page.container.q-pa-sm
118118
</template>
119119

120120
<script lang="ts">
121-
import * as Monaco from 'monaco-editor'
122-
123121
export default defineComponent({
124122
name: 'JobsIndexPage',
125123
data() {

apps/web/src/pages/lifecycles/table.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,6 @@
105105
</template>
106106

107107
<script lang="ts">
108-
import * as Monaco from 'monaco-editor'
109-
110108
export default defineComponent({
111109
name: 'LifecyclesTablePage',
112110
data() {

apps/web/src/pages/settings/keyrings.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ export default defineNuxtComponent({
6262
},
6363
{
6464
name: 'suspendedAt',
65-
label: 'Suspendu le',
66-
field: (row) => (row.suspendedAt ? this.$dayjs(row.suspendedAt).format('DD/MM/YYYY HH:mm:ss') : 'N/A'),
65+
label: 'Expire',
66+
field: (row) => (row.suspendedAt ? this.$dayjs(row.suspendedAt).format('DD/MM/YYYY HH:mm:ss') : 'Jamais'),
6767
align: 'left',
6868
sortable: true,
6969
},

0 commit comments

Comments
 (0)