Skip to content

Commit

Permalink
fix(types): Fixes HTMLAttribute extend to allow everything (#10561)
Browse files Browse the repository at this point in the history
* fix(types): Fixes HTMLAttribute extend to allow everything

* nit: add types.d.ts file to the list of file to run astrocheck for

* nit: do it some other way
  • Loading branch information
Princesseuh authored Mar 26, 2024
1 parent 303cacc commit 51a4ea5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
1 change: 1 addition & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- "scripts/smoke/check.js"
- "packages/astro/src/@types/astro.ts"
- "pnpm-lock.yaml"
- "packages/astro/types.d.ts"

env:
ASTRO_TELEMETRY_DISABLED: true
Expand Down
8 changes: 7 additions & 1 deletion packages/astro/astro-jsx.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ declare namespace astroHTML.JSX {
| 'search'
| 'send'
| undefined
| null;
| null;
exportparts?: string | undefined | null;
hidden?: boolean | string | undefined | null;
id?: string | undefined | null;
Expand Down Expand Up @@ -584,6 +584,9 @@ declare namespace astroHTML.JSX {
results?: number | string | undefined | null;
security?: string | undefined | null;
unselectable?: 'on' | 'off' | undefined | null; // Internet Explorer

// Allow data- attribute
[key: `data-${string}`]: any;
}

type HTMLAttributeReferrerPolicy =
Expand Down Expand Up @@ -1344,6 +1347,9 @@ declare namespace astroHTML.JSX {
yChannelSelector?: string | undefined | null;
z?: number | string | undefined | null;
zoomAndPan?: string | undefined | null;

// Allow data- attribute
[key: `data-${string}`]: any;
}

interface DefinedIntrinsicElements {
Expand Down
9 changes: 4 additions & 5 deletions packages/astro/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,17 @@ export type HTMLTag = keyof astroHTML.JSX.DefinedIntrinsicElements;
export type HTMLAttributes<Tag extends HTMLTag> = Omit<
astroHTML.JSX.IntrinsicElements[Tag],
keyof Omit<AstroBuiltinAttributes, 'class:list'>
> & {
[key: string]: string | number | boolean | null | undefined;
};
>;

/**
* All the CSS properties available, as defined by the CSS specification
*/
export type CSSProperty = keyof astroHTML.JSX.KebabCSSDOMProperties;

type PolymorphicAttributes<P extends { as: HTMLTag }> = Omit<P & HTMLAttributes<P['as']>, 'as'> & {
type PolymorphicAttributes<P extends { as: HTMLTag }> = Omit<P, 'as'> & {
as?: P['as'];
};
} & HTMLAttributes<P['as']>;

export type Polymorphic<P extends { as: HTMLTag }> = PolymorphicAttributes<
Omit<P, 'as'> & { as: NonNullable<P['as']> }
>;
Expand Down

0 comments on commit 51a4ea5

Please sign in to comment.