options.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.merge = merge;
  6. exports.validate = validate;
  7. exports.normalizeReplacements = normalizeReplacements;
  8. function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
  9. function merge(a, b) {
  10. var _b$placeholderWhiteli = b.placeholderWhitelist,
  11. placeholderWhitelist = _b$placeholderWhiteli === void 0 ? a.placeholderWhitelist : _b$placeholderWhiteli,
  12. _b$placeholderPattern = b.placeholderPattern,
  13. placeholderPattern = _b$placeholderPattern === void 0 ? a.placeholderPattern : _b$placeholderPattern,
  14. _b$preserveComments = b.preserveComments,
  15. preserveComments = _b$preserveComments === void 0 ? a.preserveComments : _b$preserveComments;
  16. return {
  17. parser: Object.assign({}, a.parser, b.parser),
  18. placeholderWhitelist: placeholderWhitelist,
  19. placeholderPattern: placeholderPattern,
  20. preserveComments: preserveComments
  21. };
  22. }
  23. function validate(opts) {
  24. if (opts != null && typeof opts !== "object") {
  25. throw new Error("Unknown template options.");
  26. }
  27. var _ref = opts || {},
  28. placeholderWhitelist = _ref.placeholderWhitelist,
  29. placeholderPattern = _ref.placeholderPattern,
  30. preserveComments = _ref.preserveComments,
  31. parser = _objectWithoutProperties(_ref, ["placeholderWhitelist", "placeholderPattern", "preserveComments"]);
  32. if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) {
  33. throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");
  34. }
  35. if (placeholderPattern != null && !(placeholderPattern instanceof RegExp) && placeholderPattern !== false) {
  36. throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");
  37. }
  38. if (preserveComments != null && typeof preserveComments !== "boolean") {
  39. throw new Error("'.preserveComments' must be a boolean, null, or undefined");
  40. }
  41. return {
  42. parser: parser,
  43. placeholderWhitelist: placeholderWhitelist || undefined,
  44. placeholderPattern: placeholderPattern == null ? undefined : placeholderPattern,
  45. preserveComments: preserveComments == null ? false : preserveComments
  46. };
  47. }
  48. function normalizeReplacements(replacements) {
  49. if (Array.isArray(replacements)) {
  50. return replacements.reduce(function (acc, replacement, i) {
  51. acc["$" + i] = replacement;
  52. return acc;
  53. }, {});
  54. } else if (typeof replacements === "object" || replacements == null) {
  55. return replacements || undefined;
  56. }
  57. throw new Error("Template replacements must be an array, object, null, or undefined");
  58. }