mirror of https://github.com/artf/grapesjs.git
2 changed files with 39 additions and 38 deletions
@ -1,38 +0,0 @@ |
|||
import { each } from 'underscore'; |
|||
import { Model, Collection } from '../../common'; |
|||
|
|||
export default class JsonGenerator extends Model { |
|||
build(model) { |
|||
var json = model.toJSON(); |
|||
this.beforeEach(json); |
|||
|
|||
each( |
|||
json, |
|||
function (v, attr) { |
|||
var obj = json[attr]; |
|||
if (obj instanceof Model) { |
|||
json[attr] = this.build(obj); |
|||
} else if (obj instanceof Collection) { |
|||
var coll = obj; |
|||
json[attr] = []; |
|||
if (coll.length) { |
|||
coll.each(function (el, index) { |
|||
json[attr][index] = this.build(el); |
|||
}, this); |
|||
} |
|||
} |
|||
}, |
|||
this |
|||
); |
|||
|
|||
return json; |
|||
} |
|||
|
|||
/** |
|||
* Execute on each object |
|||
* @param {Object} obj |
|||
*/ |
|||
beforeEach(obj) { |
|||
delete obj.status; |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
import { each } from 'underscore'; |
|||
import { Model, Collection } from '../../common'; |
|||
import Component from '../../dom_components/model/Component'; |
|||
|
|||
type ComponentProps = Record<string, any>; |
|||
|
|||
export default class JsonGenerator extends Model { |
|||
build(model: Component) { |
|||
// @ts-ignore
|
|||
const json = model.toJSON() as ComponentProps; |
|||
this.beforeEach(json); |
|||
|
|||
each(json, (v, attr) => { |
|||
const obj = json[attr]; |
|||
if (obj instanceof Model) { |
|||
// @ts-ignore
|
|||
json[attr] = this.build(obj); |
|||
} else if (obj instanceof Collection) { |
|||
const coll = obj; |
|||
json[attr] = []; |
|||
if (coll.length) { |
|||
coll.forEach((el, index) => { |
|||
json[attr][index] = this.build(el); |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
return json; |
|||
} |
|||
|
|||
/** |
|||
* Execute on each object |
|||
* @param {Object} obj |
|||
*/ |
|||
beforeEach(obj: ComponentProps) { |
|||
delete obj.status; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue