@dlightjs/types
Advanced tools
Comparing version 0.8.0 to 0.8.2
@@ -229,14 +229,8 @@ import { HtmlNode, DLNode } from '@dlightjs/dlight'; | ||
type IsOptionalProp<T> = undefined extends T ? true : false; | ||
type HasOnlyOptionalProps<T> = keyof T extends infer K ? K extends keyof T ? IsOptionalProp<T[K]> extends true ? HasOnlyOptionalProps<Omit<T, K>> : false : true : true; | ||
type RemoveOptionalProps<T> = HasOnlyOptionalProps<T> extends true ? Required<T> : T; | ||
type Useless = { | ||
[key in ""]: never; | ||
}; | ||
type OptionalUseless = { | ||
[key in ""]?: never; | ||
type DLightObject<T> = { | ||
[K in keyof T]: (value: T[K]) => DLightObject<Omit<T, K>>; | ||
}; | ||
type DLightObject<T> = RemoveOptionalProps<{ | ||
[K in keyof T]: (value: T[K]) => DLightObject<Omit<T, K>>; | ||
}> & Useless; | ||
type CustomTag<T> = "_$content" extends keyof T ? (_$content?: T["_$content"]) => DLightObject<T> : () => DLightObject<T>; | ||
@@ -246,2 +240,3 @@ declare const Prop: any; | ||
_$isProp: true; | ||
_$required: false; | ||
}; | ||
@@ -252,34 +247,6 @@ type RequiredProp<T> = T & { | ||
}; | ||
interface Never { | ||
_$never: true; | ||
} | ||
type IsAny<T> = (unknown extends T ? [keyof T] extends [never] ? false : true : false); | ||
type NoAny<T> = { | ||
[K in keyof T]: IsAny<T[K]> extends true ? never : T[K]; | ||
type SelectProps<T> = { | ||
[K in keyof T]-?: T[K] extends RequiredProp<infer U> ? U : T[K] extends Prop<infer U> ? (U | undefined) : never; | ||
}; | ||
type ExtractPropKeys<T> = { | ||
[K in keyof T]: T[K] extends Prop<infer _> ? (T[K] extends Prop<infer U> ? U : Never) : Never; | ||
}; | ||
type GetOptionalKeys<T> = { | ||
[K in keyof T]: T extends { | ||
[_ in K]: infer U; | ||
} ? (undefined extends U ? K : Never) : K; | ||
}[keyof T]; | ||
type FilterNever<T> = Omit<T, { | ||
[K in keyof T]: T[K] extends (Never | undefined) ? K : never; | ||
}[keyof T]>; | ||
type RequiredPart<T> = FilterNever<{ | ||
[K in keyof T]: T[K] extends RequiredProp<infer U> ? Prop<U> : Never; | ||
}>; | ||
type OptionalPart<T> = FilterNever<{ | ||
[K in keyof T]?: T[K] extends RequiredProp<infer _> ? Never : T[K]; | ||
}>; | ||
type Together<T> = OptionalPart<T> & RequiredPart<T>; | ||
type AllProperties<T> = NoAny<Together<T>>; | ||
type RequiredProperties<T> = FilterNever<ExtractPropKeys<Required<AllProperties<T>>>>; | ||
type OptionalKeys<T> = GetOptionalKeys<AllProperties<T>>; | ||
type PropsKeys<T> = FilterNever<{ | ||
[K in keyof AllProperties<T>]: K extends keyof RequiredProperties<T> ? K extends OptionalKeys<T> ? Exclude<AllProperties<T>[K], undefined> extends Prop<infer U> ? U : Never : RequiredProperties<T>[K] : Never; | ||
}> & OptionalUseless; | ||
type Typed<T> = CustomTag<PropsKeys<T>> & Useless; | ||
type Typed<T> = CustomTag<SelectProps<T>> & Useless; | ||
type UnTyped<T> = T extends Typed<infer U> ? U : never; | ||
@@ -286,0 +253,0 @@ type PropWrapper<T> = { |
@@ -1,1 +0,1 @@ | ||
var t=null;var l=null,a=null,o=null,s=null,i=null,r=null,c=null,p=null,u=null,g=null,T=null,y=null,m=null,x=null,h=null,H=null,L=null,D=null,F=null,d=null,f=null,P=null,k=null,v=null,K=null,b=null,O=null,N=null,U=null,E=null,q=null,R=null,A=null,_=null,M=null,$=null,G=null,I=null,j=null,w=null,B=null,W=null,C=null,V=null,z=null,J=null,Q=null,X=null,Y=null,Z=null,tt=null,nt=null,et=null,lt=null,at=null,ot=null,st=null,it=null,rt=null,ct=null,pt=null,ut=null,gt=null,Tt=null,yt=null,mt=null,xt=null,ht=null,Ht=null,Lt=null,Dt=null,Ft=null,dt=null,ft=null,Pt=null,St=null,kt=null,vt=null,Kt=null,bt=null,Ot=null,Nt=null,Ut=null,Et=null,qt=null,Rt=null,At=null,_t=null,Mt=null,$t=null,Gt=null,It=null,jt=null,wt=null,Bt=null,Wt=null,Ct=null,Vt=null,zt=null,Jt=null,Qt=null,Xt=null,Yt=null,Zt=null,tn=null,nn=null,en=null,ln=null,an=null,on=null,sn=null;var n=null;var pn=null,un=null,gn=null,Tn=null,yn=null,mn=null,xn=null;export{un as Env,n as Prop,pn as Static,xn as SubView,t as _,l as a,a as abbr,o as address,s as area,i as article,r as aside,c as audio,p as b,u as base,g as bdi,T as bdo,y as blockquote,m as body,x as br,h as button,H as canvas,L as caption,D as cite,F as code,d as col,f as colgroup,P as data,k as datalist,v as dd,K as del,b as details,O as dfn,N as dialog,U as div,E as dl,q as dt,R as em,A as embed,gn as env,_ as fieldset,M as figcaption,$ as figure,G as footer,I as form,j as h1,w as h2,B as h3,W as h4,C as h5,V as h6,z as head,J as header,Q as hgroup,X as hr,Y as html,yn as htmlTag,Z as i,tt as iframe,nt as img,et as input,lt as ins,at as kbd,ot as label,st as legend,it as li,rt as link,ct as main,pt as map,ut as mark,gt as menu,Tt as meta,yt as meter,mt as nav,xt as noscript,ht as object,Ht as ol,Lt as optgroup,Dt as option,Ft as output,dt as p,ft as param,Pt as picture,St as pre,kt as progress,vt as q,mn as required,Kt as rp,bt as rt,Ot as ruby,Nt as s,Ut as samp,Et as script,qt as section,Rt as select,At as slot,_t as small,Mt as source,$t as span,Gt as strong,It as style,jt as sub,wt as summary,Bt as sup,Wt as table,Tn as tag,Ct as tbody,Vt as td,zt as template,Jt as textarea,Qt as tfoot,Xt as th,Yt as thead,Zt as time,tn as title,nn as tr,en as track,ln as u,an as ul,on as video,sn as wbr}; | ||
var t=null;var l=null,e=null,o=null,c=null,s=null,g=null,i=null,u=null,p=null,r=null,T=null,m=null,y=null,h=null,L=null,H=null,x=null,D=null,F=null,d=null,f=null,b=null,k=null,E=null,P=null,v=null,U=null,q=null,_=null,N=null,M=null,$=null,A=null,K=null,O=null,R=null,j=null,w=null,B=null,G=null,W=null,C=null,I=null,V=null,z=null,J=null,Q=null,X=null,Y=null,Z=null,tt=null,nt=null,at=null,lt=null,et=null,ot=null,ct=null,st=null,gt=null,it=null,ut=null,pt=null,rt=null,Tt=null,mt=null,yt=null,ht=null,Lt=null,Ht=null,xt=null,Dt=null,Ft=null,dt=null,ft=null,St=null,bt=null,kt=null,Et=null,Pt=null,vt=null,Ut=null,qt=null,_t=null,Nt=null,Mt=null,$t=null,At=null,Kt=null,Ot=null,Rt=null,jt=null,wt=null,Bt=null,Gt=null,Wt=null,Ct=null,It=null,Vt=null,zt=null,Jt=null,Qt=null,Xt=null,Yt=null,Zt=null,tn=null,nn=null,an=null,ln=null,en=null,on=null,cn=null;var n=null;var un=null,pn=null,rn=null,Tn=null,mn=null,yn=null,hn=null;export{pn as Env,n as Prop,un as Static,hn as SubView,t as _,l as a,e as abbr,o as address,c as area,s as article,g as aside,i as audio,u as b,p as base,r as bdi,T as bdo,m as blockquote,y as body,h as br,L as button,H as canvas,x as caption,D as cite,F as code,d as col,f as colgroup,b as data,k as datalist,E as dd,P as del,v as details,U as dfn,q as dialog,_ as div,N as dl,M as dt,$ as em,A as embed,rn as env,K as fieldset,O as figcaption,R as figure,j as footer,w as form,B as h1,G as h2,W as h3,C as h4,I as h5,V as h6,z as head,J as header,Q as hgroup,X as hr,Y as html,mn as htmlTag,Z as i,tt as iframe,nt as img,at as input,lt as ins,et as kbd,ot as label,ct as legend,st as li,gt as link,it as main,ut as map,pt as mark,rt as menu,Tt as meta,mt as meter,yt as nav,ht as noscript,Lt as object,Ht as ol,xt as optgroup,Dt as option,Ft as output,dt as p,ft as param,St as picture,bt as pre,kt as progress,Et as q,yn as required,Pt as rp,vt as rt,Ut as ruby,qt as s,_t as samp,Nt as script,Mt as section,$t as select,At as slot,Kt as small,Ot as source,Rt as span,jt as strong,wt as style,Bt as sub,Gt as summary,Wt as sup,Ct as table,Tn as tag,It as tbody,Vt as td,zt as template,Jt as textarea,Qt as tfoot,Xt as th,Yt as thead,Zt as time,tn as title,nn as tr,an as track,ln as u,en as ul,on as video,cn as wbr}; |
{ | ||
"name": "@dlightjs/types", | ||
"version": "0.8.0", | ||
"version": "0.8.2", | ||
"files": [ | ||
@@ -23,3 +23,3 @@ "dist" | ||
"csstype": "^3.1.1", | ||
"@dlightjs/dlight": "0.8.0" | ||
"@dlightjs/dlight": "0.8.2" | ||
}, | ||
@@ -26,0 +26,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
20998
280
+ Added@dlightjs/dlight@0.8.2(transitive)
- Removed@dlightjs/dlight@0.8.0(transitive)
Updated@dlightjs/dlight@0.8.2