json-as-xlsx 2.5.6 → 2.5.8

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.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { utils, WorkBook, WorkSheet, WritingOptions } from "@e965/xlsx";
3
2
  export interface IColumn {
4
3
  label: string;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.libraryName=exports.xlsx=exports.getWorksheetColumnWidths=exports.getJsonSheetRow=exports.getContentProperty=exports.utils=void 0;const xlsx_1=require("@e965/xlsx");Object.defineProperty(exports,"utils",{enumerable:true,get:function(){return xlsx_1.utils}});const getContentProperty=(content,property)=>{const accessContentProperties=(content,properties)=>{const value=content[properties[0]];if(properties.length===1){return value!==null&&value!==void 0?value:""}if(value===undefined||value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"||value instanceof Date){return""}return accessContentProperties(value,properties.slice(1))};const properties=property.split(".");return accessContentProperties(content,properties)};exports.getContentProperty=getContentProperty;const getJsonSheetRow=(content,columns)=>{const jsonSheetRow={};columns.forEach(column=>{if(typeof column.value==="function"){jsonSheetRow[column.label]=column.value(content)}else{jsonSheetRow[column.label]=(0,exports.getContentProperty)(content,column.value)}});return jsonSheetRow};exports.getJsonSheetRow=getJsonSheetRow;const applyColumnFormat=(worksheet,columnIds,columnFormats)=>{var _a;for(let i=0;i<columnIds.length;i+=1){const columnFormat=columnFormats[i];if(!columnFormat){continue}const column=xlsx_1.utils.decode_col(columnIds[i]);const range=xlsx_1.utils.decode_range((_a=worksheet["!ref"])!==null&&_a!==void 0?_a:"");for(let row=range.s.r+1;row<=range.e.r;++row){const ref=xlsx_1.utils.encode_cell({r:row,c:column});if(worksheet[ref]){switch(columnFormat){case"hyperlink":worksheet[ref].l={Target:worksheet[ref].v};break;default:worksheet[ref].z=columnFormat}}}}};const getWorksheetColumnIds=worksheet=>{var _a;const columnRange=xlsx_1.utils.decode_range((_a=worksheet["!ref"])!==null&&_a!==void 0?_a:"");const columnIds=[];for(let C=columnRange.s.c;C<=columnRange.e.c;C++){const address=xlsx_1.utils.encode_col(C);columnIds.push(address)}return columnIds};const getObjectLength=object=>{if(typeof object==="string"){return Math.max(...object.split("\n").map(string=>string.length))}if(typeof object==="number"){return object.toString().length}if(typeof object==="boolean"){return object?"true".length:"false".length}if(object instanceof Date){return object.toString().length}return 0};const getWorksheetColumnWidths=(worksheet,extraLength=1)=>{const columnLetters=getWorksheetColumnIds(worksheet);return columnLetters.map(column=>{const columnCells=Object.keys(worksheet).filter(cell=>{return cell.replace(/[0-9]/g,"")===column});const maxWidthCell=columnCells.reduce((maxWidth,cellId)=>{const cell=worksheet[cellId];const cellContentLength=getObjectLength(cell.v);if(!cell.z){return Math.max(maxWidth,cellContentLength)}const cellFormatLength=cell.z.length;const largestWidth=Math.max(cellContentLength,cellFormatLength);return Math.max(maxWidth,largestWidth)},0);return{width:maxWidthCell+extraLength}})};exports.getWorksheetColumnWidths=getWorksheetColumnWidths;const getWorksheet=(jsonSheet,settings)=>{let jsonSheetRows;if(jsonSheet.content.length>0){jsonSheetRows=jsonSheet.content.map(contentItem=>{return(0,exports.getJsonSheetRow)(contentItem,jsonSheet.columns)})}else{jsonSheetRows=jsonSheet.columns.map(column=>({[column.label]:""}))}const worksheet=xlsx_1.utils.json_to_sheet(jsonSheetRows);const worksheetColumnIds=getWorksheetColumnIds(worksheet);const worksheetColumnFormats=jsonSheet.columns.map(jsonSheetColumn=>{var _a;return(_a=jsonSheetColumn.format)!==null&&_a!==void 0?_a:null});applyColumnFormat(worksheet,worksheetColumnIds,worksheetColumnFormats);worksheet["!cols"]=(0,exports.getWorksheetColumnWidths)(worksheet,settings.extraLength);return worksheet};const writeWorkbook=(workbook,settings={})=>{var _a,_b,_c,_d;var _e;const RTL=Boolean(settings.RTL);(_a=workbook.Workbook)!==null&&_a!==void 0?_a:workbook.Workbook={};(_b=(_e=workbook.Workbook).Views)!==null&&_b!==void 0?_b:_e.Views=[{}];workbook.Workbook.Views.forEach(view=>{view.RTL=RTL});const filename=`${(_c=settings.fileName)!==null&&_c!==void 0?_c:"Spreadsheet"}.xlsx`;const writeOptions=(_d=settings.writeOptions)!==null&&_d!==void 0?_d:{};if(settings.writeMode==="write"){return(0,xlsx_1.write)(workbook,writeOptions)}else if(settings.writeMode==="writeFile"){return(0,xlsx_1.writeFile)(workbook,filename,writeOptions)}else{return writeOptions.type==="buffer"?(0,xlsx_1.write)(workbook,writeOptions):(0,xlsx_1.writeFile)(workbook,filename,writeOptions)}};const xlsx=(jsonSheets,settings={},workbookCallback=()=>{})=>{if(jsonSheets.length===0)return;const workbook=xlsx_1.utils.book_new();jsonSheets.forEach((actualSheet,actualIndex)=>{var _a;const worksheet=getWorksheet(actualSheet,settings);const worksheetName=(_a=actualSheet.sheet)!==null&&_a!==void 0?_a:`Sheet ${actualIndex+1}`;xlsx_1.utils.book_append_sheet(workbook,worksheet,worksheetName)});workbookCallback(workbook);return writeWorkbook(workbook,settings)};exports.xlsx=xlsx;exports.default=exports.xlsx;exports.libraryName="json-as-xlsx";module.exports=exports.xlsx;module.exports.getContentProperty=exports.getContentProperty;module.exports.getJsonSheetRow=exports.getJsonSheetRow;module.exports.getWorksheetColumnWidths=exports.getWorksheetColumnWidths;module.exports.utils=xlsx_1.utils;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.libraryName=exports.xlsx=exports.getWorksheetColumnWidths=exports.getJsonSheetRow=exports.getContentProperty=exports.utils=void 0;const xlsx_1=require("@e965/xlsx");Object.defineProperty(exports,"utils",{enumerable:true,get:function(){return xlsx_1.utils}});const getContentProperty=(content,property)=>{const accessContentProperties=(content,properties)=>{const value=content[properties[0]];if(properties.length===1){return value!==null&&value!==void 0?value:""}if(value===undefined||value===null||typeof value==="string"||typeof value==="boolean"||typeof value==="number"||value instanceof Date){return""}return accessContentProperties(value,properties.slice(1))};const properties=property.split(".");return accessContentProperties(content,properties)};exports.getContentProperty=getContentProperty;const getJsonSheetRow=(content,columns)=>{const jsonSheetRow={};columns.forEach(column=>{if(typeof column.value==="function"){jsonSheetRow[column.label]=column.value(content)}else{jsonSheetRow[column.label]=(0,exports.getContentProperty)(content,column.value)}});return jsonSheetRow};exports.getJsonSheetRow=getJsonSheetRow;const applyColumnFormat=(worksheet,columnIds,columnFormats)=>{var _a;for(let i=0;i<columnIds.length;i+=1){const columnFormat=columnFormats[i];if(!columnFormat){continue}const column=xlsx_1.utils.decode_col(columnIds[i]);const range=xlsx_1.utils.decode_range((_a=worksheet["!ref"])!==null&&_a!==void 0?_a:"");for(let row=range.s.r+1;row<=range.e.r;++row){const ref=xlsx_1.utils.encode_cell({r:row,c:column});if(worksheet[ref]){switch(columnFormat){case"hyperlink":worksheet[ref].l={Target:worksheet[ref].v};break;default:worksheet[ref].z=columnFormat}}}}};const getWorksheetColumnIds=worksheet=>{var _a;const columnRange=xlsx_1.utils.decode_range((_a=worksheet["!ref"])!==null&&_a!==void 0?_a:"");const columnIds=[];for(let C=columnRange.s.c;C<=columnRange.e.c;C++){const address=xlsx_1.utils.encode_col(C);columnIds.push(address)}return columnIds};const getObjectLength=object=>{if(typeof object==="string"){return Math.max(...object.split("\n").map(string=>string.length))}if(typeof object==="number"){return object.toString().length}if(typeof object==="boolean"){return object?"true".length:"false".length}if(object instanceof Date){return object.toString().length}return 0};const getWorksheetColumnWidths=(worksheet,extraLength=1)=>{const columnLetters=getWorksheetColumnIds(worksheet);return columnLetters.map(column=>{const columnCells=Object.keys(worksheet).filter(cell=>{return cell.replace(/[0-9]/g,"")===column});const maxWidthCell=columnCells.reduce((maxWidth,cellId)=>{const cell=worksheet[cellId];const cellContentLength=getObjectLength(cell.v);if(!cell.z){return Math.max(maxWidth,cellContentLength)}const cellFormatLength=cell.z.length;const largestWidth=Math.max(cellContentLength,cellFormatLength);return Math.max(maxWidth,largestWidth)},0);return{width:maxWidthCell+extraLength}})};exports.getWorksheetColumnWidths=getWorksheetColumnWidths;const getWorksheet=(jsonSheet,settings)=>{let jsonSheetRows;if(jsonSheet.content.length>0){jsonSheetRows=jsonSheet.content.map(contentItem=>{return(0,exports.getJsonSheetRow)(contentItem,jsonSheet.columns)})}else{jsonSheetRows=jsonSheet.columns.map(column=>({[column.label]:""}))}const worksheet=xlsx_1.utils.json_to_sheet(jsonSheetRows);const worksheetColumnIds=getWorksheetColumnIds(worksheet);const worksheetColumnFormats=jsonSheet.columns.map(jsonSheetColumn=>{var _a;return(_a=jsonSheetColumn.format)!==null&&_a!==void 0?_a:null});applyColumnFormat(worksheet,worksheetColumnIds,worksheetColumnFormats);worksheet["!cols"]=(0,exports.getWorksheetColumnWidths)(worksheet,settings.extraLength);return worksheet};const writeWorkbook=(workbook,settings={})=>{var _a,_b,_c,_d;var _e;const RTL=Boolean(settings.RTL);(_a=workbook.Workbook)!==null&&_a!==void 0?_a:workbook.Workbook={};(_b=(_e=workbook.Workbook).Views)!==null&&_b!==void 0?_b:_e.Views=[{}];workbook.Workbook.Views.forEach(view=>{view.RTL=RTL});const filename=`${(_c=settings.fileName)!==null&&_c!==void 0?_c:"Spreadsheet"}.xlsx`;const writeOptions=(_d=settings.writeOptions)!==null&&_d!==void 0?_d:{};if(settings.writeMode==="write"){return(0,xlsx_1.write)(workbook,writeOptions)}else if(settings.writeMode==="writeFile"){(0,xlsx_1.writeFile)(workbook,filename,writeOptions);return}else if(writeOptions.type==="buffer"){return(0,xlsx_1.write)(workbook,writeOptions)}else{(0,xlsx_1.writeFile)(workbook,filename,writeOptions);return}};const xlsx=(jsonSheets,settings={},workbookCallback=()=>{})=>{if(jsonSheets.length===0)return;const workbook=xlsx_1.utils.book_new();jsonSheets.forEach((actualSheet,actualIndex)=>{var _a;const worksheet=getWorksheet(actualSheet,settings);const worksheetName=(_a=actualSheet.sheet)!==null&&_a!==void 0?_a:`Sheet ${actualIndex+1}`;xlsx_1.utils.book_append_sheet(workbook,worksheet,worksheetName)});workbookCallback(workbook);return writeWorkbook(workbook,settings)};exports.xlsx=xlsx;exports.default=exports.xlsx;exports.libraryName="json-as-xlsx";module.exports=exports.xlsx;module.exports.getContentProperty=exports.getContentProperty;module.exports.getJsonSheetRow=exports.getJsonSheetRow;module.exports.getWorksheetColumnWidths=exports.getWorksheetColumnWidths;module.exports.utils=xlsx_1.utils;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-as-xlsx",
3
- "version": "2.5.6",
3
+ "version": "2.5.8",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,19 +16,16 @@
16
16
  "test": "jest --coverage"
17
17
  },
18
18
  "dependencies": {
19
- "@e965/xlsx": "^0.20.0"
19
+ "@e965/xlsx": "^0.20.3"
20
20
  },
21
21
  "devDependencies": {
22
- "@testing-library/jest-dom": "^6.1.4",
23
- "@types/jest": "^29.2.4",
24
- "@types/node": "^20.8.7",
25
- "@types/testing-library__jest-dom": "^6.0.0",
26
- "jest": "^29.3.1",
27
- "jest-cli": "^29.3.1",
28
- "jest-environment-jsdom": "^29.3.1",
29
- "ts-jest": "^29.0.3",
30
- "typescript": "^4.9.3",
31
- "uglify-js": "^3.17.4"
22
+ "@types/jest": "^30.0.0",
23
+ "@types/node": "^26.0.1",
24
+ "jest": "^30.4.2",
25
+ "jest-cli": "^30.4.2",
26
+ "ts-jest": "^29.4.11",
27
+ "typescript": "^6.0.3",
28
+ "uglify-js": "^3.19.3"
32
29
  },
33
30
  "files": [
34
31
  "dist"