@equinor/fusion-framework-react 8.0.0-next.0 → 8.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.
Files changed (103) hide show
  1. package/CHANGELOG.md +48 -12
  2. package/README.md +164 -31
  3. package/dist/esm/Framework.js +32 -0
  4. package/dist/esm/Framework.js.map +1 -1
  5. package/dist/esm/app/index.js.map +1 -1
  6. package/dist/esm/app/useAppProvider.js +11 -2
  7. package/dist/esm/app/useAppProvider.js.map +1 -1
  8. package/dist/esm/app/useApps.js +17 -3
  9. package/dist/esm/app/useApps.js.map +1 -1
  10. package/dist/esm/app/useCurrentApp.js +25 -4
  11. package/dist/esm/app/useCurrentApp.js.map +1 -1
  12. package/dist/esm/app/useCurrentAppModule.js +13 -7
  13. package/dist/esm/app/useCurrentAppModule.js.map +1 -1
  14. package/dist/esm/app/useCurrentAppModules.js +14 -4
  15. package/dist/esm/app/useCurrentAppModules.js.map +1 -1
  16. package/dist/esm/context/index.js +10 -0
  17. package/dist/esm/context/index.js.map +1 -1
  18. package/dist/esm/context/useCurrentContext.js +16 -0
  19. package/dist/esm/context/useCurrentContext.js.map +1 -1
  20. package/dist/esm/context.js +9 -0
  21. package/dist/esm/context.js.map +1 -1
  22. package/dist/esm/create-framework-provider.js +29 -8
  23. package/dist/esm/create-framework-provider.js.map +1 -1
  24. package/dist/esm/feature-flag/index.js +10 -0
  25. package/dist/esm/feature-flag/index.js.map +1 -1
  26. package/dist/esm/feature-flag/useCurrentAppFeatures.js +12 -2
  27. package/dist/esm/feature-flag/useCurrentAppFeatures.js.map +1 -1
  28. package/dist/esm/feature-flag/useFeature.js +12 -5
  29. package/dist/esm/feature-flag/useFeature.js.map +1 -1
  30. package/dist/esm/feature-flag/useFeatures.js +14 -5
  31. package/dist/esm/feature-flag/useFeatures.js.map +1 -1
  32. package/dist/esm/feature-flag/useFrameworkFeature.js +12 -5
  33. package/dist/esm/feature-flag/useFrameworkFeature.js.map +1 -1
  34. package/dist/esm/feature-flag/useFrameworkFeatures.js +11 -4
  35. package/dist/esm/feature-flag/useFrameworkFeatures.js.map +1 -1
  36. package/dist/esm/hooks/index.js +8 -0
  37. package/dist/esm/hooks/index.js.map +1 -1
  38. package/dist/esm/hooks/use-current-user.js +14 -0
  39. package/dist/esm/hooks/use-current-user.js.map +1 -1
  40. package/dist/esm/hooks/use-http-client.js +13 -0
  41. package/dist/esm/hooks/use-http-client.js.map +1 -1
  42. package/dist/esm/http/index.js +10 -0
  43. package/dist/esm/http/index.js.map +1 -1
  44. package/dist/esm/index.js +8 -0
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/useFramework.js +16 -4
  47. package/dist/esm/useFramework.js.map +1 -1
  48. package/dist/esm/useFrameworkModule.js +13 -6
  49. package/dist/esm/useFrameworkModule.js.map +1 -1
  50. package/dist/esm/version.js +1 -1
  51. package/dist/esm/version.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/dist/types/Framework.d.ts +37 -0
  54. package/dist/types/app/index.d.ts +10 -0
  55. package/dist/types/app/useAppProvider.d.ts +11 -2
  56. package/dist/types/app/useApps.d.ts +17 -3
  57. package/dist/types/app/useCurrentApp.d.ts +25 -4
  58. package/dist/types/app/useCurrentAppModule.d.ts +13 -7
  59. package/dist/types/app/useCurrentAppModules.d.ts +14 -4
  60. package/dist/types/context/index.d.ts +10 -0
  61. package/dist/types/context/useCurrentContext.d.ts +16 -0
  62. package/dist/types/context.d.ts +0 -1
  63. package/dist/types/create-framework-provider.d.ts +29 -8
  64. package/dist/types/feature-flag/index.d.ts +10 -0
  65. package/dist/types/feature-flag/useCurrentAppFeatures.d.ts +12 -2
  66. package/dist/types/feature-flag/useFeature.d.ts +23 -6
  67. package/dist/types/feature-flag/useFeatures.d.ts +23 -6
  68. package/dist/types/feature-flag/useFrameworkFeature.d.ts +12 -5
  69. package/dist/types/feature-flag/useFrameworkFeatures.d.ts +11 -4
  70. package/dist/types/hooks/index.d.ts +8 -0
  71. package/dist/types/hooks/use-current-user.d.ts +14 -0
  72. package/dist/types/hooks/use-http-client.d.ts +15 -0
  73. package/dist/types/http/index.d.ts +10 -0
  74. package/dist/types/index.d.ts +8 -0
  75. package/dist/types/useFramework.d.ts +16 -4
  76. package/dist/types/useFrameworkModule.d.ts +13 -6
  77. package/dist/types/version.d.ts +1 -1
  78. package/package.json +15 -14
  79. package/src/Framework.tsx +37 -0
  80. package/src/app/index.ts +10 -0
  81. package/src/app/useAppProvider.ts +11 -2
  82. package/src/app/useApps.ts +17 -3
  83. package/src/app/useCurrentApp.ts +25 -4
  84. package/src/app/useCurrentAppModule.ts +13 -7
  85. package/src/app/useCurrentAppModules.ts +14 -4
  86. package/src/context/index.ts +10 -0
  87. package/src/context/useCurrentContext.ts +16 -0
  88. package/src/context.ts +9 -0
  89. package/src/create-framework-provider.tsx +29 -8
  90. package/src/feature-flag/index.ts +10 -0
  91. package/src/feature-flag/useCurrentAppFeatures.ts +12 -2
  92. package/src/feature-flag/useFeature.ts +23 -6
  93. package/src/feature-flag/useFeatures.ts +23 -6
  94. package/src/feature-flag/useFrameworkFeature.ts +12 -5
  95. package/src/feature-flag/useFrameworkFeatures.ts +11 -4
  96. package/src/hooks/index.ts +8 -0
  97. package/src/hooks/use-current-user.ts +14 -0
  98. package/src/hooks/use-http-client.ts +16 -0
  99. package/src/http/index.ts +10 -0
  100. package/src/index.tsx +8 -0
  101. package/src/useFramework.ts +16 -4
  102. package/src/useFrameworkModule.ts +13 -6
  103. package/src/version.ts +1 -1
