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.
83 lines
3.0 KiB
83 lines
3.0 KiB
"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"); |
|
} |