WIP HAD to move NodeDish out - NONE of it is async!

This commit is contained in:
d98762625 2019-02-15 15:20:05 +00:00
parent aafde8986d
commit 04b7f2fa8c
16 changed files with 442 additions and 411 deletions

41
src/node/File.mjs Normal file
View file

@ -0,0 +1,41 @@
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
import mime from "mime";
/**
* FileShim
*
* Create a class that behaves like the File object in the Browser so that
* operations that use the File object still work.
*
* File doesn't write to disk, but it would be easy to do so with e.gfs.writeFile.
*/
class File {
/**
* Constructor
*
* @param {String|Array|ArrayBuffer|Buffer} bits - file content
* @param {String} name (optional) - file name
* @param {Object} stats (optional) - file stats e.g. lastModified
*/
constructor(data, name="", stats={}) {
this.data = Buffer.from(data);
this.name = name;
this.lastModified = stats.lastModified || Date.now();
this.type = stats.type || mime.getType(this.name);
}
/**
* size property
*/
get size() {
return this.data.length;
}
}
export default File;