fix: resource generator modelsDir output

This commit is contained in:
Arash Sheyda
2023-06-18 12:32:00 +03:00
parent 33bb3cc550
commit 1c3608743e

View File

@ -5,6 +5,8 @@ import { generateApiRoute, generateSchemaFile } from '../utils/schematics'
import { capitalize, pluralize, singularize } from '../utils/formatting' import { capitalize, pluralize, singularize } from '../utils/formatting'
export function setupResourceRPC({ nuxt, rpc }: NuxtDevtoolsServerContext): any { export function setupResourceRPC({ nuxt, rpc }: NuxtDevtoolsServerContext): any {
const runtimeConfig = nuxt.options.runtimeConfig
return { return {
// TODO: maybe separate functions // TODO: maybe separate functions
async generateResource(collection: Collection, resources: Resource[]) { async generateResource(collection: Collection, resources: Resource[]) {
@ -13,9 +15,9 @@ export function setupResourceRPC({ nuxt, rpc }: NuxtDevtoolsServerContext): any
const dbName = capitalize(singular) const dbName = capitalize(singular)
if (collection.fields) { if (collection.fields) {
const schemaPath = resolve(nuxt.options.serverDir, 'utils/models', `${singular}.schema.ts`) const schemaPath = resolve(nuxt.options.serverDir, runtimeConfig.mongoose.modelsDir, `${singular}.schema.ts`)
if (!fs.existsSync(schemaPath)) { if (!fs.existsSync(schemaPath)) {
fs.ensureDirSync(resolve(nuxt.options.serverDir, 'utils/models')) fs.ensureDirSync(resolve(nuxt.options.serverDir, runtimeConfig.mongoose.modelsDir))
fs.writeFileSync(schemaPath, generateSchemaFile(dbName, collection.fields)) fs.writeFileSync(schemaPath, generateSchemaFile(dbName, collection.fields))
} }
@ -51,7 +53,7 @@ export function setupResourceRPC({ nuxt, rpc }: NuxtDevtoolsServerContext): any
async resourceSchema(collection: string) { async resourceSchema(collection: string) {
// TODO: use magicast // TODO: use magicast
const singular = singularize(collection).toLowerCase() const singular = singularize(collection).toLowerCase()
const schemaPath = resolve(nuxt.options.serverDir, 'utils/models', `${singular}.schema.ts`) const schemaPath = resolve(nuxt.options.serverDir, runtimeConfig.mongoose.modelsDir, `${singular}.schema.ts`)
if (fs.existsSync(schemaPath)) { if (fs.existsSync(schemaPath)) {
const content = fs.readFileSync(schemaPath, 'utf-8').match(/schema: \{(.|\n)*\}/g) const content = fs.readFileSync(schemaPath, 'utf-8').match(/schema: \{(.|\n)*\}/g)
if (content) { if (content) {