@brimdata/zealot
Version:
The Javascript Client for Zed Lakes
61 lines (60 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Field", {
enumerable: true,
get: ()=>Field
});
const _baseValue = require("../utils/base-value");
const _record = require("./record");
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
class Field {
/**
* Alias for value
*/ get data() {
return this.value;
}
get path() {
let path = [
this.name
];
let parent = this.parent;
while(parent && parent instanceof Field){
path.unshift(parent.name);
parent = parent.parent;
}
return path;
}
get rootRecord() {
let parent = this.parent;
while(parent && parent instanceof Field){
parent = parent.parent;
}
if (parent instanceof _record.Record) return parent;
else return null;
}
get baseValue() {
return (0, _baseValue.baseValue)(this.value);
}
constructor(name, value, parent){
_defineProperty(this, "name", void 0);
_defineProperty(this, "value", void 0);
_defineProperty(this, "parent", void 0);
this.name = name;
this.value = value;
this.parent = parent;
}
}