@ketch-sdk/ketch-data-layer
Version:
Ketch Data Layer interface
58 lines • 3.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
function windowFetcher(w, name) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
if (!w || name.length === 0) {
return [];
}
try {
const pv = getProperty(w, name);
if (!pv || pv === '0') {
return [];
}
return [pv];
}
catch (e) {
return [];
}
});
}
exports.default = windowFetcher;
function getProperty(w, p) {
const parts = p.split('.');
let context = w;
let previousContext = null;
while (parts.length > 0) {
if (parts[0] === 'window') {
parts.shift();
}
else if (typeof context === 'object') {
if (parts[0].slice(-2) === '()') {
previousContext = context;
context = context[parts[0].slice(0, -2)];
}
else {
previousContext = context;
context = context[parts.shift()];
}
}
else if (typeof context === 'function') {
const newContext = context.call(previousContext);
previousContext = context;
context = newContext;
parts.shift();
}
else {
return null;
}
}
if (context && typeof context !== 'string') {
context = context.toString();
if (context.startsWith('[object')) {
return '';
}
}
return context;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aW5kb3cvZmV0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUE4QixhQUFhLENBQUMsQ0FBUyxFQUFFLElBQVk7O1FBQ2pFLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUE7U0FDVjtRQUVELElBQUk7WUFDRixNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQy9CLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRTtnQkFDckIsT0FBTyxFQUFFLENBQUE7YUFDVjtZQUVELE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUNaO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQTtTQUNWO0lBQ0gsQ0FBQztDQUFBO0FBZkQsZ0NBZUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUN2QyxNQUFNLEtBQUssR0FBYSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3BDLElBQUksT0FBTyxHQUFRLENBQUMsQ0FBQTtJQUNwQixJQUFJLGVBQWUsR0FBUSxJQUFJLENBQUE7SUFFL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7WUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO1NBQ2Q7YUFBTSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQy9CLGVBQWUsR0FBRyxPQUFPLENBQUE7Z0JBQ3pCLE9BQU8sR0FBRyxPQUFPLENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ3JEO2lCQUFNO2dCQUNMLGVBQWUsR0FBRyxPQUFPLENBQUE7Z0JBQ3pCLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBWSxDQUFDLENBQUE7YUFDM0M7U0FDRjthQUFNLElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDaEQsZUFBZSxHQUFHLE9BQU8sQ0FBQTtZQUN6QixPQUFPLEdBQUcsVUFBVSxDQUFBO1lBQ3BCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQTtTQUNkO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQTtTQUNaO0tBQ0Y7SUFFRCxJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDMUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUM1QixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDakMsT0FBTyxFQUFFLENBQUE7U0FDVjtLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQyJ9