UNPKG

@firestone-hs/replay-parser

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.9.

39 lines 6.85 kB
import { OptionsAction } from '../../models/action/options-action'; import { OptionsHistoryItem } from '../../models/history/options-history-item'; import { ActionHelper } from './action-helper'; export class OptionsParser { constructor(allCards) { this.allCards = allCards; } applies(item) { return item instanceof OptionsHistoryItem; } parse(item, currentTurn, entitiesBeforeAction, history) { return [ OptionsAction.create({ timestamp: item.timestamp, index: item.index, options: item.tag.options .filter(option => !option.error || option.error === -1) .map(option => option.entity), }, this.allCards), ]; } reduce(actions) { // // console.log('reducing', actions); return ActionHelper.combineActions(actions, (previous, current) => this.shouldMergeActions(previous, current), (previous, current) => this.mergeActions(previous, current)); } shouldMergeActions(previousAction, currentAction) { // // console.log('should merge?', previousAction, currentAction, new Error().stack); return previousAction && currentAction instanceof OptionsAction; } mergeActions(previousAction, currentAction) { // // console.log('merging actions', previousAction, currentAction); return previousAction.updateAction({ index: currentAction.index, entities: currentAction.entities, options: [...(previousAction.options ?? []), ...(currentAction.options ?? [])], }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yZXBsYXktcGFyc2VyL3NyYy9saWIvc2VydmljZXMvYWN0aW9uL29wdGlvbnMtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUduRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsTUFBTSxPQUFPLGFBQWE7SUFDekIsWUFBb0IsUUFBeUI7UUFBekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7SUFBRyxDQUFDO0lBRTFDLE9BQU8sQ0FBQyxJQUFpQjtRQUMvQixPQUFPLElBQUksWUFBWSxrQkFBa0IsQ0FBQztJQUMzQyxDQUFDO0lBRU0sS0FBSyxDQUNYLElBQXdCLEVBQ3hCLFdBQW1CLEVBQ25CLG9CQUF5QyxFQUN6QyxPQUErQjtRQUUvQixPQUFPO1lBQ04sYUFBYSxDQUFDLE1BQU0sQ0FDbkI7Z0JBQ0MsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU87cUJBQ3ZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO3FCQUN0RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQzlCLEVBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FDYjtTQUNELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQTBCO1FBQ3ZDLHVDQUF1QztRQUN2QyxPQUFPLFlBQVksQ0FBQyxjQUFjLENBQ2pDLE9BQU8sRUFDUCxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQ2pFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQzNELENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsY0FBc0IsRUFBRSxhQUFxQjtRQUN2RSxxRkFBcUY7UUFDckYsT0FBTyxjQUFjLElBQUksYUFBYSxZQUFZLGFBQWEsQ0FBQztJQUNqRSxDQUFDO0lBRU8sWUFBWSxDQUFDLGNBQXNCLEVBQUUsYUFBcUI7UUFDakUsb0VBQW9FO1FBQ3BFLE9BQU8sY0FBYyxDQUFDLFlBQVksQ0FBQztZQUNsQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUs7WUFDMUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFzQjtTQUN6RixDQUFDLENBQUM7SUFDZCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXAgfSBmcm9tICdpbW11dGFibGUnO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uL2FjdGlvbic7XHJcbmltcG9ydCB7IE9wdGlvbnNBY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYWN0aW9uL29wdGlvbnMtYWN0aW9uJztcclxuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dhbWUvZW50aXR5JztcclxuaW1wb3J0IHsgSGlzdG9yeUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlzdG9yeS9oaXN0b3J5LWl0ZW0nO1xyXG5pbXBvcnQgeyBPcHRpb25zSGlzdG9yeUl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvaGlzdG9yeS9vcHRpb25zLWhpc3RvcnktaXRlbSc7XHJcbmltcG9ydCB7IEFsbENhcmRzU2VydmljZSB9IGZyb20gJy4uL2FsbC1jYXJkcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aW9uSGVscGVyIH0gZnJvbSAnLi9hY3Rpb24taGVscGVyJztcclxuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9wYXJzZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNQYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWxsQ2FyZHM6IEFsbENhcmRzU2VydmljZSkge31cclxuXHJcblx0cHVibGljIGFwcGxpZXMoaXRlbTogSGlzdG9yeUl0ZW0pOiBib29sZWFuIHtcclxuXHRcdHJldHVybiBpdGVtIGluc3RhbmNlb2YgT3B0aW9uc0hpc3RvcnlJdGVtO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHBhcnNlKFxyXG5cdFx0aXRlbTogT3B0aW9uc0hpc3RvcnlJdGVtLFxyXG5cdFx0Y3VycmVudFR1cm46IG51bWJlcixcclxuXHRcdGVudGl0aWVzQmVmb3JlQWN0aW9uOiBNYXA8bnVtYmVyLCBFbnRpdHk+LFxyXG5cdFx0aGlzdG9yeTogcmVhZG9ubHkgSGlzdG9yeUl0ZW1bXSxcclxuXHQpOiBBY3Rpb25bXSB7XHJcblx0XHRyZXR1cm4gW1xyXG5cdFx0XHRPcHRpb25zQWN0aW9uLmNyZWF0ZShcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHR0aW1lc3RhbXA6IGl0ZW0udGltZXN0YW1wLFxyXG5cdFx0XHRcdFx0aW5kZXg6IGl0ZW0uaW5kZXgsXHJcblx0XHRcdFx0XHRvcHRpb25zOiBpdGVtLnRhZy5vcHRpb25zXHJcblx0XHRcdFx0XHRcdC5maWx0ZXIob3B0aW9uID0+ICFvcHRpb24uZXJyb3IgfHwgb3B0aW9uLmVycm9yID09PSAtMSlcclxuXHRcdFx0XHRcdFx0Lm1hcChvcHRpb24gPT4gb3B0aW9uLmVudGl0eSksXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHR0aGlzLmFsbENhcmRzLFxyXG5cdFx0XHQpLFxyXG5cdFx0XTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyByZWR1Y2UoYWN0aW9uczogcmVhZG9ubHkgQWN0aW9uW10pOiByZWFkb25seSBBY3Rpb25bXSB7XHJcblx0XHQvLyAvLyBjb25zb2xlLmxvZygncmVkdWNpbmcnLCBhY3Rpb25zKTtcclxuXHRcdHJldHVybiBBY3Rpb25IZWxwZXIuY29tYmluZUFjdGlvbnM8QWN0aW9uPihcclxuXHRcdFx0YWN0aW9ucyxcclxuXHRcdFx0KHByZXZpb3VzLCBjdXJyZW50KSA9PiB0aGlzLnNob3VsZE1lcmdlQWN0aW9ucyhwcmV2aW91cywgY3VycmVudCksXHJcblx0XHRcdChwcmV2aW91cywgY3VycmVudCkgPT4gdGhpcy5tZXJnZUFjdGlvbnMocHJldmlvdXMsIGN1cnJlbnQpLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2hvdWxkTWVyZ2VBY3Rpb25zKHByZXZpb3VzQWN0aW9uOiBBY3Rpb24sIGN1cnJlbnRBY3Rpb246IEFjdGlvbik6IGJvb2xlYW4ge1xyXG5cdFx0Ly8gLy8gY29uc29sZS5sb2coJ3Nob3VsZCBtZXJnZT8nLCBwcmV2aW91c0FjdGlvbiwgY3VycmVudEFjdGlvbiwgbmV3IEVycm9yKCkuc3RhY2spO1xyXG5cdFx0cmV0dXJuIHByZXZpb3VzQWN0aW9uICYmIGN1cnJlbnRBY3Rpb24gaW5zdGFuY2VvZiBPcHRpb25zQWN0aW9uO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBtZXJnZUFjdGlvbnMocHJldmlvdXNBY3Rpb246IEFjdGlvbiwgY3VycmVudEFjdGlvbjogQWN0aW9uKTogQWN0aW9uIHtcclxuXHRcdC8vIC8vIGNvbnNvbGUubG9nKCdtZXJnaW5nIGFjdGlvbnMnLCBwcmV2aW91c0FjdGlvbiwgY3VycmVudEFjdGlvbik7XHJcblx0XHRyZXR1cm4gcHJldmlvdXNBY3Rpb24udXBkYXRlQWN0aW9uKHtcclxuXHRcdFx0aW5kZXg6IGN1cnJlbnRBY3Rpb24uaW5kZXgsXHJcblx0XHRcdGVudGl0aWVzOiBjdXJyZW50QWN0aW9uLmVudGl0aWVzLFxyXG5cdFx0XHRvcHRpb25zOiBbLi4uKHByZXZpb3VzQWN0aW9uLm9wdGlvbnMgPz8gW10pLCAuLi4oY3VycmVudEFjdGlvbi5vcHRpb25zID8/IFtdKV0gYXMgcmVhZG9ubHkgbnVtYmVyW10sXHJcblx0XHR9IGFzIEFjdGlvbik7XHJcblx0fVxyXG59XHJcbiJdfQ==