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
 |