obniz
Version:
obniz sdk for javascript
55 lines (54 loc) • 1.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @packageDocumentation
* @ignore
*/
const js_yaml_1 = __importDefault(require("js-yaml"));
exports.default = (source) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const self = this; // eslint-disable-line @typescript-eslint/no-this-alias
if (self.cacheable) {
self.cacheable();
}
try {
const src = js_yaml_1.default.safeLoad(source);
const excludeKeys = ['example', 'description'];
const res = filter(src, excludeKeys);
// console.log("src",src);
// console.log("res",res);
return JSON.stringify(res, undefined, '\t');
}
catch (err) {
self.emitError(err);
return null;
}
};
const filter = (target, excludeKeys) => {
if (typeof target !== 'object') {
return target;
}
if (target === null) {
return target;
}
if (Array.isArray(target)) {
const newArr = [];
for (const key in target) {
if (!excludeKeys.includes(key)) {
newArr[key] = filter(target[key], excludeKeys);
}
}
return target;
}
const newObj = {};
for (const key in target) {
if (!excludeKeys.includes(key)) {
newObj[key] = filter(target[key], excludeKeys);
}
}
return newObj;
};