forked from jlabrada71/mabayjs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readmodel.js
64 lines (54 loc) · 2.11 KB
/
readmodel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const yaml = require('js-yaml');
const fs = require('fs');
const Definition = require('./lib/model-reader')
function getModel( model ) {
return yaml.safeLoad( fs.readFileSync( model, 'utf8' ));
}
function loadModel( path ) {
return new Promise( ( resolve, reject ) => {
try {
let model = getModel( path );
resolve( model );
}
catch( e ) {
reject( e );
}
})
}
let model = getModel('ideal_model.yml');
console.log('-----PRIMITIVES-------');
console.log( JSON.stringify( model.definitions.primitives, null, 2));
console.log('-----VALUE OBJECTS-------');
console.log( JSON.stringify( model.definitions['value-objects'], null, 2));
// console.log('000000000 value objects definitions 000000000');
// console.log(model.definitions['value-objects']['email']['user'])
let primitives = new Map();
for( let primitive in model.definitions.primitives ) {
primitives.set( primitive, model.definitions.primitives[primitive]);
}
let valueObjects = new Map();
for( let valueObject in model.definitions['value-objects'] ) {
console.log( valueObject );
valueObjects.set( valueObject, model.definitions['value-objects'][valueObject]);
let propertyNames = Object.getOwnPropertyNames(model.definitions['value-objects'][valueObject]);
for( let property of propertyNames ) {
console.log( " " + property + ":" + model.definitions['value-objects'][valueObject][property] );
}
}
let entities = new Map();
for( let entity in model.definitions['entities']) {
entities.set( entity, model.definitions['entities'][entity]);
}
let aggregates = new Map();
for( let aggregate in model.definitions['aggregates']) {
aggregates.set( aggregate, model.definitions['aggregates'][aggregate]);
}
console.log('-----VALUE OBJECTS------------');
//console.log( JSON.stringify( model.definitions['entities'], null, 2));
console.log( valueObjects );
console.log('-----ENTITIES------------');
//console.log( JSON.stringify( model.definitions['entities'], null, 2));
console.log( entities );
console.log('-----AGGREGATES------------');
//console.log( JSON.stringify( model.definitions['aggregates'], null, 2));
console.log( aggregates )