Skip to content

Commit 324131e

Browse files
author
Michael O'Brien
committed
FIX: persisting nested schemas
1 parent 1f776db commit 324131e

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

src/Schema.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -265,22 +265,33 @@ export class Schema {
265265
*/
266266
transformSchemaForWrite(schema) {
267267
for (let [name, model] of Object.entries(schema.models)) {
268-
for (let [fname, field] of Object.entries(model)) {
269-
if (field.validate && field.validate instanceof RegExp) {
270-
schema.models[name][fname].validate = `/${field.validate.source}/${field.validate.flags}`
271-
}
272-
let type = (typeof field.type == 'function') ? field.type.name : field.type
273-
field.type = type.toLowerCase()
274-
if (field.uuid) {
275-
field.generate = field.generate || field.uuid
276-
delete field.uuid
277-
}
268+
for (let field of Object.values(model)) {
269+
this.transformFieldForWrite(field)
278270
}
279271
}
280272
schema.params = this.setDefaultParams(schema.params || this.params)
281273
return schema
282274
}
283275

276+
transformFieldForWrite(field) {
277+
if (field.validate && field.validate instanceof RegExp) {
278+
field.validate = `/${field.validate.source}/${field.validate.flags}`
279+
}
280+
let type = (typeof field.type == 'function') ? field.type.name : field.type
281+
field.type = type.toLowerCase()
282+
// DEPRECATE
283+
if (field.uuid) {
284+
field.generate = field.generate || field.uuid
285+
delete field.uuid
286+
}
287+
if (field.schema) {
288+
for (let f of Object.values(field.schema)) {
289+
this.transformFieldForWrite(f)
290+
}
291+
}
292+
return field
293+
}
294+
284295
/*
285296
Replace Schema and Migration models, timestamp fields and type field
286297
*/

0 commit comments

Comments
 (0)