You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					75 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					75 lines
				
				3.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", {
							 | 
						||
| 
								 | 
							
								  value: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								exports.merge = merge;
							 | 
						||
| 
								 | 
							
								exports.normalizeReplacements = normalizeReplacements;
							 | 
						||
| 
								 | 
							
								exports.validate = validate;
							 | 
						||
| 
								 | 
							
								const _excluded = ["placeholderWhitelist", "placeholderPattern", "preserveComments", "syntacticPlaceholders"];
							 | 
						||
| 
								 | 
							
								function _objectWithoutPropertiesLoose(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]; } return target; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function merge(a, b) {
							 | 
						||
| 
								 | 
							
								  const {
							 | 
						||
| 
								 | 
							
								    placeholderWhitelist = a.placeholderWhitelist,
							 | 
						||
| 
								 | 
							
								    placeholderPattern = a.placeholderPattern,
							 | 
						||
| 
								 | 
							
								    preserveComments = a.preserveComments,
							 | 
						||
| 
								 | 
							
								    syntacticPlaceholders = a.syntacticPlaceholders
							 | 
						||
| 
								 | 
							
								  } = b;
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    parser: Object.assign({}, a.parser, b.parser),
							 | 
						||
| 
								 | 
							
								    placeholderWhitelist,
							 | 
						||
| 
								 | 
							
								    placeholderPattern,
							 | 
						||
| 
								 | 
							
								    preserveComments,
							 | 
						||
| 
								 | 
							
								    syntacticPlaceholders
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function validate(opts) {
							 | 
						||
| 
								 | 
							
								  if (opts != null && typeof opts !== "object") {
							 | 
						||
| 
								 | 
							
								    throw new Error("Unknown template options.");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  const _ref = opts || {},
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      placeholderWhitelist,
							 | 
						||
| 
								 | 
							
								      placeholderPattern,
							 | 
						||
| 
								 | 
							
								      preserveComments,
							 | 
						||
| 
								 | 
							
								      syntacticPlaceholders
							 | 
						||
| 
								 | 
							
								    } = _ref,
							 | 
						||
| 
								 | 
							
								    parser = _objectWithoutPropertiesLoose(_ref, _excluded);
							 | 
						||
| 
								 | 
							
								  if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) {
							 | 
						||
| 
								 | 
							
								    throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  if (placeholderPattern != null && !(placeholderPattern instanceof RegExp) && placeholderPattern !== false) {
							 | 
						||
| 
								 | 
							
								    throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  if (preserveComments != null && typeof preserveComments !== "boolean") {
							 | 
						||
| 
								 | 
							
								    throw new Error("'.preserveComments' must be a boolean, null, or undefined");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  if (syntacticPlaceholders != null && typeof syntacticPlaceholders !== "boolean") {
							 | 
						||
| 
								 | 
							
								    throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  if (syntacticPlaceholders === true && (placeholderWhitelist != null || placeholderPattern != null)) {
							 | 
						||
| 
								 | 
							
								    throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible" + " with '.syntacticPlaceholders: true'");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    parser,
							 | 
						||
| 
								 | 
							
								    placeholderWhitelist: placeholderWhitelist || undefined,
							 | 
						||
| 
								 | 
							
								    placeholderPattern: placeholderPattern == null ? undefined : placeholderPattern,
							 | 
						||
| 
								 | 
							
								    preserveComments: preserveComments == null ? undefined : preserveComments,
							 | 
						||
| 
								 | 
							
								    syntacticPlaceholders: syntacticPlaceholders == null ? undefined : syntacticPlaceholders
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function normalizeReplacements(replacements) {
							 | 
						||
| 
								 | 
							
								  if (Array.isArray(replacements)) {
							 | 
						||
| 
								 | 
							
								    return replacements.reduce((acc, replacement, i) => {
							 | 
						||
| 
								 | 
							
								      acc["$" + i] = replacement;
							 | 
						||
| 
								 | 
							
								      return acc;
							 | 
						||
| 
								 | 
							
								    }, {});
							 | 
						||
| 
								 | 
							
								  } else if (typeof replacements === "object" || replacements == null) {
							 | 
						||
| 
								 | 
							
								    return replacements || undefined;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  throw new Error("Template replacements must be an array, object, null, or undefined");
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//# sourceMappingURL=options.js.map
							 |