Sha256: 6840d1e246748d35039a8c92c96956bdceccf066283db4271b6e4ece1b667a3e
Contents?: true
Size: 1.83 KB
Versions: 5
Compression:
Stored size: 1.83 KB
Contents
var logger = require("../logger"); var environment = function(externalEnvironment, fileManagers) { this.fileManagers = fileManagers || []; externalEnvironment = externalEnvironment || {}; var optionalFunctions = ["encodeBase64", "mimeLookup", "charsetLookup", "getSourceMapGenerator"], requiredFunctions = [], functions = requiredFunctions.concat(optionalFunctions); for (var i = 0; i < functions.length; i++) { var propName = functions[i], environmentFunc = externalEnvironment[propName]; if (environmentFunc) { this[propName] = environmentFunc.bind(externalEnvironment); } else if (i < requiredFunctions.length) { this.warn("missing required function in environment - " + propName); } } }; environment.prototype.getFileManager = function (filename, currentDirectory, options, environment, isSync) { if (!filename) { logger.warn("getFileManager called with no filename.. Please report this issue. continuing."); } if (currentDirectory == null) { logger.warn("getFileManager called with null directory.. Please report this issue. continuing."); } var fileManagers = this.fileManagers; if (options.pluginManager) { fileManagers = [].concat(fileManagers).concat(options.pluginManager.getFileManagers()); } for (var i = fileManagers.length - 1; i >= 0 ; i--) { var fileManager = fileManagers[i]; if (fileManager[isSync ? "supportsSync" : "supports"](filename, currentDirectory, options, environment)) { return fileManager; } } return null; }; environment.prototype.addFileManager = function (fileManager) { this.fileManagers.push(fileManager); }; environment.prototype.clearFileManagers = function () { this.fileManagers = []; }; module.exports = environment;
Version data entries
5 entries across 5 versions & 2 rubygems