/
types.js
49 lines (37 loc) · 970 Bytes
/
types.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
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'underscore',
'mageUtils'
], function (_, utils) {
'use strict';
var store = {};
function flatten(data) {
var extender = data.extends || [],
result = {};
extender = utils.stringToArray(extender);
extender.push(data);
extender.forEach(function (item) {
if (_.isString(item)) {
item = store[item] || {};
}
utils.extend(result, item);
});
delete result.extends;
return result;
}
return {
set: function (types) {
types = types || {};
utils.extend(store, types);
_.each(types, function (data, type) {
store[type] = flatten(data);
});
},
get: function (type) {
return store[type] || {};
}
};
});