@servicetitan/lazy-module 38.0.0 → 38.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -6,19 +6,26 @@ function _define_property(obj, key, value) {
|
|
|
6
6
|
configurable: true,
|
|
7
7
|
writable: true
|
|
8
8
|
});
|
|
9
|
-
} else
|
|
10
|
-
obj[key] = value;
|
|
11
|
-
}
|
|
9
|
+
} else obj[key] = value;
|
|
12
10
|
return obj;
|
|
13
11
|
}
|
|
14
12
|
function _ts_decorate(decorators, target, key, desc) {
|
|
15
13
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
17
|
-
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
|
|
15
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
16
|
+
} else {
|
|
17
|
+
for(var i = decorators.length - 1; i >= 0; i--){
|
|
18
|
+
if (d = decorators[i]) {
|
|
19
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
18
23
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
24
|
}
|
|
20
|
-
function _ts_metadata(
|
|
21
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
25
|
+
function _ts_metadata(metadataKey, metadataValue) {
|
|
26
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
|
|
27
|
+
return Reflect.metadata(metadataKey, metadataValue);
|
|
28
|
+
}
|
|
22
29
|
}
|
|
23
30
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
31
|
/* eslint-disable react/no-set-state */ import { ErrorBoundary } from '@servicetitan/error-boundary';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.tsx"],"sourcesContent":["/* eslint-disable react/no-set-state */\nimport { ErrorBoundary } from '@servicetitan/error-boundary';\nimport { Log } from '@servicetitan/log-service';\nimport { injectDependency, optional } from '@servicetitan/react-ioc';\nimport { Component, ComponentType, FC, Fragment, Suspense, lazy } from 'react';\n\nexport interface LazyModuleParams<T extends ComponentType<any>> {\n loader: Loader<T>;\n name: string;\n loadingComponent?: ComponentType<any>;\n loadingErrorComponent?: ComponentType<LoadingErrorProps>;\n errorFallbackComponent?: ComponentType<any>;\n}\n\n// - Module -\n/**\n * Creates a lazy module wrapper, which renders\n * `loadingComponent` during loading\n * `loadingErrorComponent` when a loading error occurs\n * `errorFallbackComponent` when a component lifecycle error occurs\n */\nexport function lazyModule<T extends ComponentType<P>, P = any>({\n loader,\n name,\n loadingComponent: Loading = DefaultLoading,\n loadingErrorComponent: LoadingError = DefaultLoadingError,\n errorFallbackComponent,\n}: LazyModuleParams<T>): ComponentType<P> {\n class LazyModule extends Component<P> {\n static displayName = `lazyModule(${name})`;\n\n state = {\n hasError: false,\n };\n\n @optional()\n @injectDependency(Log)\n declare private logService?: Log;\n\n private Lazy = this.createLazy();\n\n render() {\n const { hasError } = this.state;\n\n return (\n <ErrorBoundary fallback={errorFallbackComponent} moduleName={name}>\n {hasError ? (\n <LoadingError onReload={this.onReload} />\n ) : (\n <Suspense fallback={<Loading />}>\n <this.Lazy {...this.props} />\n </Suspense>\n )}\n </ErrorBoundary>\n );\n }\n\n private onReload = () => {\n this.Lazy = this.createLazy();\n this.setState({ hasError: false });\n };\n\n private onError = (error: unknown) => {\n this.logService?.error({\n error,\n data: { Module: name },\n category: 'ModuleLoad',\n });\n };\n\n /**\n * Creates a onetime Lazy component with an error handler\n * (it needed to re-create the Lazy component, when a loading error has occurred)\n */\n private createLazy() {\n return lazy<T | typeof Empty>(async () => {\n try {\n return { default: await loader() };\n } catch (e) {\n this.onError(e);\n this.setState({ hasError: true });\n }\n return { default: Empty };\n });\n }\n }\n\n return LazyModule;\n}\n\nexport interface Loader<T extends ComponentType<any>> {\n (): Promise<T>;\n}\n\nexport const DefaultLoading: FC = () => <h2>Loading...</h2>;\n\nexport interface LoadingErrorProps {\n onReload: () => void;\n}\n\nexport const DefaultLoadingError: FC<LoadingErrorProps> = ({ onReload }) => (\n <Fragment>\n <h2>Cannot load module...</h2>\n <button onClick={onReload}>Reload</button>\n </Fragment>\n);\n\nconst Empty: FC<any> = () => null;\n"],"names":["ErrorBoundary","Log","injectDependency","optional","Component","Fragment","Suspense","lazy","lazyModule","loader","name","loadingComponent","Loading","DefaultLoading","loadingErrorComponent","LoadingError","DefaultLoadingError","errorFallbackComponent","LazyModule","render","hasError","state","fallback","moduleName","onReload","this","Lazy","props","createLazy","default","e","onError","setState","Empty","error","logService","data","Module","category","displayName","h2","button","onClick"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.tsx"],"sourcesContent":["/* eslint-disable react/no-set-state */\nimport { ErrorBoundary } from '@servicetitan/error-boundary';\nimport { Log } from '@servicetitan/log-service';\nimport { injectDependency, optional } from '@servicetitan/react-ioc';\nimport { Component, ComponentType, FC, Fragment, Suspense, lazy } from 'react';\n\nexport interface LazyModuleParams<T extends ComponentType<any>> {\n loader: Loader<T>;\n name: string;\n loadingComponent?: ComponentType<any>;\n loadingErrorComponent?: ComponentType<LoadingErrorProps>;\n errorFallbackComponent?: ComponentType<any>;\n}\n\n// - Module -\n/**\n * Creates a lazy module wrapper, which renders\n * `loadingComponent` during loading\n * `loadingErrorComponent` when a loading error occurs\n * `errorFallbackComponent` when a component lifecycle error occurs\n */\nexport function lazyModule<T extends ComponentType<P>, P = any>({\n loader,\n name,\n loadingComponent: Loading = DefaultLoading,\n loadingErrorComponent: LoadingError = DefaultLoadingError,\n errorFallbackComponent,\n}: LazyModuleParams<T>): ComponentType<P> {\n class LazyModule extends Component<P> {\n static displayName = `lazyModule(${name})`;\n\n state = {\n hasError: false,\n };\n\n @optional()\n @injectDependency(Log)\n declare private logService?: Log;\n\n private Lazy = this.createLazy();\n\n render() {\n const { hasError } = this.state;\n\n return (\n <ErrorBoundary fallback={errorFallbackComponent} moduleName={name}>\n {hasError ? (\n <LoadingError onReload={this.onReload} />\n ) : (\n <Suspense fallback={<Loading />}>\n <this.Lazy {...this.props} />\n </Suspense>\n )}\n </ErrorBoundary>\n );\n }\n\n private onReload = () => {\n this.Lazy = this.createLazy();\n this.setState({ hasError: false });\n };\n\n private onError = (error: unknown) => {\n this.logService?.error({\n error,\n data: { Module: name },\n category: 'ModuleLoad',\n });\n };\n\n /**\n * Creates a onetime Lazy component with an error handler\n * (it needed to re-create the Lazy component, when a loading error has occurred)\n */\n private createLazy() {\n return lazy<T | typeof Empty>(async () => {\n try {\n return { default: await loader() };\n } catch (e) {\n this.onError(e);\n this.setState({ hasError: true });\n }\n return { default: Empty };\n });\n }\n }\n\n return LazyModule;\n}\n\nexport interface Loader<T extends ComponentType<any>> {\n (): Promise<T>;\n}\n\nexport const DefaultLoading: FC = () => <h2>Loading...</h2>;\n\nexport interface LoadingErrorProps {\n onReload: () => void;\n}\n\nexport const DefaultLoadingError: FC<LoadingErrorProps> = ({ onReload }) => (\n <Fragment>\n <h2>Cannot load module...</h2>\n <button onClick={onReload}>Reload</button>\n </Fragment>\n);\n\nconst Empty: FC<any> = () => null;\n"],"names":["ErrorBoundary","Log","injectDependency","optional","Component","Fragment","Suspense","lazy","lazyModule","loader","name","loadingComponent","Loading","DefaultLoading","loadingErrorComponent","LoadingError","DefaultLoadingError","errorFallbackComponent","LazyModule","render","hasError","state","fallback","moduleName","onReload","this","Lazy","props","createLazy","default","e","onError","setState","Empty","error","logService","data","Module","category","displayName","h2","button","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAqC,GACrC,SAASA,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,GAAG,QAAQ,4BAA4B;AAChD,SAASC,gBAAgB,EAAEC,QAAQ,QAAQ,0BAA0B;AACrE,SAASC,SAAS,EAAqBC,QAAQ,EAAEC,QAAQ,EAAEC,IAAI,QAAQ,QAAQ;AAU/E,aAAa;AACb;;;;;CAKC,GACD,OAAO,SAASC,WAAgD,EAC5DC,MAAM,EACNC,IAAI,EACJC,kBAAkBC,UAAUC,cAAc,EAC1CC,uBAAuBC,eAAeC,mBAAmB,EACzDC,sBAAsB,EACJ;IAClB,MAAMC,mBAAmBd;QAarBe,SAAS;YACL,MAAM,EAAEC,QAAQ,EAAE,GAAG,IAAI,CAACC,KAAK;YAE/B,qBACI,KAACrB;gBAAcsB,UAAUL;gBAAwBM,YAAYb;0BACxDU,yBACG,KAACL;oBAAaS,UAAU,IAAI,CAACA,QAAQ;mCAErC,KAAClB;oBAASgB,wBAAU,KAACV;8BACjB,cAAA,KAACa,IAAI,CAACC,IAAI;wBAAE,GAAG,IAAI,CAACC,KAAK;;;;QAK7C;QAeA;;;SAGC,GACD,AAAQC,aAAa;YACjB,qBAAOrB,KAAuB;gBAC1B,IAAI;oBACA,OAAO;wBAAEsB,SAAS,MAAMpB;oBAAS;gBACrC,EAAE,OAAOqB,GAAG;oBACR,IAAI,CAACC,OAAO,CAACD;oBACb,IAAI,CAACE,QAAQ,CAAC;wBAAEZ,UAAU;oBAAK;gBACnC;gBACA,OAAO;oBAAES,SAASI;gBAAM;YAC5B;QACJ;;YAxDJ,gBAGIZ,uBAAAA,SAAQ;gBACJD,UAAU;YACd,IAMA,uBAAQM,QAAO,IAAI,CAACE,UAAU,KAkB9B,uBAAQJ,YAAW;gBACf,IAAI,CAACE,IAAI,GAAG,IAAI,CAACE,UAAU;gBAC3B,IAAI,CAACI,QAAQ,CAAC;oBAAEZ,UAAU;gBAAM;YACpC,IAEA,uBAAQW,WAAU,CAACG;oBACf;iBAAA,mBAAA,IAAI,CAACC,UAAU,cAAf,uCAAA,iBAAiBD,KAAK,CAAC;oBACnBA;oBACAE,MAAM;wBAAEC,QAAQ3B;oBAAK;oBACrB4B,UAAU;gBACd;YACJ;;IAiBJ;IAxDI,iBADEpB,YACKqB,eAAc,CAAC,WAAW,EAAE7B,KAAK,CAAC,CAAC;;;;;;IA0D9C,OAAOQ;AACX;AAMA,OAAO,MAAML,iBAAqB,kBAAM,KAAC2B;kBAAG;OAAgB;AAM5D,OAAO,MAAMxB,sBAA6C,CAAC,EAAEQ,QAAQ,EAAE,iBACnE,MAACnB;;0BACG,KAACmC;0BAAG;;0BACJ,KAACC;gBAAOC,SAASlB;0BAAU;;;OAEjC;AAEF,MAAMS,QAAiB,IAAM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/lazy-module",
|
|
3
|
-
"version": "38.
|
|
3
|
+
"version": "38.1.0",
|
|
4
4
|
"description": "Wrapper around React Suspense to enable module-level code splitting",
|
|
5
5
|
"homepage": "https://docs.st.dev/docs/frontend/uikit/lazy-module",
|
|
6
6
|
"repository": {
|
|
@@ -16,16 +16,16 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@servicetitan/error-boundary": "38.
|
|
20
|
-
"@servicetitan/log-service": "38.
|
|
21
|
-
"@servicetitan/react-ioc": "38.
|
|
19
|
+
"@servicetitan/error-boundary": "38.1.0",
|
|
20
|
+
"@servicetitan/log-service": "38.1.0",
|
|
21
|
+
"@servicetitan/react-ioc": "38.1.0",
|
|
22
22
|
"@types/react": "~18.3.3",
|
|
23
23
|
"react": "~18.3.1"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@servicetitan/error-boundary": "38.
|
|
27
|
-
"@servicetitan/log-service": "38.
|
|
28
|
-
"@servicetitan/react-ioc": "38.
|
|
26
|
+
"@servicetitan/error-boundary": "38.1.0",
|
|
27
|
+
"@servicetitan/log-service": "38.1.0",
|
|
28
|
+
"@servicetitan/react-ioc": "38.1.0",
|
|
29
29
|
"react": ">=17.0.2"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"cli": {
|
|
35
35
|
"webpack": false
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "e8c601a26ad49ca0d6b0b84a9f530f3242d53c7f"
|
|
38
38
|
}
|