opensphere-build-resolver
Version:
Resolves projects, their dependencies, plugins, and config to the correct arguments for compilation via the Google Closure Compiler, sass/node-sass, and other tools.
54 lines (41 loc) • 1.16 kB
JavaScript
;
const Promise = require('bluebird');
const fs = Promise.promisifyAll(require('fs'));
const path = require('path');
var externs = [];
const resolveExterns = function(pack, projectDir) {
var dir;
if (pack.directories && pack.directories.externs) {
dir = pack.directories.externs;
}
if (pack.build && pack.build.externs) {
externs = externs.concat(pack.build.externs.map(function(extern) {
return path.resolve(projectDir, extern);
}));
}
if (dir) {
dir = path.resolve(projectDir, dir);
return fs.readdirAsync(path.resolve(projectDir, dir))
.then(function(files) {
files = files.filter(function(file) {
return file.endsWith('.js');
});
externs = externs.concat(files.map(function(file) {
return path.resolve(projectDir, dir, file);
}));
})
.catch({code: 'ENOENT'}, function() {});
}
return Promise.resolve();
};
const addOptions = function(pack, options) {
options.externs = externs;
};
const clear = function() {
externs = [];
};
module.exports = {
clear: clear,
resolver: resolveExterns,
adder: addOptions
};