mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-27 17:45:40 -05:00
Wrote a script to migrate component config defaults to the new system.
This commit is contained in:
parent
7bdfcb4313
commit
87d455e98b
1 changed files with 33 additions and 0 deletions
|
@ -0,0 +1,33 @@
|
|||
load('bower_components/lodash/dist/lodash.js');
|
||||
load('bower_components/underscore.string/dist/underscore.string.min.js');
|
||||
load('bower_components/tv4/tv4.js');
|
||||
load('bower_components/treema/treema-utils.js');
|
||||
print(typeof TreemaUtils);
|
||||
|
||||
print(db.level.components.count());
|
||||
db.level.components.find().limit(3000000).forEach(function (levelComponent) {
|
||||
thisTv4 = tv4.freshApi();
|
||||
thisTv4.addSchema('#', levelComponent.configSchema || {});
|
||||
var data = levelComponent.configSchema.default || {};
|
||||
TreemaUtils.populateRequireds(data, levelComponent.configSchema);
|
||||
var props = levelComponent.configSchema.properties;
|
||||
if(props) {
|
||||
_.keys(levelComponent.configSchema.properties).forEach(function (key) {
|
||||
if(data[key]) return;
|
||||
var childSchema = props[key];
|
||||
var workingSchema = TreemaUtils.buildWorkingSchemas(childSchema, thisTv4)[0];
|
||||
if(workingSchema.default)
|
||||
return data[key] = TreemaUtils.cloneDeep(workingSchema.default);
|
||||
var type = props[key].type;
|
||||
if(!type) return;
|
||||
if(Array.isArray(type)) type = type[0];
|
||||
data[key] = TreemaUtils.defaultForType(type);
|
||||
})
|
||||
}
|
||||
delete levelComponent.configSchema.required;
|
||||
levelComponent.configSchema.default = data;
|
||||
print('\n\n--------------------', levelComponent.name);
|
||||
print("SCHEMA: ", JSON.stringify(levelComponent.configSchema, null, '\t'));
|
||||
|
||||
});
|
||||
|
Loading…
Reference in a new issue