diff --git a/api/test-icon.png b/api/test-icon.png new file mode 100644 index 0000000..07d6ce9 Binary files /dev/null and b/api/test-icon.png differ diff --git a/src/packager/node/adapter.js b/src/packager/node/adapter.js index eddde4a..b47a68f 100644 --- a/src/packager/node/adapter.js +++ b/src/packager/node/adapter.js @@ -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(); } } diff --git a/src/packager/node/export.js b/src/packager/node/export.js index 37c1bb2..fbf1306 100644 --- a/src/packager/node/export.js +++ b/src/packager/node/export.js @@ -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 }; diff --git a/src/packager/node/image.js b/src/packager/node/image.js new file mode 100644 index 0000000..22ca860 --- /dev/null +++ b/src/packager/node/image.js @@ -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;