@vdhewei/xlsx-template-lib 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -402,6 +402,7 @@ type CompileResult = {
402
402
  configure?: RuleResult;
403
403
  errs?: Error[];
404
404
  };
405
+ declare const loadCompileSheets: (workbook: exceljs.Workbook, ruleSheetName: string | number) => string[];
405
406
  declare const compileWorkSheet: <T extends ArrayBuffer | Buffer | string>(data: T, sheetName: string | number, options?: RuleOptions) => Promise<exceljs.Xlsx | Error[]>;
406
407
  declare class ExprResolver {
407
408
  static toBuffer: (w: exceljs.Workbook) => Promise<Buffer>;
@@ -469,4 +470,4 @@ declare const mergeMap: (source: Map<string, string>, dest: Map<string, string>)
469
470
  declare const autoRegisterAlias: (values: Object, configure: RuleResult) => Object;
470
471
  declare const generateCommandsXlsxTemplateWithCompile: <T extends JsZip.OutputType>(data: Buffer, values: Object, compileOptions: AutoOptions, options?: JsZip.JSZipGeneratorOptions<T> & FullOptions) => Promise<OutputByType[T]>;
471
472
 
472
- export { AddCommand, AddCommandMust, type AfterReplaceHook, type Argument, ArgumentData, ArgumentValue, ArgumentValueLoader, type AutoOptions, type BeforeReplaceHook, BufferType, type CellPosition, type CmdFunction, CompileContext, type CompileResult, type CustomFormatter, type CustomPlaceholderExtractor, type CustomReplacer, DefaultPlaceholderCellValue, type DrawingInfo, ExprResolver, type ExtensionOptions, type ExtractMacroArgs, type FilterMacroResult, type FullOptions, type MacroArgs, type MacroUnitHelper, type OutputByType, type Placeholder, type PlaceholderCellValue, type QueryFunction, type Range, type Ref, type RelsInfo, RuleMapOptions, type RuleOptions, type RuleResult, RuleToken, type SheetInfo, type TableInfo, TokenParserManger, Workbook, type WorkbookOptions, autoRegisterAlias, columnLetterToNumber, columnNumberToLetter, commandExtendQuery, compileRuleSheetName, compileWorkSheet, compileWorkSheetPlaceholder, defaultExtractPlaceholders, defaultFormatters, defaultValueDotGet, generateCommandsXlsxTemplate, generateCommandsXlsxTemplateWithCompile, generateXlsxTemplate, getCommands, getTokenParser, hasGeneratorToken, isRuleToken, isUrl, loadWorkbook, mergeMap, parseWorkSheetRules, registerTokenParser, registerTokenParserMust, resolveArgument, scanCellSetPlaceholder, toArrayBuffer, valueDotGet, workSheetSetPlaceholder };
473
+ export { AddCommand, AddCommandMust, type AfterReplaceHook, type Argument, ArgumentData, ArgumentValue, ArgumentValueLoader, type AutoOptions, type BeforeReplaceHook, BufferType, type CellPosition, type CmdFunction, CompileContext, type CompileResult, type CustomFormatter, type CustomPlaceholderExtractor, type CustomReplacer, DefaultPlaceholderCellValue, type DrawingInfo, ExprResolver, type ExtensionOptions, type ExtractMacroArgs, type FilterMacroResult, type FullOptions, type MacroArgs, type MacroUnitHelper, type OutputByType, type Placeholder, type PlaceholderCellValue, type QueryFunction, type Range, type Ref, type RelsInfo, RuleMapOptions, type RuleOptions, type RuleResult, RuleToken, type SheetInfo, type TableInfo, TokenParserManger, Workbook, type WorkbookOptions, autoRegisterAlias, columnLetterToNumber, columnNumberToLetter, commandExtendQuery, compileRuleSheetName, compileWorkSheet, compileWorkSheetPlaceholder, defaultExtractPlaceholders, defaultFormatters, defaultValueDotGet, generateCommandsXlsxTemplate, generateCommandsXlsxTemplateWithCompile, generateXlsxTemplate, getCommands, getTokenParser, hasGeneratorToken, isRuleToken, isUrl, loadCompileSheets, loadWorkbook, mergeMap, parseWorkSheetRules, registerTokenParser, registerTokenParserMust, resolveArgument, scanCellSetPlaceholder, toArrayBuffer, valueDotGet, workSheetSetPlaceholder };
package/dist/index.d.ts CHANGED
@@ -402,6 +402,7 @@ type CompileResult = {
402
402
  configure?: RuleResult;
403
403
  errs?: Error[];
404
404
  };
405
+ declare const loadCompileSheets: (workbook: exceljs.Workbook, ruleSheetName: string | number) => string[];
405
406
  declare const compileWorkSheet: <T extends ArrayBuffer | Buffer | string>(data: T, sheetName: string | number, options?: RuleOptions) => Promise<exceljs.Xlsx | Error[]>;
406
407
  declare class ExprResolver {
407
408
  static toBuffer: (w: exceljs.Workbook) => Promise<Buffer>;
@@ -469,4 +470,4 @@ declare const mergeMap: (source: Map<string, string>, dest: Map<string, string>)
469
470
  declare const autoRegisterAlias: (values: Object, configure: RuleResult) => Object;
470
471
  declare const generateCommandsXlsxTemplateWithCompile: <T extends JsZip.OutputType>(data: Buffer, values: Object, compileOptions: AutoOptions, options?: JsZip.JSZipGeneratorOptions<T> & FullOptions) => Promise<OutputByType[T]>;
471
472
 
472
- export { AddCommand, AddCommandMust, type AfterReplaceHook, type Argument, ArgumentData, ArgumentValue, ArgumentValueLoader, type AutoOptions, type BeforeReplaceHook, BufferType, type CellPosition, type CmdFunction, CompileContext, type CompileResult, type CustomFormatter, type CustomPlaceholderExtractor, type CustomReplacer, DefaultPlaceholderCellValue, type DrawingInfo, ExprResolver, type ExtensionOptions, type ExtractMacroArgs, type FilterMacroResult, type FullOptions, type MacroArgs, type MacroUnitHelper, type OutputByType, type Placeholder, type PlaceholderCellValue, type QueryFunction, type Range, type Ref, type RelsInfo, RuleMapOptions, type RuleOptions, type RuleResult, RuleToken, type SheetInfo, type TableInfo, TokenParserManger, Workbook, type WorkbookOptions, autoRegisterAlias, columnLetterToNumber, columnNumberToLetter, commandExtendQuery, compileRuleSheetName, compileWorkSheet, compileWorkSheetPlaceholder, defaultExtractPlaceholders, defaultFormatters, defaultValueDotGet, generateCommandsXlsxTemplate, generateCommandsXlsxTemplateWithCompile, generateXlsxTemplate, getCommands, getTokenParser, hasGeneratorToken, isRuleToken, isUrl, loadWorkbook, mergeMap, parseWorkSheetRules, registerTokenParser, registerTokenParserMust, resolveArgument, scanCellSetPlaceholder, toArrayBuffer, valueDotGet, workSheetSetPlaceholder };
473
+ export { AddCommand, AddCommandMust, type AfterReplaceHook, type Argument, ArgumentData, ArgumentValue, ArgumentValueLoader, type AutoOptions, type BeforeReplaceHook, BufferType, type CellPosition, type CmdFunction, CompileContext, type CompileResult, type CustomFormatter, type CustomPlaceholderExtractor, type CustomReplacer, DefaultPlaceholderCellValue, type DrawingInfo, ExprResolver, type ExtensionOptions, type ExtractMacroArgs, type FilterMacroResult, type FullOptions, type MacroArgs, type MacroUnitHelper, type OutputByType, type Placeholder, type PlaceholderCellValue, type QueryFunction, type Range, type Ref, type RelsInfo, RuleMapOptions, type RuleOptions, type RuleResult, RuleToken, type SheetInfo, type TableInfo, TokenParserManger, Workbook, type WorkbookOptions, autoRegisterAlias, columnLetterToNumber, columnNumberToLetter, commandExtendQuery, compileRuleSheetName, compileWorkSheet, compileWorkSheetPlaceholder, defaultExtractPlaceholders, defaultFormatters, defaultValueDotGet, generateCommandsXlsxTemplate, generateCommandsXlsxTemplateWithCompile, generateXlsxTemplate, getCommands, getTokenParser, hasGeneratorToken, isRuleToken, isUrl, loadCompileSheets, loadWorkbook, mergeMap, parseWorkSheetRules, registerTokenParser, registerTokenParserMust, resolveArgument, scanCellSetPlaceholder, toArrayBuffer, valueDotGet, workSheetSetPlaceholder };
package/dist/index.js CHANGED
@@ -62,6 +62,7 @@ __export(index_exports, {
62
62
  hasGeneratorToken: () => hasGeneratorToken,
63
63
  isRuleToken: () => isRuleToken,
64
64
  isUrl: () => isUrl,
65
+ loadCompileSheets: () => loadCompileSheets,
65
66
  loadWorkbook: () => loadWorkbook,
66
67
  mergeMap: () => mergeMap,
67
68
  parseWorkSheetRules: () => parseWorkSheetRules,
@@ -2130,16 +2131,16 @@ var RuleMapOptions = class _RuleMapOptions {
2130
2131
  }
2131
2132
  parseDefault(worksheet) {
2132
2133
  this.ruleKeyMap = mergeOption(this.ruleKeyMap, defaultRuleTokenMap);
2133
- if (this.startLine === void 0) {
2134
+ if (this.startLine === void 0 || isNaN(this.startLine) || this.startLine < 0) {
2134
2135
  this.startLine = 1;
2135
2136
  }
2136
- if (this.endLine === void 0) {
2137
+ if (this.endLine === void 0 || isNaN(this.endLine) || this.endLine < 0) {
2137
2138
  this.endLine = worksheet.rowCount;
2138
2139
  }
2139
- if (this.startColumn === void 0) {
2140
+ if (this.startColumn === void 0 || isNaN(this.startColumn) || this.startColumn < 0) {
2140
2141
  this.startColumn = 1;
2141
2142
  }
2142
- if (this.endColumn === void 0) {
2143
+ if (this.endColumn === void 0 || isNaN(this.endColumn) || this.endColumn < 0) {
2143
2144
  this.endColumn = worksheet.columnCount;
2144
2145
  }
2145
2146
  return this;
@@ -3569,13 +3570,31 @@ var compileWorkSheetPlaceholder = function(ctx, sheet, result) {
3569
3570
  }
3570
3571
  return void 0;
3571
3572
  };
3573
+ var loadCompileSheets = (workbook, ruleSheetName) => {
3574
+ let first;
3575
+ let sheets = [];
3576
+ for (const [_, w] of workbook.worksheets.entries()) {
3577
+ if (w.name === ruleSheetName) {
3578
+ continue;
3579
+ }
3580
+ if (first === "") {
3581
+ first = w.name;
3582
+ }
3583
+ if (!w.name.endsWith(".json") && !w.name.endsWith(".config")) {
3584
+ sheets.push(w.name);
3585
+ }
3586
+ }
3587
+ if (sheets.length <= 0 && first !== "") {
3588
+ sheets.push(first);
3589
+ }
3590
+ return sheets;
3591
+ };
3572
3592
  var compile = async function(data, ruleSheetName, options) {
3573
3593
  const workbook = await loadWorkbook(data);
3574
3594
  const sheet = workbook.getWorksheet(ruleSheetName);
3575
3595
  if (sheet === void 0) {
3576
3596
  return {
3577
- workbook,
3578
- errs: [new Error(`compile error, ${ruleSheetName} not exists!`)]
3597
+ workbook
3579
3598
  };
3580
3599
  }
3581
3600
  if (workbook.worksheets === void 0) {
@@ -3588,6 +3607,10 @@ var compile = async function(data, ruleSheetName, options) {
3588
3607
  const excludes = [ruleSheetName];
3589
3608
  options = RuleMapOptions.withAllSheets(workbook, excludes);
3590
3609
  }
3610
+ options = options.parseDefault(sheet);
3611
+ if (options.compileSheets === void 0 || options.compileSheets.length === 0) {
3612
+ options.compileSheets = loadCompileSheets(workbook, ruleSheetName);
3613
+ }
3591
3614
  const result = parseWorkSheetRules(sheet, options);
3592
3615
  const errs = compileCheck(result, options);
3593
3616
  if (errs !== void 0) {
@@ -3650,6 +3673,9 @@ var fetchAlias = (m) => {
3650
3673
  };
3651
3674
  var removeUnExportSheets = (w, options) => {
3652
3675
  const removes = [];
3676
+ if (typeof options.skipRemoveUnExportSheet === "boolean" && options.skipRemoveUnExportSheet === true) {
3677
+ return w;
3678
+ }
3653
3679
  if (options.compileSheets === void 0 || options.compileSheets.length <= 0) {
3654
3680
  for (const [i, v] of w.worksheets.entries()) {
3655
3681
  const sheetName = v.name;
@@ -3692,6 +3718,7 @@ ExprResolver.resolveCompileMacroGen = resolveCompileMacroGen;
3692
3718
  ExprResolver.resolveCompileMacroExpr = resolveCompileMacroExpr;
3693
3719
 
3694
3720
  // src/extends.ts
3721
+ var import_promises = __toESM(require("fs/promises"));
3695
3722
  function hasToString(obj) {
3696
3723
  return obj != null && typeof obj.toString === "function";
3697
3724
  }
@@ -3961,6 +3988,12 @@ var autoRegisterAlias = function(values, configure) {
3961
3988
  values[aliasKey] = alias;
3962
3989
  return values;
3963
3990
  };
3991
+ var saveCompile = async (compileOptions, wb) => {
3992
+ if (typeof compileOptions.save === "boolean" && compileOptions.save === true && typeof compileOptions.saveFile === "string" && compileOptions.saveFile !== "") {
3993
+ const path2 = compileOptions.saveFile;
3994
+ await import_promises.default.writeFile(`${path2}compile_${(/* @__PURE__ */ new Date()).valueOf()}.xlsx`, wb);
3995
+ }
3996
+ };
3964
3997
  var generateCommandsXlsxTemplateWithCompile = async function(data, values, compileOptions, options) {
3965
3998
  if (compileOptions.sheetName === void 0 || compileOptions.sheetName === "") {
3966
3999
  compileOptions.sheetName = compileRuleSheetName;
@@ -3972,6 +4005,7 @@ var generateCommandsXlsxTemplateWithCompile = async function(data, values, compi
3972
4005
  values = autoRegisterAlias(values, result.configure);
3973
4006
  result.workbook = ExprResolver.removeUnExportSheets(result.workbook, compileOptions);
3974
4007
  const wb = await ExprResolver.toBuffer(result.workbook);
4008
+ await saveCompile(compileOptions, wb);
3975
4009
  const w = await Workbook.parse(wb, options);
3976
4010
  w.setQueryFunctionHandler(commandExtendQuery);
3977
4011
  await w.substituteAll(values);
@@ -4011,6 +4045,7 @@ var generateCommandsXlsxTemplateWithCompile = async function(data, values, compi
4011
4045
  hasGeneratorToken,
4012
4046
  isRuleToken,
4013
4047
  isUrl,
4048
+ loadCompileSheets,
4014
4049
  loadWorkbook,
4015
4050
  mergeMap,
4016
4051
  parseWorkSheetRules,