- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
25 lines
712 B
JavaScript
25 lines
712 B
JavaScript
const RE_REGEXP_STR = /^\/(.+)\/([A-Za-z]*)$/u;
|
|
/**
|
|
* Convert a string to the `RegExp`.
|
|
* Normal strings (e.g. `"foo"`) is converted to `/^foo$/` of `RegExp`.
|
|
* Strings like `"/^foo/i"` are converted to `/^foo/i` of `RegExp`.
|
|
*
|
|
* @param {string} string The string to convert.
|
|
* @returns {RegExp} Returns the `RegExp`.
|
|
*/
|
|
export function toRegExp(string) {
|
|
const parts = RE_REGEXP_STR.exec(string);
|
|
if (parts) {
|
|
return new RegExp(parts[1], parts[2]);
|
|
}
|
|
return { test: (s) => s === string };
|
|
}
|
|
/**
|
|
* Checks whether given string is regexp string
|
|
* @param {string} string
|
|
* @returns {boolean}
|
|
*/
|
|
export function isRegExp(string) {
|
|
return Boolean(RE_REGEXP_STR.test(string));
|
|
}
|