@stencila/jesta
Version:
Stencila plugin for executable documents using JavaScript
31 lines (30 loc) • 979 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.clean = void 0;
const schema_1 = require("@stencila/schema");
const walk_1 = require("./util/walk");
// eslint-disable-next-line @typescript-eslint/require-await
async function clean(node) {
var _a;
if (!schema_1.isEntity(node))
return node;
if (schema_1.isA('CodeChunk', node)) {
delete node.alters;
delete node.assigns;
delete node.declares;
delete node.imports;
delete node.reads;
delete node.uses;
delete node.outputs;
delete node.errors;
}
else if (schema_1.isA('CodeExpression', node)) {
delete node.output;
delete node.errors;
}
(_a = node.meta) === null || _a === void 0 ? true : delete _a.history;
if (node.meta && Object.keys(node.meta).length === 0)
delete node.meta;
return walk_1.mutate(node, (child) => this.clean(child));
}
exports.clean = clean;