Show More
Commit Description:
utf8mb4
Commit Description:
utf8mb4
References:
File last commit:
Show/Diff file:
Action:
node_modules/pdfmake/src/browser-extensions/virtual-fs.js
| 49 lines
| 1.1 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
function VirtualFileSystem() { | ||||
this.fileSystem = {}; | ||||
this.dataSystem = {}; | ||||
} | ||||
VirtualFileSystem.prototype.readFileSync = function (filename, options) { | ||||
filename = fixFilename(filename); | ||||
var dataContent = this.dataSystem[filename]; | ||||
if (typeof dataContent === 'string' && options === 'utf8') { | ||||
return dataContent; | ||||
} | ||||
if (dataContent) { | ||||
return new Buffer(dataContent, typeof dataContent === 'string' ? 'base64' : undefined); | ||||
} | ||||
var content = this.fileSystem[filename]; | ||||
if (content) { | ||||
return content; | ||||
} | ||||
throw 'File \'' + filename + '\' not found in virtual file system'; | ||||
}; | ||||
VirtualFileSystem.prototype.writeFileSync = function (filename, content) { | ||||
this.fileSystem[fixFilename(filename)] = content; | ||||
}; | ||||
VirtualFileSystem.prototype.bindFS = function (data) { | ||||
this.dataSystem = data || {}; | ||||
}; | ||||
function fixFilename(filename) { | ||||
if (filename.indexOf(__dirname) === 0) { | ||||
filename = filename.substring(__dirname.length); | ||||
} | ||||
if (filename.indexOf('/') === 0) { | ||||
filename = filename.substring(1); | ||||
} | ||||
return filename; | ||||
} | ||||
module.exports = new VirtualFileSystem(); | ||||