standalone.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. "use strict";
  2. const version = require("./package.json").version;
  3. const core = require("./src/main/core");
  4. const getSupportInfo = require("./src/main/support").getSupportInfo;
  5. const sharedUtil = require("./src/common/util-shared");
  6. const doc = require("./src/doc");
  7. const internalPlugins = [
  8. require("./src/language-js"),
  9. require("./src/language-css"),
  10. require("./src/language-graphql"),
  11. require("./src/language-markdown"),
  12. require("./src/language-vue")
  13. ];
  14. const isArray =
  15. Array.isArray ||
  16. function(arr) {
  17. return Object.prototype.toString.call(arr) === "[object Array]";
  18. };
  19. // Luckily `opts` is always the 2nd argument
  20. function withPlugins(fn) {
  21. return function() {
  22. const args = Array.from(arguments);
  23. let plugins = (args[1] && args[1].plugins) || [];
  24. if (!isArray(plugins)) {
  25. plugins = Object.values(plugins);
  26. }
  27. args[1] = Object.assign({}, args[1], {
  28. plugins: internalPlugins.concat(plugins)
  29. });
  30. return fn.apply(null, args);
  31. };
  32. }
  33. const formatWithCursor = withPlugins(core.formatWithCursor);
  34. module.exports = {
  35. formatWithCursor: formatWithCursor,
  36. format(text, opts) {
  37. return formatWithCursor(text, opts).formatted;
  38. },
  39. check(text, opts) {
  40. const formatted = formatWithCursor(text, opts).formatted;
  41. return formatted === text;
  42. },
  43. doc,
  44. getSupportInfo: withPlugins(getSupportInfo),
  45. version,
  46. util: sharedUtil,
  47. __debug: {
  48. parse: withPlugins(core.parse),
  49. formatAST: withPlugins(core.formatAST),
  50. formatDoc: withPlugins(core.formatDoc),
  51. printToDoc: withPlugins(core.printToDoc),
  52. printDocToString: withPlugins(core.printDocToString)
  53. }
  54. };