calculate-items
Version:
Items calculation template
30 lines (26 loc) • 968 B
text/typescript
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
}
}