mirror of
https://gitlab.com/psono/psono-client
synced 2025-04-19 03:22:16 +03:00
Switched to dynamic imports
Signed-off-by: Sascha Pfeiffer <sascha.pfeiffer@esaqa.com>
This commit is contained in:
parent
fc0526a4fd
commit
b6d1f72434
@ -1,7 +1,6 @@
|
||||
/**
|
||||
* Service which handles the actual parsing of the exported JSON
|
||||
*/
|
||||
import * as XLSX from "xlsx";
|
||||
import cryptoLibrary from "./crypto-library";
|
||||
import helperService from "./helper";
|
||||
|
||||
@ -278,13 +277,15 @@ function gatherSecrets(datastore, secrets, csv) {
|
||||
* @param {ArrayBuffer} data The raw data to parse
|
||||
* @returns {Array} The array of arrays representing the CSV
|
||||
*/
|
||||
function parseXls(data) {
|
||||
const workbook = XLSX.read(data, { type: "array" });
|
||||
async function parseXls(data) {
|
||||
const XLSX = await import('xlsx');
|
||||
|
||||
const workbook = XLSX.read(data, {type: "array"});
|
||||
|
||||
const sheetName = workbook.SheetNames[0];
|
||||
const sheet = workbook.Sheets[sheetName];
|
||||
|
||||
const jsonData = XLSX.utils.sheet_to_json(sheet, { header: 1 });
|
||||
const jsonData = XLSX.utils.sheet_to_json(sheet, {header: 1});
|
||||
|
||||
if (jsonData.length > 0) {
|
||||
return jsonData
|
||||
@ -308,7 +309,7 @@ function parseXls(data) {
|
||||
*
|
||||
* @returns {{datastore, secrets: Array} | null}
|
||||
*/
|
||||
function parser(data, binary) {
|
||||
async function parser(data, binary) {
|
||||
const d = new Date();
|
||||
const n = d.toISOString();
|
||||
|
||||
@ -321,7 +322,7 @@ function parser(data, binary) {
|
||||
|
||||
let jsonData;
|
||||
try {
|
||||
jsonData = parseXls(binary);
|
||||
jsonData = await parseXls(binary);
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
|
@ -185,15 +185,15 @@ function getParser(type) {
|
||||
*
|
||||
* @returns {*} Returns a tree structure with folders and items
|
||||
*/
|
||||
function parseExport(data) {
|
||||
async function parseExport(data) {
|
||||
const parse = getParser(data["type"]);
|
||||
if (parse === null) {
|
||||
return Promise.reject({ errors: ["PARSER_NOT_FOUND"] });
|
||||
return Promise.reject({errors: ["PARSER_NOT_FOUND"]});
|
||||
}
|
||||
|
||||
const parsed_data = parse(data["data"], data["binary"]);
|
||||
const parsed_data = await parse(data["data"], data["binary"]);
|
||||
if (parsed_data === null) {
|
||||
return Promise.reject({ errors: ["FILE_FORMAT_WRONG"] });
|
||||
return Promise.reject({errors: ["FILE_FORMAT_WRONG"]});
|
||||
}
|
||||
|
||||
data["data"] = parsed_data;
|
||||
|
@ -36,13 +36,13 @@ module.exports = () => {
|
||||
// should be last so all files are cached
|
||||
new InjectManifest({
|
||||
swSrc: './src/webclient/service-worker.js',
|
||||
swDest: './webclient/service-worker.js',
|
||||
swDest: './service-worker.js',
|
||||
exclude: [
|
||||
/authenticate\.html/
|
||||
],
|
||||
modifyURLPrefix: {
|
||||
'webclient/': './',
|
||||
'./webclient/': './',
|
||||
'/': './',
|
||||
'././': './',
|
||||
},
|
||||
compileSrc: true,
|
||||
maximumFileSizeToCacheInBytes: 30000000,
|
||||
|
@ -21,9 +21,15 @@ module.exports = merge(common, {
|
||||
mode: 'development',
|
||||
devtool: 'inline-source-map',
|
||||
entry: {
|
||||
'chrome/data/js/bundle.min.js': './src/js/index.js',
|
||||
'chrome/data/js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
'chrome/data/js/background-chrome.js': './src/js/background-chrome.js',
|
||||
'js/bundle.min.js': './src/js/index.js',
|
||||
'js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
'js/background-chrome.js': './src/js/background-chrome.js',
|
||||
},
|
||||
output: {
|
||||
filename: '[name]',
|
||||
path: path.resolve(__dirname, 'build', 'chrome', 'data'),
|
||||
chunkFilename: 'js/[name].js',
|
||||
publicPath: '/data/',
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
@ -46,7 +52,7 @@ module.exports = merge(common, {
|
||||
|
||||
new JsonPostProcessPlugin({
|
||||
matchers: [{
|
||||
matcher: /^chrome\/manifest.json$/,
|
||||
matcher: /^\.\.\/manifest.json$/,
|
||||
action: (currentJsonContent) => ({ ...currentJsonContent, version: version })
|
||||
}]
|
||||
}),
|
||||
|
@ -20,8 +20,14 @@ module.exports = merge(common, {
|
||||
mode: 'development',
|
||||
devtool: 'inline-source-map',
|
||||
entry: {
|
||||
'electron/js/bundle.min.js': './src/js/index.js',
|
||||
'electron/js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
'js/bundle.min.js': './src/js/index.js',
|
||||
'js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
},
|
||||
output: {
|
||||
filename: '[name]',
|
||||
path: path.resolve(__dirname, 'build', 'electron'),
|
||||
chunkFilename: 'js/[name].js',
|
||||
publicPath: '/',
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
|
@ -21,8 +21,14 @@ module.exports = merge(common, {
|
||||
mode: 'development',
|
||||
devtool: 'inline-source-map',
|
||||
entry: {
|
||||
'firefox/data/js/bundle.min.js': './src/js/index.js',
|
||||
'firefox/data/js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
'js/bundle.min.js': './src/js/index.js',
|
||||
'js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
},
|
||||
output: {
|
||||
filename: '[name]',
|
||||
path: path.resolve(__dirname, 'build', 'firefox', 'data'),
|
||||
chunkFilename: 'js/[name].js',
|
||||
publicPath: '/data/',
|
||||
},
|
||||
plugins: [
|
||||
new webpack.DefinePlugin({
|
||||
@ -45,7 +51,7 @@ module.exports = merge(common, {
|
||||
|
||||
new JsonPostProcessPlugin({
|
||||
matchers: [{
|
||||
matcher: /^firefox\/manifest.json$/,
|
||||
matcher: /^\.\.\/manifest.json$/,
|
||||
action: (currentJsonContent) => ({ ...currentJsonContent, version: version })
|
||||
}]
|
||||
}),
|
||||
|
@ -9,8 +9,14 @@ module.exports = merge(common, {
|
||||
mode: 'development',
|
||||
devtool: 'inline-source-map',
|
||||
entry: {
|
||||
'webclient/js/bundle.min.js': './src/js/index.js',
|
||||
'webclient/js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
'js/bundle.min.js': './src/js/index.js',
|
||||
'js/crypto-worker.js': './src/js/crypto-worker.js',
|
||||
},
|
||||
output: {
|
||||
filename: '[name]',
|
||||
path: path.resolve(__dirname, 'build', 'webclient'),
|
||||
chunkFilename: 'js/[name].js',
|
||||
publicPath: '/',
|
||||
},
|
||||
devServer: {
|
||||
static: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user