This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
TripSit_Suite/node_modules/remark-parse/lib/unescape.js
2020-11-01 22:46:04 +00:00

37 lines
844 B
JavaScript

'use strict'
module.exports = factory
var backslash = '\\'
// Factory to de-escape a value, based on a list at `key` in `ctx`.
function factory(ctx, key) {
return unescape
// De-escape a string using the expression at `key` in `ctx`.
function unescape(value) {
var previous = 0
var index = value.indexOf(backslash)
var escape = ctx[key]
var queue = []
var character
while (index !== -1) {
queue.push(value.slice(previous, index))
previous = index + 1
character = value.charAt(previous)
// If the following character is not a valid escape, add the slash.
if (!character || escape.indexOf(character) === -1) {
queue.push(backslash)
}
index = value.indexOf(backslash, previous + 1)
}
queue.push(value.slice(previous))
return queue.join('')
}
}