fentastic
Version:
Validate and parse Forsyth-Edwards Notation (FEN) used to describe a chess game board position.
14 lines (13 loc) • 588 B
JavaScript
const split = (isDelimiter, tokens) => {
var _a;
const result = [[]];
for (const token of tokens) {
isDelimiter(token) ? result.push([token]) : (_a = result.at(-1)) === null || _a === void 0 ? void 0 : _a.push(token);
}
return result;
};
export const createTokenGroups = (isDelimiter, tokens) => (split(isDelimiter, tokens).map((group) => ({
value: group.filter(token => !isDelimiter(token)).map(token => token.value).join(''),
delimiter: group.find(isDelimiter) || { value: '', index: 0 },
tokens: group.filter(token => !isDelimiter(token))
})));