syphonx-core
Version:
SyphonX is a template-driven solution for extracting data from HTML in a highly efficient way. It combines the power of jQuery, Regular Expressions, and Javascript into a declarative template-driven format that extracts and reshapes HTML data into JSON.
33 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractSync = void 0;
var controller_js_1 = require("./controller.js");
var index_js_1 = require("./lib/index.js");
var unwrap_js_1 = require("./lib/unwrap.js");
function extractSync(state) {
var controller = new controller_js_1.Controller(state);
if (controller.state.unpatch) {
(0, index_js_1.unpatch)(controller.state.unpatch);
controller.log("UNPATCHED ".concat(controller.state.unpatch.join(", ")));
}
try {
for (var _i = 0, _a = controller.state.actions; _i < _a.length; _i++) {
var action = _a[_i];
if (action.hasOwnProperty("select")) {
var data = controller.select(action.select);
controller.state.data = (0, index_js_1.merge)(controller.state.data, data);
}
else if (action.hasOwnProperty("transform")) {
controller.transform(action.transform);
}
}
}
catch (err) {
controller.appendError("fatal-error", err instanceof Error ? err.message : JSON.stringify(err), 0, err instanceof Error ? err.stack : undefined);
}
if (state.unwrap)
controller.state.data = (0, unwrap_js_1.unwrap)(controller.state.data);
return controller.state;
}
exports.extractSync = extractSync;
//# sourceMappingURL=extract-sync.js.map