generate-plugin-definitions-source.js 998 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * the tool for genetion of plugin definitions source code
  3. *
  4. * @author Yuki Takei <yuki@weseek.co.jp>
  5. */
  6. const fs = require('graceful-fs');
  7. const slash = require('slash');
  8. const swig = require('swig');
  9. const helpers = require('../config/helpers');
  10. const TEMPLATE = helpers.root('bin/templates/plugin-definitions.js.swig');
  11. const OUT = helpers.root('resource/js/plugins/plugin-definitions.js');
  12. const PluginUtils = require('../lib/plugins/plugin-utils');
  13. const pluginUtils = new PluginUtils();
  14. // get definitions
  15. const definitions = pluginUtils.listPluginNames(helpers.root())
  16. .map((name) => {
  17. return pluginUtils.generatePluginDefinition(name, true);
  18. })
  19. .map((definition) => {
  20. // convert backslash to slash
  21. definition.entries = definition.entries.map((entryPath) => {
  22. return slash(entryPath);
  23. });
  24. return definition;
  25. });
  26. var compiledTemplate = swig.compileFile(TEMPLATE);
  27. var code = compiledTemplate({definitions});
  28. // write
  29. fs.writeFileSync(OUT, code);