UNPKG

datainout

Version:

Import and reports data

114 lines (112 loc) 3.22 kB
"use strict"; 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 });