Skip to content

Commit 705aab7

Browse files
committed
fix: collections default value
1 parent 6a9eb83 commit 705aab7

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/utils/collection.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,11 @@ export function generateCollectionInsert(collection: ResolvedCollection, data: R
103103
const value = (collection.extendedSchema).shape[key]
104104
const underlyingType = getUnderlyingType(value as ZodType<unknown, ZodOptionalDef>)
105105

106-
const defaultValue = value._def.defaultValue ? value._def.defaultValue() : 'NULL'
106+
let defaultValue = value._def.defaultValue ? value._def.defaultValue() : 'NULL'
107+
108+
if (!(defaultValue instanceof Date) && typeof defaultValue === 'object') {
109+
defaultValue = JSON.stringify(defaultValue)
110+
}
107111
const valueToInsert = typeof data[key] !== 'undefined' ? data[key] : defaultValue
108112

109113
fields.push(key)
@@ -163,9 +167,13 @@ export function generateCollectionTableDefinition(collection: ResolvedCollection
163167

164168
// Handle default values
165169
if (type._def.defaultValue !== undefined) {
166-
const defaultValue = typeof type._def.defaultValue() === 'string'
170+
let defaultValue = typeof type._def.defaultValue() === 'string'
167171
? `'${type._def.defaultValue()}'`
168172
: type._def.defaultValue()
173+
174+
if (!(defaultValue instanceof Date) && typeof defaultValue === 'object') {
175+
defaultValue = `'${JSON.stringify(defaultValue)}'`
176+
}
169177
constraints.push(`DEFAULT ${defaultValue}`)
170178
}
171179

src/utils/config.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ export async function loadLayersConfig(nuxt: Nuxt) {
4444
}
4545
}
4646

47+
if (Object.keys(collectionMap).length === 0) {
48+
const collections = resolveCollections(defaultConfig.collections)
49+
for (const collection of collections) {
50+
collectionMap[collection.name] = collection
51+
}
52+
}
53+
4754
return {
4855
collections: Object.values(collectionMap),
4956
}

test/unit/generateCollectionTableDefinition.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe('generateCollectionTableDefinition', () => {
2020
' "meta" TEXT,',
2121
' "navigation" TEXT DEFAULT true,',
2222
' "path" VARCHAR,',
23-
' "seo" TEXT,',
23+
' "seo" TEXT DEFAULT \'{}\',',
2424
' "stem" VARCHAR,',
2525
' "title" VARCHAR',
2626
');',
@@ -47,7 +47,7 @@ describe('generateCollectionTableDefinition', () => {
4747
' "meta" TEXT,',
4848
' "navigation" TEXT DEFAULT true,',
4949
' "path" VARCHAR,',
50-
' "seo" TEXT,',
50+
' "seo" TEXT DEFAULT \'{}\',',
5151
' "stem" VARCHAR,',
5252
' "title" VARCHAR',
5353
');',

0 commit comments

Comments
 (0)