i18n:xls - read as buffer instead
This commit is contained in:
parent
8d22c1722a
commit
97b2d3d989
20
packages/i18n/dist/lib/translate_xls.js
vendored
20
packages/i18n/dist/lib/translate_xls.js
vendored
@ -2,6 +2,7 @@ import * as path from 'path';
|
||||
import { JSONPath } from 'jsonpath-plus';
|
||||
import { get_cached, set_cached } from '@polymech/cache';
|
||||
import { OSR_CACHE } from '@polymech/commons';
|
||||
import { sync as read } from "@polymech/fs/read";
|
||||
import { sync as exists } from "@polymech/fs/exists";
|
||||
import { sync as mkdir } from "@polymech/fs/dir";
|
||||
import * as XLSX from 'xlsx';
|
||||
@ -10,19 +11,18 @@ import { logger, translateObjectAIT } from './translate_commons.js';
|
||||
export const translateXLS = async (src, dst, options) => {
|
||||
logger.debug(`Translating ${src} to ${dst}`);
|
||||
if (!exists(src)) {
|
||||
logger.error('File not found : ' + src);
|
||||
logger.error(`Translating ${src} : not found ${src}`);
|
||||
return;
|
||||
}
|
||||
const dstDir = path.parse(dst).dir;
|
||||
mkdir(dstDir);
|
||||
const osr_cache = OSR_CACHE();
|
||||
const cached = await get_cached(src, {
|
||||
keys: options.keys
|
||||
}, MODULE_NAME);
|
||||
const cached = await get_cached(src, { keys: options.keys }, MODULE_NAME);
|
||||
if (osr_cache && cached && options.cache && exists(dst)) {
|
||||
return cached;
|
||||
}
|
||||
const workbook = XLSX.readFile(src);
|
||||
const data = read(src, 'buffer');
|
||||
const workbook = XLSX.read(data);
|
||||
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
|
||||
const raw_data = XLSX.utils.sheet_to_json(worksheet, { header: 1, blankrows: false, raw: false, skipHidden: true });
|
||||
const queryResult = JSONPath({
|
||||
@ -37,20 +37,18 @@ export const translateXLS = async (src, dst, options) => {
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
logger.error('Error translating XLSX', error);
|
||||
logger.error(`Error translating XLSX ${src}`, error);
|
||||
return;
|
||||
}
|
||||
if (!translated) {
|
||||
logger.error('Error translating XLSX', src);
|
||||
logger.error(`Error translating XLSX ${src}`);
|
||||
return;
|
||||
}
|
||||
const sheetOut = XLSX.utils.json_to_sheet(translated, { skipHeader: true });
|
||||
const workbookOut = XLSX.utils.book_new();
|
||||
XLSX.utils.book_append_sheet(workbookOut, sheetOut, workbook.SheetNames[0]);
|
||||
XLSX.writeFileXLSX(workbookOut, dst);
|
||||
if (osr_cache && options.cache) {
|
||||
await set_cached(src, { keys: options.keys }, MODULE_NAME, translated);
|
||||
}
|
||||
osr_cache && options.cache && await set_cached(src, { keys: options.keys }, MODULE_NAME, translated);
|
||||
return workbookOut;
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlX3hscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdHJhbnNsYXRlX3hscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxJQUFJLElBQUksTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDcEQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNoRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxPQUFpQixFQUFFLEVBQUU7SUFDOUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDdkMsT0FBTTtJQUNWLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDYixNQUFNLFNBQVMsR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDakMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ3JCLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFFZixJQUFJLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE1BQU0sQ0FBQTtJQUNqQixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxNQUFNLFFBQVEsR0FBVSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzSCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQ3hCO1FBQ0ksSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ25CLElBQUksRUFBRSxRQUFRO0tBRWpCLENBQUMsQ0FBQTtJQUNOLElBQUksVUFBVSxDQUFBO0lBQ2QsSUFBSSxDQUFDO1FBQ0QsVUFBVSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNqRCxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsV0FBVztTQUNwQixDQUFDLENBQUE7SUFDTixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDN0MsT0FBTTtJQUNWLENBQUM7SUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDZCxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLE9BQU07SUFDVixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFDM0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3BDLElBQUksU0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUE7QUFDdEIsQ0FBQyxDQUFBIn0=
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlX3hscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdHJhbnNsYXRlX3hscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDaEQsT0FBTyxFQUFFLElBQUksSUFBSSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsSUFBSSxJQUFJLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2hELE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFbkUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUM5RSxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDckQsT0FBTTtJQUNWLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDYixNQUFNLFNBQVMsR0FBRyxTQUFTLEVBQUUsQ0FBQTtJQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQ3pFLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELE9BQU8sTUFBTSxDQUFBO0lBQ2pCLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBVyxDQUFBO0lBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxRQUFRLEdBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0gsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUN4QjtRQUNJLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSztRQUNuQixJQUFJLEVBQUUsUUFBUTtLQUVqQixDQUFDLENBQUE7SUFDTixJQUFJLFVBQVUsQ0FBQTtJQUNkLElBQUksQ0FBQztRQUNELFVBQVUsR0FBRyxNQUFNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDakQsR0FBRyxPQUFPO1lBQ1YsSUFBSSxFQUFFLFdBQVc7U0FDcEIsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDYixNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNwRCxPQUFNO0lBQ1YsQ0FBQztJQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDN0MsT0FBTTtJQUNWLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUMzRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDcEcsT0FBTyxXQUFXLENBQUE7QUFDdEIsQ0FBQyxDQUFBIn0=
|
||||
@ -2,6 +2,7 @@ import * as path from 'path'
|
||||
import { JSONPath } from 'jsonpath-plus'
|
||||
import { get_cached, set_cached } from '@polymech/cache'
|
||||
import { OSR_CACHE } from '@polymech/commons'
|
||||
import { sync as read } from "@polymech/fs/read"
|
||||
import { sync as exists } from "@polymech/fs/exists"
|
||||
import { sync as mkdir } from "@polymech/fs/dir"
|
||||
import * as XLSX from 'xlsx'
|
||||
@ -12,21 +13,18 @@ import { logger, translateObjectAIT } from './translate_commons.js'
|
||||
export const translateXLS = async (src: string, dst: string, options: IOptions) => {
|
||||
logger.debug(`Translating ${src} to ${dst}`)
|
||||
if (!exists(src)) {
|
||||
logger.error('File not found : ' + src)
|
||||
logger.error(`Translating ${src} : not found ${src}`)
|
||||
return
|
||||
}
|
||||
const dstDir = path.parse(dst).dir
|
||||
mkdir(dstDir)
|
||||
const osr_cache = OSR_CACHE()
|
||||
const cached = await get_cached(src, {
|
||||
keys: options.keys
|
||||
}, MODULE_NAME)
|
||||
|
||||
const cached = await get_cached(src, { keys: options.keys }, MODULE_NAME)
|
||||
if (osr_cache && cached && options.cache && exists(dst)) {
|
||||
return cached
|
||||
}
|
||||
|
||||
const workbook = XLSX.readFile(src)
|
||||
const data = read(src, 'buffer') as Buffer
|
||||
const workbook = XLSX.read(data)
|
||||
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
|
||||
const raw_data: any[] = XLSX.utils.sheet_to_json(worksheet, { header: 1, blankrows: false, raw: false, skipHidden: true });
|
||||
const queryResult = JSONPath(
|
||||
@ -42,19 +40,17 @@ export const translateXLS = async (src: string, dst: string, options: IOptions)
|
||||
keys: queryResult
|
||||
})
|
||||
} catch (error) {
|
||||
logger.error('Error translating XLSX', error)
|
||||
logger.error(`Error translating XLSX ${src}`, error)
|
||||
return
|
||||
}
|
||||
if (!translated) {
|
||||
logger.error('Error translating XLSX', src)
|
||||
logger.error(`Error translating XLSX ${src}`)
|
||||
return
|
||||
}
|
||||
const sheetOut = XLSX.utils.json_to_sheet(translated, { skipHeader: true })
|
||||
const workbookOut = XLSX.utils.book_new()
|
||||
XLSX.utils.book_append_sheet(workbookOut, sheetOut, workbook.SheetNames[0])
|
||||
XLSX.writeFileXLSX(workbookOut, dst)
|
||||
if (osr_cache && options.cache) {
|
||||
await set_cached(src, { keys: options.keys }, MODULE_NAME, translated)
|
||||
}
|
||||
osr_cache && options.cache && await set_cached(src, { keys: options.keys }, MODULE_NAME, translated)
|
||||
return workbookOut
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user