Spaces:
Runtime error
Runtime error
; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.PartitionPattern = void 0; | |
var utils_1 = require("./utils"); | |
/** | |
* https://tc39.es/ecma402/#sec-partitionpattern | |
* @param pattern | |
*/ | |
function PartitionPattern(pattern) { | |
var result = []; | |
var beginIndex = pattern.indexOf('{'); | |
var endIndex = 0; | |
var nextIndex = 0; | |
var length = pattern.length; | |
while (beginIndex < pattern.length && beginIndex > -1) { | |
endIndex = pattern.indexOf('}', beginIndex); | |
(0, utils_1.invariant)(endIndex > beginIndex, "Invalid pattern ".concat(pattern)); | |
if (beginIndex > nextIndex) { | |
result.push({ | |
type: 'literal', | |
value: pattern.substring(nextIndex, beginIndex), | |
}); | |
} | |
result.push({ | |
type: pattern.substring(beginIndex + 1, endIndex), | |
value: undefined, | |
}); | |
nextIndex = endIndex + 1; | |
beginIndex = pattern.indexOf('{', nextIndex); | |
} | |
if (nextIndex < length) { | |
result.push({ | |
type: 'literal', | |
value: pattern.substring(nextIndex, length), | |
}); | |
} | |
return result; | |
} | |
exports.PartitionPattern = PartitionPattern; | |