refactor: move ListRenderingContext interface to types.d.ts and clean up processTemplateMarco.ts
All checks were successful
Publish to npm / quality (push) Successful in 22s
Publish to npm / publish (push) Successful in 26s

This commit is contained in:
Astrian Zheng 2025-05-21 15:55:12 +10:00
parent 828d6b0279
commit 3b344af52d
Signed by: Astrian
SSH Key Fingerprint: SHA256:rVnhx3DAKjujCwWE13aDl7uV6+9U1MvydLkNRXJrBiA
3 changed files with 25 additions and 26 deletions

View File

@ -1,21 +1,5 @@
import utils from './utils/index'
interface ComponentOptions {
tag: string
template: string
style?: string
onMount?: (this: CustomElement) => void
onUnmount?: () => void
onAttributeChanged?: (
attrName: string,
oldValue: string,
newValue: string,
) => void
states?: Record<string, unknown>
statesListeners?: { [key: string]: (value: unknown) => void }
funcs?: { [key: string]: (...args: unknown[]) => void }
}
export default (options: ComponentOptions) => {
const {
tag,

25
src/types.d.ts vendored
View File

@ -2,3 +2,28 @@ interface CustomElement extends HTMLElement {
setState(key_path: string, value: unknown): void
getState(key_path: string): unknown
}
interface ListRenderingContext {
states: Record<string, unknown>
stateToElementsMap: Record<string, Set<HTMLElement>>
statesListeners: Record<string, (value: unknown) => void>
setState: (keyPath: string, value: unknown) => void
getState: (keyPath: string) => unknown
triggerFunc: (eventName: string, ...args: unknown[]) => void
}
interface ComponentOptions {
tag: string
template: string
style?: string
onMount?: (this: CustomElement) => void
onUnmount?: () => void
onAttributeChanged?: (
attrName: string,
oldValue: string,
newValue: string,
) => void
states?: Record<string, unknown>
statesListeners?: { [key: string]: (value: unknown) => void }
funcs?: { [key: string]: (...args: unknown[]) => void }
}

View File

@ -307,16 +307,6 @@ function setupConditionRendering(
}
}
// Interface for list rendering context
interface ListRenderingContext {
states: Record<string, unknown>
stateToElementsMap: Record<string, Set<HTMLElement>>
statesListeners: Record<string, (value: unknown) => void>
setState: (keyPath: string, value: unknown) => void
getState: (keyPath: string) => unknown
triggerFunc: (eventName: string, ...args: unknown[]) => void
}
// Evaluate expressions using the item context
function evaluateExpressionWithItemContext(
expression: string,