fentastic
Version:
Validate and parse Forsyth-Edwards Notation (FEN) used to describe a chess game board position.
18 lines (17 loc) • 741 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTokenGroups = void 0;
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;
};
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))
})));
exports.createTokenGroups = createTokenGroups;