datainout
Version:
Import and reports data
114 lines (112 loc) • 3.22 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/common/core/EventHandler.ts
var EventHandler_exports = {};
__export(EventHandler_exports, {
ContextEventHandler: () => ContextEventHandler,
EventHandler: () => EventHandler,
HookProvider: () => HookProvider
});
module.exports = __toCommonJS(EventHandler_exports);
var ContextEventHook = class {
constructor() {
this.context = {};
}
after(callback) {
callback(this.context);
}
before(callback) {
callback(this.context);
return this;
}
};
var ContextEventHandler = class {
constructor() {
this.groupContext = {};
}
setEvent(key) {
const eventHook = new ContextEventHook();
if (!this.groupContext[key]) this.groupContext[key] = [];
this.groupContext[key].push(eventHook);
return eventHook;
}
get WorkBook() {
return this.setEvent("workBook");
}
get Sheet() {
return this.setEvent("sheet");
}
get Row() {
return this.setEvent("row");
}
get Header() {
return this.setEvent("header");
}
get Footer() {
return this.setEvent("footer");
}
get Error() {
return this.setEvent("error");
}
};
var HookProvider = class {
};
var EventHandler = class {
constructor() {
this.listEvents = {};
}
onFile(func) {
this.listEvents.workBook = func;
}
endFile(func) {
this.listEvents.endWorkBook = func;
}
begin(func) {
this.listEvents.sheet = func;
}
end(func) {
this.listEvents.endSheet = func;
}
error(func) {
this.listEvents.error = func;
}
buildHook() {
const that = this;
return new class extends HookProvider {
do(context) {
const workBookFunc = that.listEvents.workBook;
const endWorkBookFunc = that.listEvents.endWorkBook;
const sheetFunc = that.listEvents.sheet;
const endSheetFunc = that.listEvents.endSheet;
const errorFunc = that.listEvents.error;
if (workBookFunc) context.WorkBook.before((ctx) => workBookFunc());
if (endWorkBookFunc) context.WorkBook.after((ctx) => endWorkBookFunc());
if (sheetFunc) context.Sheet.before((ctx) => sheetFunc(ctx.sheetName));
if (endSheetFunc) context.Sheet.after((ctx) => endSheetFunc(ctx.sheetName));
if (errorFunc) context.Error.after((ctx) => errorFunc(ctx.error));
}
}();
}
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ContextEventHandler,
EventHandler,
HookProvider
});