- OpenAPI: add missing endpoints (add-from-url, subscriptions, public availability) - OpenAPI: CalendarSubscription schema, Subscriptions tag - Frontend app - Migrations: count_for_availability, subscriptions_sync, user_preferences, calendar_settings - Config, rate limit, auth, calendar, booking, ICS, availability, user service updates Made-with: Cursor
24 lines
680 B
JavaScript
24 lines
680 B
JavaScript
"use strict";
|
|
exports.buildMatchPatternFn = buildMatchPatternFn;
|
|
|
|
function buildMatchPatternFn(args) {
|
|
return (string, options = {}) => {
|
|
const matchResult = string.match(args.matchPattern);
|
|
if (!matchResult) return null;
|
|
const matchedString = matchResult[0];
|
|
|
|
const parseResult = string.match(args.parsePattern);
|
|
if (!parseResult) return null;
|
|
let value = args.valueCallback
|
|
? args.valueCallback(parseResult[0])
|
|
: parseResult[0];
|
|
|
|
// [TODO] I challenge you to fix the type
|
|
value = options.valueCallback ? options.valueCallback(value) : value;
|
|
|
|
const rest = string.slice(matchedString.length);
|
|
|
|
return { value, rest };
|
|
};
|
|
}
|