Merge pull request #119 from ente-io/release-v1.6.15

Release
This commit is contained in:
Abhinav Kumar 2022-12-22 14:22:02 +05:30 committed by GitHub
commit 17aaecbcc7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 17 deletions

View file

@ -1,7 +1,7 @@
{
"name": "ente",
"productName": "ente",
"version": "1.6.15-beta.1",
"version": "1.6.16",
"private": true,
"description": "Desktop client for ente.io",
"main": "app/main.js",

View file

@ -4,6 +4,7 @@ import * as fs from 'promise-fs';
import { ElectronFile } from '../types';
import StreamZip from 'node-stream-zip';
import { Readable } from 'stream';
import { logError } from './logging';
// https://stackoverflow.com/a/63111390
export const getDirFilePaths = async (dirPath: string) => {
@ -97,31 +98,50 @@ export const getZipFileStream = async (
const done = {
current: false,
};
const inProgress = {
current: false,
};
let resolveObj: (value?: any) => void = null;
let rejectObj: (reason?: any) => void = null;
stream.on('readable', () => {
if (resolveObj) {
const chunk = stream.read(FILE_STREAM_CHUNK_SIZE) as Buffer;
if (chunk) {
resolveObj(new Uint8Array(chunk));
resolveObj = null;
try {
if (resolveObj) {
inProgress.current = true;
const chunk = stream.read(FILE_STREAM_CHUNK_SIZE) as Buffer;
if (chunk) {
resolveObj(new Uint8Array(chunk));
resolveObj = null;
}
inProgress.current = false;
}
} catch (e) {
rejectObj(e);
}
});
stream.on('end', () => {
done.current = true;
try {
done.current = true;
if (resolveObj && !inProgress.current) {
resolveObj(null);
resolveObj = null;
}
} catch (e) {
rejectObj(e);
}
});
stream.on('error', (e) => {
done.current = true;
if (rejectObj) {
try {
done.current = true;
if (rejectObj) {
rejectObj(e);
rejectObj = null;
}
} catch (e) {
rejectObj(e);
rejectObj = null;
}
});
const readStreamData = () => {
const readStreamData = async () => {
return new Promise<Uint8Array>((resolve, reject) => {
const chunk = stream.read(FILE_STREAM_CHUNK_SIZE) as Buffer;
@ -145,6 +165,7 @@ export const getZipFileStream = async (
controller.close();
}
} catch (e) {
logError(e, 'readableStream pull failed');
controller.close();
}
},

View file

@ -15,11 +15,15 @@ export const getSavedFilePaths = (type: FILE_PATH_TYPE) => {
};
export async function getZipEntryAsElectronFile(
zipName: string,
zip: StreamZip.StreamZipAsync,
entry: StreamZip.ZipEntry
): Promise<ElectronFile> {
return {
path: entry.name,
path: path
.join(zipName, entry.name)
.split(path.sep)
.join(path.posix.sep),
name: path.basename(entry.name),
size: entry.size,
lastModified: entry.time,
@ -58,6 +62,7 @@ export const getElectronFilesFromGoogleZip = async (filePath: string) => {
const zip = new StreamZip.async({
file: filePath,
});
const zipName = path.basename(filePath, '.zip');
const entries = await zip.entries();
const files: ElectronFile[] = [];
@ -65,7 +70,7 @@ export const getElectronFilesFromGoogleZip = async (filePath: string) => {
for (const entry of Object.values(entries)) {
const basename = path.basename(entry.name);
if (entry.isFile && basename.length > 0 && basename[0] !== '.') {
files.push(await getZipEntryAsElectronFile(zip, entry));
files.push(await getZipEntryAsElectronFile(zipName, zip, entry));
}
}

View file

@ -22,7 +22,7 @@ export function handleUpdates(mainWindow: BrowserWindow) {
}
}
export function setupTrayItem(mainWindow: BrowserWindow) {
const iconName = isPlatformMac
const iconName = isPlatform('mac')
? 'taskbar-icon-Template.png'
: 'taskbar-icon.png';
const trayImgPath = path.join(

2
ui

@ -1 +1 @@
Subproject commit 5e486434ade454de49f8fd98874e9181afc4d99b
Subproject commit a8c520a4b0ff90279cffedf41b9e8f8564d9a753