@servicetitan/lazy-module 33.1.0 → 34.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAuC,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM/E,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACzD,sBAAsB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC/C;AAGD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAC5D,MAAM,EACN,IAAI,EACJ,gBAAgB,EAAE,OAAwB,EAC1C,qBAAqB,EAAE,YAAkC,EACzD,sBAAsB,GACzB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CA6DxC;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,EAA8B,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,iBAAiB,CAKrD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,aAAa,EAAE,EAAE,EAA4B,MAAM,OAAO,CAAC;AAE/E,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACzD,sBAAsB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC/C;AAGD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAC5D,MAAM,EACN,IAAI,EACJ,gBAAgB,EAAE,OAAwB,EAC1C,qBAAqB,EAAE,YAAkC,EACzD,sBAAsB,GACzB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CA6DxC;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC;IAChD,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,EAA8B,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,iBAAiB,CAKrD,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /* eslint-disable react/no-set-state */ function _define_property(obj, key, value) {
1
+ function _define_property(obj, key, value) {
2
2
  if (key in obj) {
3
3
  Object.defineProperty(obj, key, {
4
4
  value: value,
@@ -21,10 +21,10 @@ function _ts_metadata(k, v) {
21
21
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
22
22
  }
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
- import { Component, Suspense, lazy, Fragment } from 'react';
25
- import { injectDependency, optional } from '@servicetitan/react-ioc';
26
- import { ErrorBoundary } from '@servicetitan/error-boundary';
24
+ /* eslint-disable react/no-set-state */ import { ErrorBoundary } from '@servicetitan/error-boundary';
27
25
  import { Log } from '@servicetitan/log-service';
26
+ import { injectDependency, optional } from '@servicetitan/react-ioc';
27
+ import { Component, Fragment, Suspense, lazy } from 'react';
28
28
  // - Module -
29
29
  /**
30
30
  * Creates a lazy module wrapper, which renders
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"sourcesContent":["/* eslint-disable react/no-set-state */\nimport { Component, Suspense, lazy, Fragment, ComponentType, FC } from 'react';\nimport { injectDependency, optional } from '@servicetitan/react-ioc';\n\nimport { ErrorBoundary } from '@servicetitan/error-boundary';\nimport { Log } from '@servicetitan/log-service';\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":["Component","Suspense","lazy","Fragment","injectDependency","optional","ErrorBoundary","Log","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;;;;;;;;;;;;;;;;;;;;;;;AACrC,SAASA,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,QAAQ,QAA2B,QAAQ;AAC/E,SAASC,gBAAgB,EAAEC,QAAQ,QAAQ,0BAA0B;AAErE,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,GAAG,QAAQ,4BAA4B;AAUhD,aAAa;AACb;;;;;CAKC,GACD,OAAO,SAASC,WAAgD,EAC5DC,MAAM,EACNC,IAAI,EACJC,kBAAkBC,UAAUC,cAAc,EAC1CC,uBAAuBC,eAAeC,mBAAmB,EACzDC,sBAAsB,EACJ;IAClB,MAAMC,mBAAmBlB;QAarBmB,SAAS;YACL,MAAM,EAAEC,QAAQ,EAAE,GAAG,IAAI,CAACC,KAAK;YAE/B,qBACI,KAACf;gBAAcgB,UAAUL;gBAAwBM,YAAYb;0BACxDU,yBACG,KAACL;oBAAaS,UAAU,IAAI,CAACA,QAAQ;mCAErC,KAACvB;oBAASqB,wBAAU,KAACV;8BACjB,cAAA,KAACa,IAAI,CAACC,IAAI;wBAAE,GAAG,IAAI,CAACC,KAAK;;;;QAK7C;QAeA;;;SAGC,GACD,AAAQC,aAAa;YACjB,qBAAO1B,KAAuB;gBAC1B,IAAI;oBACA,OAAO;wBAAE2B,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,MAACrB;;0BACG,KAACqC;0BAAG;;0BACJ,KAACC;gBAAOC,SAASlB;0BAAU;;;OAEjC;AAEF,MAAMS,QAAiB,IAAM"}
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,8 +1,8 @@
1
1
  {
2
2
  "name": "@servicetitan/lazy-module",
3
- "version": "33.1.0",
4
- "description": "",
5
- "homepage": "https://docs.st.dev/docs/frontend/lazy-module",
3
+ "version": "34.0.0",
4
+ "description": "Wrapper around React Suspense to enable module-level code splitting",
5
+ "homepage": "https://docs.st.dev/docs/frontend/uikit/lazy-module",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/servicetitan/uikit.git",
@@ -16,16 +16,16 @@
16
16
  "src"
17
17
  ],
18
18
  "devDependencies": {
19
- "@servicetitan/error-boundary": "33.1.0",
20
- "@servicetitan/log-service": "33.1.0",
21
- "@servicetitan/react-ioc": "33.1.0",
19
+ "@servicetitan/error-boundary": "34.0.0",
20
+ "@servicetitan/log-service": "34.0.0",
21
+ "@servicetitan/react-ioc": "34.0.0",
22
22
  "@types/react": "~18.3.3",
23
23
  "react": "~18.3.1"
24
24
  },
25
25
  "peerDependencies": {
26
- "@servicetitan/error-boundary": "33.1.0",
27
- "@servicetitan/log-service": "33.1.0",
28
- "@servicetitan/react-ioc": "33.1.0",
26
+ "@servicetitan/error-boundary": "34.0.0",
27
+ "@servicetitan/log-service": "34.0.0",
28
+ "@servicetitan/react-ioc": "34.0.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": "126948560bcb684f276373beb7ce45faac94205c"
37
+ "gitHead": "e193dc22703963f67099874a24de535d0696b6e2"
38
38
  }
package/src/index.tsx CHANGED
@@ -1,9 +1,8 @@
1
1
  /* eslint-disable react/no-set-state */
2
- import { Component, Suspense, lazy, Fragment, ComponentType, FC } from 'react';
3
- import { injectDependency, optional } from '@servicetitan/react-ioc';
4
-
5
2
  import { ErrorBoundary } from '@servicetitan/error-boundary';
6
3
  import { Log } from '@servicetitan/log-service';
4
+ import { injectDependency, optional } from '@servicetitan/react-ioc';
5
+ import { Component, ComponentType, FC, Fragment, Suspense, lazy } from 'react';
7
6
 
8
7
  export interface LazyModuleParams<T extends ComponentType<any>> {
9
8
  loader: Loader<T>;