@@ -4,12 +4,24 @@ import type { AnyModule } from '@equinor/fusion-framework-module';
4
4
  import { useContext } from 'react';
5
5
  import { context } from './context';
6
6
  /**
7
+ * React hook that returns the current Fusion Framework instance from context.
8
+ *
9
+ * @remarks
10
+ * The hook first looks for a framework instance provided via
11
+ * {@link FrameworkProvider}. If none is found it falls back to the global
12
+ * `window.Fusion` object. A console warning / error is emitted when the
13
+ * framework cannot be resolved.
14
+ *
15
+ * @template TModules - Tuple of additional module types expected on the
16
+ * framework instance (used for type-narrowing only).
17
+ * @returns The active {@link Fusion} instance.
18
+ *
7
19
  * @example
8
20
  * ```ts
9
- * const useSometing = () => {
10
- * const fusion = useFramework();
11
- * return fusion.something;
12
- * }
21
+ * const useMyService = () => {
22
+ * const fusion = useFramework();
23
+ * return fusion.modules.http.createClient('my-service');
24
+ * };
13
25
  * ```
14
26
  */
15
27
  export const useFramework = <TModules extends Array<AnyModule> = []>(): Fusion<TModules> => {
@@ -8,13 +8,20 @@ import type {
8
8
  } from '@equinor/fusion-framework-module';
9
9
 
10
10
  /**
11
- * Retrieves a module from the framework instance based on its name.
11
+ * React hook that retrieves a module from the Fusion Framework by name.
12
12
  *
13
- * @template TType - The type of the module to retrieve.
14
- * @template TKey - The type of the module name.
15
- * @param name - The name of the module to retrieve.
16
- * @returns The requested module from the framework instance.
17
- * @throws Error if the requested module is not included in the framework instance.
13
+ * @template TType - The expected module type (used for type-narrowing).
14
+ * @template TKey - The module key string.
15
+ * @param name - The registered name of the module to retrieve.
16
+ * @returns The resolved module instance, or `undefined` if the module is
17
+ * not registered.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import type { HttpModule } from '@equinor/fusion-framework-module-http';
22
+ *
23
+ * const http = useFrameworkModule<HttpModule>('http');
24
+ * ```
18
25
  */
19
26
  export const useFrameworkModule = <
20
27
  TType extends AnyModule | unknown = unknown,
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '8.0.0-next.0';
2
+ export const version = '8.0.0';