Files
android_development/tools/winscope/spec/utils/tree.js
Pablo Gamito 8980facbab Add tests for ObjectTransformer class
Test: N/A
Change-Id: If3b8e2fd74c8b7eb0234af1568c0d8cd5dd2e2ad
2020-06-30 12:59:02 +01:00

33 lines
849 B
JavaScript

class Node {
constructor(nodeDef, children) {
Object.assign(this, nodeDef);
this.children = children;
}
}
class DiffNode extends Node {
constructor(nodeDef, diffType, children) {
super(nodeDef, children);
this.diff = { type: diffType };
}
}
function isPrimitive(test) {
return test !== Object(test);
};
function toPlainObject(theClass) {
if (isPrimitive(theClass)) {
return theClass;
} else if (Array.isArray(theClass)) {
return theClass.map(item => toPlainObject(item));
} else {
const keys = Object.getOwnPropertyNames(Object.assign({}, theClass));
return keys.reduce((classAsObj, key) => {
classAsObj[key] = toPlainObject(theClass[key]);
return classAsObj;
}, {});
}
}
export { Node, DiffNode, toPlainObject };