/*eslint-env node */
var path = require("path");
var getDirectories = function (grunt, excludes) {
return function (path) {
var directories = grunt.file.expand({ filter: "isDirectory" }, path + "/*");
var excludedPlugins = grunt.file.match(excludes, directories);
return directories.filter(function (dir) {
return excludedPlugins.indexOf(dir) === -1;
});
};
};
var generateIndex = function (prefix, singularName) {
return function (directory) {
var dirName = path.basename(directory);
return {
path: path.join(prefix, dirName, "index.js"),
data: "// Exports the \"" + dirName + "\" " + singularName + " for usage with module loaders\n" +
"// Usage:\n" +
"// CommonJS:\n" +
"// require('tinymce/" + prefix + "/" + dirName + "')\n" +
"// ES2015:\n" +
"// import 'tinymce/" + prefix + "/" + dirName + "'\n" +
"require('./" + singularName + ".js');"
};
};
};
var addIndexFiles = function (zip, directories, generator) {
directories.forEach(function (dir) {
var generated = generator(dir);
zip.addData(generated.path, generated.data);
});
};
module.exports = {
addIndexFiles: addIndexFiles,
generateIndex: generateIndex,
getDirectories: getDirectories
};
|