UNPKG

calculate-items

Version:

Items calculation template

30 lines (26 loc) 968 B
import {gt, nth, size, trim} from "lodash"; import {MEMBER_INDEXES_PATTERN, MEMBER_NAMES_PATTERN} from "../constants/patterns"; export default class MembersParser { public static getUsernames(text?: string) { const secondUser = MembersParser.matchSecondUser(MEMBER_NAMES_PATTERN, text); return secondUser ?.split(',') .map(trim) .filter(Boolean) || []; } public static getUserIndexes(text: string) { const secondUser = MembersParser.matchSecondUser(MEMBER_INDEXES_PATTERN, text); return secondUser ?.split(',') .map(trim) .filter(Boolean) .map(Number) || []; } private static matchSecondUser(pattern: RegExp, text?: string): string | undefined { const users = text?.match(pattern); if (gt(size(users), 1)) { return nth(users, 1) } return undefined } }