browserfs
Version:
A filesystem in your browser!
53 lines • 6.96 kB
JavaScript
;
var buffer = require('buffer');
var fs = require('./node_fs');
var path = require('path');
var emscripten_fs_1 = require('../generic/emscripten_fs');
exports.EmscriptenFS = emscripten_fs_1["default"];
var FileSystem = require('./backends');
exports.FileSystem = FileSystem;
var BFSUtils = require('./util');
if (process['initializeTTYs']) {
process['initializeTTYs']();
}
function install(obj) {
obj.Buffer = Buffer;
obj.process = process;
var oldRequire = obj.require != null ? obj.require : null;
obj.require = function (arg) {
var rv = BFSRequire(arg);
if (rv == null) {
return oldRequire.apply(null, Array.prototype.slice.call(arguments, 0));
}
else {
return rv;
}
};
}
exports.install = install;
function registerFileSystem(name, fs) {
FileSystem[name] = fs;
}
exports.registerFileSystem = registerFileSystem;
function BFSRequire(module) {
switch (module) {
case 'fs':
return fs;
case 'path':
return path;
case 'buffer':
return buffer;
case 'process':
return process;
case 'bfs_utils':
return BFSUtils;
default:
return FileSystem[module];
}
}
exports.BFSRequire = BFSRequire;
function initialize(rootfs) {
return fs.initialize(rootfs);
}
exports.initialize = initialize;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlcmZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvYnJvd3NlcmZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQSxJQUFPLE1BQU0sV0FBVyxRQUFRLENBQUMsQ0FBQztBQUNsQyxJQUFPLEVBQUUsV0FBVyxXQUFXLENBQUMsQ0FBQztBQUNqQyxJQUFPLElBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUU5Qiw4QkFBeUIsMEJBQTBCLENBQUMsQ0FBQTtBQTJFNUMsb0JBQVk7QUExRXBCLElBQVksVUFBVSxXQUFNLFlBQVksQ0FBQyxDQUFBO0FBMEVuQixrQkFBVTtBQXpFaEMsSUFBWSxRQUFRLFdBQU0sUUFBUSxDQUFDLENBQUE7QUFFbkMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7QUFDOUIsQ0FBQztBQWdCRCxpQkFBd0IsR0FBUTtJQUM5QixHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNwQixHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN0QixJQUFJLFVBQVUsR0FBRyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUUxRCxHQUFHLENBQUMsT0FBTyxHQUFHLFVBQVMsR0FBVztRQUNoQyxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pFLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWJlLGVBQU8sVUFhdEIsQ0FBQTtBQUVELDRCQUFtQyxJQUFZLEVBQUUsRUFBcUM7SUFDN0UsVUFBVyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQyxDQUFDO0FBRmUsMEJBQWtCLHFCQUVqQyxDQUFBO0FBUUQsb0JBQTJCLE1BQWM7SUFDdkMsTUFBTSxDQUFBLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNkLEtBQUssSUFBSTtZQUNQLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDWixLQUFLLE1BQU07WUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2QsS0FBSyxRQUFRO1lBRVgsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNoQixLQUFLLFNBQVM7WUFDWixNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2pCLEtBQUssV0FBVztZQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDbEI7WUFDRSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7QUFDSCxDQUFDO0FBaEJlLGtCQUFVLGFBZ0J6QixDQUFBO0FBUUQsb0JBQTJCLE1BQThCO0lBQ3ZELE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFGZSxrQkFBVSxhQUV6QixDQUFBO0FBRWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcm93c2VyRlMncyBtYWluIG1vZHVsZS4gVGhpcyBpcyBleHBvc2VkIGluIHRoZSBicm93c2VyIHZpYSB0aGUgQnJvd3NlckZTIGdsb2JhbC5cbiAqL1xuXG5pbXBvcnQgYnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJyk7XG5pbXBvcnQgZnMgPSByZXF1aXJlKCcuL25vZGVfZnMnKTtcbmltcG9ydCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuaW1wb3J0IGZpbGVfc3lzdGVtID0gcmVxdWlyZSgnLi9maWxlX3N5c3RlbScpO1xuaW1wb3J0IEVtc2NyaXB0ZW5GUyBmcm9tICcuLi9nZW5lcmljL2Vtc2NyaXB0ZW5fZnMnO1xuaW1wb3J0ICogYXMgRmlsZVN5c3RlbSBmcm9tICcuL2JhY2tlbmRzJztcbmltcG9ydCAqIGFzIEJGU1V0aWxzIGZyb20gJy4vdXRpbCc7XG5cbmlmIChwcm9jZXNzWydpbml0aWFsaXplVFRZcyddKSB7XG4gIHByb2Nlc3NbJ2luaXRpYWxpemVUVFlzJ10oKTtcbn1cblxuLyoqXG4gKiBJbnN0YWxscyBCcm93c2VyRlMgb250byB0aGUgZ2l2ZW4gb2JqZWN0LlxuICogV2UgcmVjb21tZW5kIHRoYXQgeW91IHJ1biBpbnN0YWxsIHdpdGggdGhlICd3aW5kb3cnIG9iamVjdCB0byBtYWtlIHRoaW5nc1xuICogZ2xvYmFsLCBhcyBpbiBOb2RlLlxuICpcbiAqIFByb3BlcnRpZXMgaW5zdGFsbGVkOlxuICpcbiAqICogQnVmZmVyXG4gKiAqIHByb2Nlc3NcbiAqICogcmVxdWlyZSAod2UgbW9ua2V5LXBhdGNoIGl0KVxuICpcbiAqIFRoaXMgYWxsb3dzIHlvdSB0byB3cml0ZSBjb2RlIGFzIGlmIHlvdSB3ZXJlIHJ1bm5pbmcgaW5zaWRlIE5vZGUuXG4gKiBAcGFyYW0ge29iamVjdH0gb2JqIC0gVGhlIG9iamVjdCB0byBpbnN0YWxsIHRoaW5ncyBvbnRvIChlLmcuIHdpbmRvdylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGwob2JqOiBhbnkpIHtcbiAgb2JqLkJ1ZmZlciA9IEJ1ZmZlcjtcbiAgb2JqLnByb2Nlc3MgPSBwcm9jZXNzO1xuICB2YXIgb2xkUmVxdWlyZSA9IG9iai5yZXF1aXJlICE9IG51bGwgPyBvYmoucmVxdWlyZSA6IG51bGw7XG4gIC8vIE1vbmtleS1wYXRjaCByZXF1aXJlIGZvciBOb2RlLXN0eWxlIGNvZGUuXG4gIG9iai5yZXF1aXJlID0gZnVuY3Rpb24oYXJnOiBzdHJpbmcpIHtcbiAgICB2YXIgcnYgPSBCRlNSZXF1aXJlKGFyZyk7XG4gICAgaWYgKHJ2ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBvbGRSZXF1aXJlLmFwcGx5KG51bGwsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBydjtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckZpbGVTeXN0ZW0obmFtZTogc3RyaW5nLCBmczogZmlsZV9zeXN0ZW0uRmlsZVN5c3RlbUNvbnN0cnVjdG9yKSB7XG4gICg8YW55PiBGaWxlU3lzdGVtKVtuYW1lXSA9IGZzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQkZTUmVxdWlyZShtb2R1bGU6ICdmcycpOiB0eXBlb2YgZnM7XG5leHBvcnQgZnVuY3Rpb24gQkZTUmVxdWlyZShtb2R1bGU6ICdwYXRoJyk6IHR5cGVvZiBwYXRoO1xuZXhwb3J0IGZ1bmN0aW9uIEJGU1JlcXVpcmUobW9kdWxlOiAnYnVmZmVyJyk6IHR5cGVvZiBidWZmZXI7XG5leHBvcnQgZnVuY3Rpb24gQkZTUmVxdWlyZShtb2R1bGU6ICdwcm9jZXNzJyk6IHR5cGVvZiBwcm9jZXNzO1xuZXhwb3J0IGZ1bmN0aW9uIEJGU1JlcXVpcmUobW9kdWxlOiAnYmZzX3V0aWxzJyk6IHR5cGVvZiBCRlNVdGlscztcbmV4cG9ydCBmdW5jdGlvbiBCRlNSZXF1aXJlKG1vZHVsZTogc3RyaW5nKTogYW55O1xuZXhwb3J0IGZ1bmN0aW9uIEJGU1JlcXVpcmUobW9kdWxlOiBzdHJpbmcpOiBhbnkge1xuICBzd2l0Y2gobW9kdWxlKSB7XG4gICAgY2FzZSAnZnMnOlxuICAgICAgcmV0dXJuIGZzO1xuICAgIGNhc2UgJ3BhdGgnOlxuICAgICAgcmV0dXJuIHBhdGg7XG4gICAgY2FzZSAnYnVmZmVyJzpcbiAgICAgIC8vIFRoZSAnYnVmZmVyJyBtb2R1bGUgaGFzICdCdWZmZXInIGFzIGEgcHJvcGVydHkuXG4gICAgICByZXR1cm4gYnVmZmVyO1xuICAgIGNhc2UgJ3Byb2Nlc3MnOlxuICAgICAgcmV0dXJuIHByb2Nlc3M7XG4gICAgY2FzZSAnYmZzX3V0aWxzJzpcbiAgICAgIHJldHVybiBCRlNVdGlscztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1bbW9kdWxlXTtcbiAgfVxufVxuXG4vKipcbiAqIFlvdSBtdXN0IGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGEgcHJvcGVybHktaW5zdGFudGlhdGVkIHJvb3QgZmlsZSBzeXN0ZW1cbiAqIGJlZm9yZSB1c2luZyBhbnkgZmlsZSBzeXN0ZW0gQVBJIG1ldGhvZC5cbiAqIEBwYXJhbSB7QnJvd3NlckZTLkZpbGVTeXN0ZW19IHJvb3RGUyAtIFRoZSByb290IGZpbGVzeXN0ZW0gdG8gdXNlIGZvciB0aGVcbiAqICAgZW50aXJlIEJyb3dzZXJGUyBmaWxlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemUocm9vdGZzOiBmaWxlX3N5c3RlbS5GaWxlU3lzdGVtKSB7XG4gIHJldHVybiBmcy5pbml0aWFsaXplKHJvb3Rmcyk7XG59XG5cbmV4cG9ydCB7RW1zY3JpcHRlbkZTLCBGaWxlU3lzdGVtfTtcbiJdfQ==