@@ -119,25 +119,28 @@ interface UpgradableCustomElementConstructor extends CustomElementConstructor {
119119 new ( upgradeCallback ?: UpgradeCallback ) : HTMLElement ;
120120}
121121export let getUpgradableElement : ( name : string ) => CustomElementConstructor ;
122+ export let getUserConstructor : (
123+ upgradeCallback : UpgradeCallback
124+ ) => UpgradableCustomElementConstructor | UpgradeCallback ;
122125if ( isCustomElementRegistryAvailable ( ) ) {
123126 const getPivotCustomElement = patchCustomElementRegistry ( ) ;
124127 const cachedConstructor : Record < string , CustomElementConstructor > = create ( null ) ;
125128 getUpgradableElement = ( name : string ) => {
126129 let Ctor = cachedConstructor [ name ] ;
127130 if ( ! Ctor ) {
128- class LWCUpgradableElement extends HTMLElement {
129- constructor ( upgradeCallback ?: UpgradeCallback ) {
130- super ( ) ;
131- if ( isFunction ( upgradeCallback ) ) {
132- upgradeCallback ( this ) ; // nothing to do with the result for now
133- }
134- }
135- }
136-
131+ class LWCUpgradableElement extends HTMLElement { }
137132 Ctor = getPivotCustomElement ( name , LWCUpgradableElement ) ;
138133 }
139134 return Ctor ;
140135 } ;
136+ getUserConstructor = ( upgradeCallback : UpgradeCallback ) => {
137+ return class UserElement extends HTMLElement {
138+ constructor ( ) {
139+ super ( ) ;
140+ upgradeCallback ( this ) ;
141+ }
142+ } ;
143+ } ;
141144} else {
142145 // no registry available here
143146 getUpgradableElement = ( name : string ) : UpgradableCustomElementConstructor => {
@@ -149,17 +152,9 @@ if (isCustomElementRegistryAvailable()) {
149152 return elm ;
150153 } as unknown as UpgradableCustomElementConstructor ;
151154 } ;
155+ getUserConstructor = ( upgradeCallback : UpgradeCallback ) => upgradeCallback ;
152156}
153157
154- export const getUserConstructor = ( upgradeCallback : UpgradeCallback ) => {
155- return class UserElement extends HTMLElement {
156- constructor ( ) {
157- super ( ) ;
158- upgradeCallback ( this ) ;
159- }
160- } ;
161- } ;
162-
163158let hydrating = false ;
164159
165160export function setIsHydrating ( value : boolean ) {
0 commit comments