Add image option support to Node.js module

This commit is contained in:
Thomas Weber committed 2022-03-27 21:06:50 -05:00
1 parent 2bc407d480
commit b0f45893c0
4 files changed
+22 -5

No files matched your search

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

+8 -5
View File
@@ -3,7 +3,8 @@ import path from 'path';
import {promisify} from 'util';
import fetch from 'cross-fetch';
import {name} from '../../../package.json';
import icon from '../images/default-icon.png';
import defaultIcon from '../images/default-icon.png';
import Image from './image';
const readFile = promisify(fs.readFile);
const writeFile = promisify(fs.writeFile);
@@ -73,14 +74,16 @@ class NodeAdapter {
}
async getAppIcon (file) {
// TODO
const buffer = await readFile(path.join(__dirname, icon));
// TODO: currently only supports default image
const buffer = await readFile(path.join(__dirname, defaultIcon));
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
}
readAsURL (file) {
// TODO
throw new Error('image features not implemented in Node.js module');
if (!(file instanceof Image)) {
throw new Error('file must be an instance of Packager.Image but found ' + file + ' instead.');
}
return file.readAsURL();
}
}
+2
View File
@@ -1,10 +1,12 @@
import Packager from '../packager';
import {downloadProject} from '../download-project';
import NodeAdapter from './adapter';
import Image from './image';
Packager.adapter = new NodeAdapter();
export {
Packager,
Image,
downloadProject as loadProject
};
+12
View File
@@ -0,0 +1,12 @@
class Image {
constructor (mimeType, data) {
this.mimeType = mimeType;
this.buffer = Buffer.from(data);
}
readAsURL() {
return `data:${this.mimeType};base64,${this.buffer.toString('base64')}`;
}
}
export default Image;