- 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
37 lines
887 B
JavaScript
37 lines
887 B
JavaScript
/** A class that collects pattern nodes for Let directives. */
|
|
export class LetDirectiveCollection {
|
|
constructor() {
|
|
this.list = [];
|
|
}
|
|
getLetParams() {
|
|
return this.list;
|
|
}
|
|
addPattern(pattern, directive, typing, ...callbacks) {
|
|
this.list.push({
|
|
node: pattern,
|
|
parent: directive,
|
|
typing,
|
|
callback(node, options) {
|
|
for (const callback of callbacks) {
|
|
callback(node, options);
|
|
}
|
|
},
|
|
});
|
|
return callbacks;
|
|
}
|
|
}
|
|
export class LetDirectiveCollections {
|
|
constructor() {
|
|
this.stack = [];
|
|
}
|
|
beginExtract() {
|
|
this.stack.push(new LetDirectiveCollection());
|
|
}
|
|
getCollection() {
|
|
return this.stack[this.stack.length - 1];
|
|
}
|
|
extract() {
|
|
return this.stack.pop();
|
|
}
|
|
}
|