From b9c10b8b73384eaf24bad95c9477cf4d0137deaf Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Tue, 24 Sep 2024 22:46:16 -0600 Subject: [PATCH] Simplify model imports --- astro.config.mjs | 11 +++++++++-- src/sequelize/index.ts | 20 +++++++++++++------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index b962d1f..73141f8 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,5 +1,5 @@ // @ts-check -import { defineConfig } from 'astro/config' +import { defineConfig, envField } from 'astro/config' import tailwind from '@astrojs/tailwind' import node from '@astrojs/node' import paraglide from '@inlang/paraglide-astro' @@ -26,5 +26,12 @@ export default defineConfig({ icon({ iconDir: 'src/img/icons' }) ], output: 'server', - adapter: node({ mode: 'standalone' }) + adapter: node({ mode: 'standalone' }), + experimental: { + env: { + schema: { + SEQUELIZE: envField.string({ context: 'server', access: 'public' }) + } + } + } }) diff --git a/src/sequelize/index.ts b/src/sequelize/index.ts index c6d34dc..e228745 100644 --- a/src/sequelize/index.ts +++ b/src/sequelize/index.ts @@ -1,10 +1,16 @@ -import type { MySqlDialect } from '@sequelize/mysql'; -import { Sequelize, type ModelStatic, type Options } from '@sequelize/core' +import { Sequelize, type Options } from '@sequelize/core' -const envOptions: Options = JSON.parse(import.meta.env.SEQUELIZE) || {} -const db = new Sequelize({ - ...envOptions, - models: Object.values(await import.meta.glob('sequelize/models/**/*.ts', { eager: true, import: 'default' })) -}) +import { SEQUELIZE } from 'astro:env/server' + +import Album from './models/album'; +import Artist from './models/artist'; +import Category from './models/category'; +import Config from './models/config'; +import User from './models/user'; + +const envOptions: Options = JSON.parse(SEQUELIZE) +envOptions.models = [Album, Artist, Category, Config, User] + +const db = new Sequelize(envOptions) export default db \ No newline at end of file