43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
/*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
|
|
};
|