Skip to content

@quazardous/qdadm@1.19.5

Choose a tag to compare

@github-actions github-actions released this 17 Jun 09:27
· 363 commits to main since this release

Patch Changes

  • 1a35219: Fix codegen class-mode constructor TS2345 on fields. The generated Generated${X}Manager constructor was typing its options argument as a hand-rolled Partial<{ ... fields: Record<string, unknown>; [key: string]: unknown }>. The toxic combo (Record<string, unknown> + index signature) widened the inline literal's strictly-typed fields: Record<string, FieldConfig> at the super({ ...literal, ...options }) spread, so vue-tsc --noEmit against generated files reported TS2345: Argument of type '{ ...; fields: Record<string, unknown>; ... }' is not assignable to parameter of type 'EntityManagerOptions<XxxEntity>'.

    The codegen now emits constructor(options: Partial<EntityManagerOptions<${className}Entity>> = {}) and imports EntityManagerOptions from @quazardous/qdadm. The signature stays in sync with the parent class automatically — future additions to EntityManagerOptions no longer require touching the template — and the strict fields typing survives the spread. Reported by skybot-claude on vue-tsc --noEmit over generated managers in 1.19.4.

  • 8043b44: Fix asymmetric button size between FormPage and ListPage header actions. ListPage.vue forced size='small' on its header action buttons, but FormPage.vue rendered actions from form.addAction(...) without a size prop — so PrimeVue's default (normal/large) showed up on edit pages, breaking visual coherence with the list. Reported by skybot-claude in qdadm #1016.

    FormPage.vue now renders header actions with :size="action.size || 'small'" to match ListPage. Symmetric overrides: size?: string is now part of the shared ActionConfig (useEntityItemFormPage.types.ts) and HeaderActionConfig (useListPage.types.ts) — consumers can opt into a different size from either side without touching component code. ListPage.vue's local widening interface ResolvedHeaderAction extends BaseResolvedHeaderAction { size?: string } is removed since the base type now carries size directly.

    Default remains 'small' on both pages, so no breaking change for existing consumers.