@plyaz/core 1.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.
- package/README.md +439 -0
- package/dist/backend/featureFlags/feature-flag.controller.d.ts +135 -0
- package/dist/backend/featureFlags/feature-flag.controller.d.ts.map +1 -0
- package/dist/backend/featureFlags/feature-flag.module.d.ts +114 -0
- package/dist/backend/featureFlags/feature-flag.module.d.ts.map +1 -0
- package/dist/backend/featureFlags/feature-flag.repository.d.ts +85 -0
- package/dist/backend/featureFlags/feature-flag.repository.d.ts.map +1 -0
- package/dist/backend/featureFlags/feature-flag.service.d.ts +123 -0
- package/dist/backend/featureFlags/feature-flag.service.d.ts.map +1 -0
- package/dist/backend/featureFlags/index.d.ts +49 -0
- package/dist/backend/featureFlags/index.d.ts.map +1 -0
- package/dist/backend/index.d.ts +5 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/cache/index.d.ts +98 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/strategies/memory.d.ts +103 -0
- package/dist/cache/strategies/memory.d.ts.map +1 -0
- package/dist/cache/strategies/redis.d.ts +105 -0
- package/dist/cache/strategies/redis.d.ts.map +1 -0
- package/dist/domain/featureFlags/index.d.ts +49 -0
- package/dist/domain/featureFlags/index.d.ts.map +1 -0
- package/dist/domain/featureFlags/provider.d.ts +166 -0
- package/dist/domain/featureFlags/provider.d.ts.map +1 -0
- package/dist/domain/featureFlags/providers/api.d.ts +78 -0
- package/dist/domain/featureFlags/providers/api.d.ts.map +1 -0
- package/dist/domain/featureFlags/providers/database.d.ts +102 -0
- package/dist/domain/featureFlags/providers/database.d.ts.map +1 -0
- package/dist/domain/featureFlags/providers/factory.d.ts +116 -0
- package/dist/domain/featureFlags/providers/factory.d.ts.map +1 -0
- package/dist/domain/featureFlags/providers/file.d.ts +84 -0
- package/dist/domain/featureFlags/providers/file.d.ts.map +1 -0
- package/dist/domain/featureFlags/providers/memory.d.ts +179 -0
- package/dist/domain/featureFlags/providers/memory.d.ts.map +1 -0
- package/dist/domain/featureFlags/providers/redis.d.ts +80 -0
- package/dist/domain/featureFlags/providers/redis.d.ts.map +1 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/types.d.ts +18 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/engine/featureFlags/engine.d.ts +193 -0
- package/dist/engine/featureFlags/engine.d.ts.map +1 -0
- package/dist/engine/featureFlags/index.d.ts +10 -0
- package/dist/engine/featureFlags/index.d.ts.map +1 -0
- package/dist/engine/index.d.ts +5 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts +103 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlag.d.ts.map +1 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts +35 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlagActions.d.ts.map +1 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts +55 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlagHelpers.d.ts.map +1 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts +57 -0
- package/dist/frontend/featureFlags/hooks/useFeatureFlagProvider.d.ts.map +1 -0
- package/dist/frontend/featureFlags/index.d.ts +14 -0
- package/dist/frontend/featureFlags/index.d.ts.map +1 -0
- package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts +99 -0
- package/dist/frontend/featureFlags/providers/FeatureFlagProvider.d.ts.map +1 -0
- package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts +45 -0
- package/dist/frontend/featureFlags/providers/FeatureFlagProviderHelpers.d.ts.map +1 -0
- package/dist/frontend/index.d.ts +2 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/index.cjs +3951 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +3902 -0
- package/dist/index.mjs.map +1 -0
- package/dist/utils/common/hash.d.ts +81 -0
- package/dist/utils/common/hash.d.ts.map +1 -0
- package/dist/utils/common/index.d.ts +11 -0
- package/dist/utils/common/index.d.ts.map +1 -0
- package/dist/utils/common/values.d.ts +48 -0
- package/dist/utils/common/values.d.ts.map +1 -0
- package/dist/utils/featureFlags/conditions.d.ts +114 -0
- package/dist/utils/featureFlags/conditions.d.ts.map +1 -0
- package/dist/utils/featureFlags/context.d.ts +241 -0
- package/dist/utils/featureFlags/context.d.ts.map +1 -0
- package/dist/utils/featureFlags/index.d.ts +11 -0
- package/dist/utils/featureFlags/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/package.json +144 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Flag Hook Helpers
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for feature flag hooks to reduce function complexity.
|
|
5
|
+
*
|
|
6
|
+
* @fileoverview Helper functions for feature flag hooks
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
import type * as React from 'react';
|
|
10
|
+
import type { FeatureFlagValue, FeatureFlagContext, FeatureFlagHook, FeatureFlagProvider, FeatureFlagState } from '@plyaz/types';
|
|
11
|
+
/**
|
|
12
|
+
* Creates evaluation function for a feature flag.
|
|
13
|
+
*
|
|
14
|
+
* @template FeatureFlagKey - The type of feature flag keys
|
|
15
|
+
* @template T - The expected type of the flag value
|
|
16
|
+
* @param params - Evaluation parameters
|
|
17
|
+
* @param params.provider - Feature flag provider instance
|
|
18
|
+
* @param params.key - Feature flag key to evaluate
|
|
19
|
+
* @param params.context - Optional evaluation context
|
|
20
|
+
* @param params.defaultValue - Default value if evaluation fails
|
|
21
|
+
* @param setState - React state setter for flag state
|
|
22
|
+
* @returns Async function that evaluates the flag
|
|
23
|
+
*/
|
|
24
|
+
export declare function createEvaluationFunction<FeatureFlagKey extends string, T extends FeatureFlagValue = string | number | boolean | Record<string, unknown>>(params: {
|
|
25
|
+
provider: FeatureFlagProvider<FeatureFlagKey> | null;
|
|
26
|
+
key: FeatureFlagKey;
|
|
27
|
+
context: FeatureFlagContext | undefined;
|
|
28
|
+
defaultValue: T | undefined;
|
|
29
|
+
}, setState: React.Dispatch<React.SetStateAction<FeatureFlagState<FeatureFlagKey, T>>>): () => Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Custom hook for managing feature flag evaluation logic.
|
|
32
|
+
* Handles loading state, error management, and automatic evaluation.
|
|
33
|
+
*
|
|
34
|
+
* @template FeatureFlagKey - The type of feature flag keys
|
|
35
|
+
* @template T - The expected type of the flag value
|
|
36
|
+
* @param key - Feature flag key to evaluate
|
|
37
|
+
* @param context - Optional evaluation context
|
|
38
|
+
* @param defaultValue - Default value if evaluation fails
|
|
39
|
+
* @param provider - Feature flag provider instance
|
|
40
|
+
* @returns Feature flag hook state with value, loading, error, and refresh function
|
|
41
|
+
*/
|
|
42
|
+
export declare function useFeatureFlagEvaluation<FeatureFlagKey extends string, T extends FeatureFlagValue = boolean>(key: FeatureFlagKey, context: FeatureFlagContext | undefined, defaultValue: T | undefined, provider: FeatureFlagProvider<FeatureFlagKey> | null): FeatureFlagHook<T>;
|
|
43
|
+
/**
|
|
44
|
+
* Custom hook for managing multiple feature flags evaluation.
|
|
45
|
+
* Returns a record of flag states for multiple flags.
|
|
46
|
+
*
|
|
47
|
+
* @template FeatureFlagKey - The type of feature flag keys
|
|
48
|
+
* @param keys - Array of feature flag keys to evaluate
|
|
49
|
+
* @param context - Optional evaluation context
|
|
50
|
+
* @param defaultValue - Default value for all flags if evaluation fails
|
|
51
|
+
* @param provider - Feature flag provider instance
|
|
52
|
+
* @returns Record mapping flag keys to their hook states
|
|
53
|
+
*/
|
|
54
|
+
export declare function useMultipleFeatureFlagsEvaluation<FeatureFlagKey extends string>(keys: FeatureFlagKey[], context: FeatureFlagContext | undefined, defaultValue: FeatureFlagValue, provider: FeatureFlagProvider<FeatureFlagKey> | null): Record<string, FeatureFlagHook<FeatureFlagValue>>;
|
|
55
|
+
//# sourceMappingURL=useFeatureFlagHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeatureFlagHelpers.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/hooks/useFeatureFlagHelpers.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,SAAS,MAAM,EAC7B,CAAC,SAAS,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAEhF,MAAM,EAAE;IACN,QAAQ,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACrD,GAAG,EAAE,cAAc,CAAC;IACpB,OAAO,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACxC,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;CAC7B,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,GAClF,MAAM,OAAO,CAAC,IAAI,CAAC,CA0BrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,SAAS,MAAM,EAC7B,CAAC,SAAS,gBAAgB,GAAG,OAAO,EAEpC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,YAAY,EAAE,CAAC,GAAG,SAAS,EAC3B,QAAQ,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,GACnD,eAAe,CAAC,CAAC,CAAC,CA+BpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,cAAc,SAAS,MAAM,EAC7E,IAAI,EAAE,cAAc,EAAE,EACtB,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,GACnD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,CA6InD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useFeatureFlagProvider Hook
|
|
3
|
+
*
|
|
4
|
+
* React hook for accessing the feature flag provider from context.
|
|
5
|
+
* This will be moved to @plyaz/core when the package structure is finalized.
|
|
6
|
+
*
|
|
7
|
+
* @fileoverview Provider access hook for feature flags
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import type { FeatureFlagProvider } from '@plyaz/types';
|
|
11
|
+
/**
|
|
12
|
+
* Hook for accessing the feature flag provider from React context.
|
|
13
|
+
* Must be used within a FeatureFlagProvider component.
|
|
14
|
+
*
|
|
15
|
+
* @returns Feature flag provider instance
|
|
16
|
+
* @throws Error if used outside of FeatureFlagProvider
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* function MyComponent() {
|
|
21
|
+
* const provider = useFeatureFlagProvider<FeatureFlagKey>();
|
|
22
|
+
*
|
|
23
|
+
* const handleRefresh = async () => {
|
|
24
|
+
* await provider.refresh();
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* return <button onClick={handleRefresh}>Refresh Flags</button>;
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function useFeatureFlagProvider<FeatureFlagKey extends string>(): FeatureFlagProvider<FeatureFlagKey>;
|
|
32
|
+
/**
|
|
33
|
+
* Hook for accessing the feature flag provider status.
|
|
34
|
+
* Provides information about provider initialization and health.
|
|
35
|
+
*
|
|
36
|
+
* @returns Provider status information
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* function StatusComponent() {
|
|
41
|
+
* const { isInitialized, isLoading, error } = useFeatureFlagProviderStatus<FeatureFlagKey>();
|
|
42
|
+
*
|
|
43
|
+
* if (isLoading) return <div>Loading feature flags...</div>;
|
|
44
|
+
* if (error) return <div>Error: {error.message}</div>;
|
|
45
|
+
* if (!isInitialized) return <div>Initializing...</div>;
|
|
46
|
+
*
|
|
47
|
+
* return <div>Feature flags ready!</div>;
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function useFeatureFlagProviderStatus<FeatureFlagKey extends string>(): {
|
|
52
|
+
isInitialized: boolean;
|
|
53
|
+
isLoading: boolean;
|
|
54
|
+
error: Error | null;
|
|
55
|
+
lastUpdated: Date | null;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=useFeatureFlagProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeatureFlagProvider.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/hooks/useFeatureFlagProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAA2B,MAAM,cAAc,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,SAAS,MAAM,KAC1B,mBAAmB,CAAC,cAAc,CAAC,CAWvC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,4BAA4B,CAAC,cAAc,SAAS,MAAM,KAAK;IAC7E,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B,CAgBA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frontend Feature Flags - Main Exports
|
|
3
|
+
*
|
|
4
|
+
* React-specific exports for feature flag integration.
|
|
5
|
+
* This will be moved to @plyaz/core when the package structure is finalized.
|
|
6
|
+
*
|
|
7
|
+
* @fileoverview Frontend feature flags exports
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
export { FeatureFlagContext, FeatureFlagAppProvider, createFeatureFlagProvider, } from './providers/FeatureFlagProvider';
|
|
11
|
+
export { useFeatureFlag, useFeatureFlagEnabled, useFeatureFlagValue, useMultipleFeatureFlags, } from './hooks/useFeatureFlag';
|
|
12
|
+
export { useFeatureFlagProvider, useFeatureFlagProviderStatus, } from './hooks/useFeatureFlagProvider';
|
|
13
|
+
export { useFeatureFlagHelpers } from './hooks/useFeatureFlagActions';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/frontend/featureFlags/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Flag Provider Component
|
|
3
|
+
*
|
|
4
|
+
* React context provider for feature flags system.
|
|
5
|
+
* This will be moved to @plyaz/core when the package structure is finalized.
|
|
6
|
+
*
|
|
7
|
+
* @fileoverview React provider for feature flag context
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import type { FeatureFlagConfig, FeatureFlagContextValue, FeatureFlagProviderProps, FeatureFlagValue } from '@plyaz/types';
|
|
12
|
+
import type { FeatureFlagKey } from '@domain/types';
|
|
13
|
+
/**
|
|
14
|
+
* React context for feature flag provider.
|
|
15
|
+
* Using string as the base type to support any feature flag key.
|
|
16
|
+
*/
|
|
17
|
+
export declare const FeatureFlagContext: React.Context<FeatureFlagContextValue<"AUTH_GOOGLE" | "AUTH_DISCORD" | "AUTH_FACEBOOK" | "AUTH_GITHUB"> | null>;
|
|
18
|
+
/**
|
|
19
|
+
* Feature Flag Provider component that manages the feature flag system.
|
|
20
|
+
* Provides context for accessing feature flags throughout the React component tree.
|
|
21
|
+
*
|
|
22
|
+
* @param props - Provider configuration and options
|
|
23
|
+
* @returns JSX element providing feature flag context
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // Basic usage
|
|
28
|
+
* function App() {
|
|
29
|
+
* return (
|
|
30
|
+
* <FeatureFlagAppProvider
|
|
31
|
+
* config={{
|
|
32
|
+
* provider: 'memory',
|
|
33
|
+
* isCacheEnabled: true,
|
|
34
|
+
* cacheTtl: 300,
|
|
35
|
+
* }}
|
|
36
|
+
* features={FEATURES}
|
|
37
|
+
* >
|
|
38
|
+
* <MyApplication />
|
|
39
|
+
* </FeatureFlagAppProvider>
|
|
40
|
+
* );
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* // With custom context and callbacks
|
|
44
|
+
* function App() {
|
|
45
|
+
* const featureFlagConfig = {
|
|
46
|
+
* provider: 'api' as const,
|
|
47
|
+
* apiEndpoint: 'https://api.example.com',
|
|
48
|
+
* apiKey: process.env.REACT_APP_FF_API_KEY,
|
|
49
|
+
* isCacheEnabled: true,
|
|
50
|
+
* cacheTtl: 300,
|
|
51
|
+
* };
|
|
52
|
+
*
|
|
53
|
+
* const defaultContext = {
|
|
54
|
+
* environment: 'production' as const,
|
|
55
|
+
* userId: getCurrentUserId(),
|
|
56
|
+
* userRole: getCurrentUserRole(),
|
|
57
|
+
* };
|
|
58
|
+
*
|
|
59
|
+
* return (
|
|
60
|
+
* <FeatureFlagAppProvider
|
|
61
|
+
* config={featureFlagConfig}
|
|
62
|
+
* features={FEATURES}
|
|
63
|
+
* defaultContext={defaultContext}
|
|
64
|
+
* onReady={(provider) => console.log('Feature flags ready!')}
|
|
65
|
+
* onError={(error) => console.error('Feature flag error:', error)}
|
|
66
|
+
* showLoading
|
|
67
|
+
* >
|
|
68
|
+
* <MyApplication />
|
|
69
|
+
* </FeatureFlagAppProvider>
|
|
70
|
+
* );
|
|
71
|
+
* }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function FeatureFlagAppProvider<FeatureFlags extends Record<FeatureFlagKey, FeatureFlagValue>>({ config, children, features, onReady, onError, isShowLoading, loadingComponent, errorComponent, }: FeatureFlagProviderProps<FeatureFlagKey, FeatureFlags>): React.ReactElement;
|
|
75
|
+
export declare namespace FeatureFlagAppProvider {
|
|
76
|
+
var displayName: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Higher-order component for providing feature flag context.
|
|
80
|
+
* Alternative to using the FeatureFlagAppProvider component directly.
|
|
81
|
+
*
|
|
82
|
+
* @param config - Feature flag configuration
|
|
83
|
+
* @param options - Additional provider options
|
|
84
|
+
* @returns HOC function that wraps components with feature flag provider
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const withFeatureFlags = createFeatureFlagProvider({
|
|
89
|
+
* provider: 'memory',
|
|
90
|
+
* isCacheEnabled: true,
|
|
91
|
+
* }, {
|
|
92
|
+
* features: FEATURES
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
95
|
+
* const AppWithFeatureFlags = withFeatureFlags(App);
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
export declare function createFeatureFlagProvider<FeatureFlags extends Record<FeatureFlagKey, FeatureFlagValue>>(config: FeatureFlagConfig<FeatureFlagKey>, options?: Pick<FeatureFlagProviderProps<FeatureFlagKey, FeatureFlags>, 'defaultContext' | 'onReady' | 'onError' | 'features'>): <P extends object>(component: React.ComponentType<P>) => React.ComponentType<P>;
|
|
99
|
+
//# sourceMappingURL=FeatureFlagProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureFlagProvider.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/providers/FeatureFlagProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAEV,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iHAE9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,wBAAgB,sBAAsB,CACpC,YAAY,SAAS,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAC7D,EACA,MAAM,EAEN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,aAAqB,EACrB,gBAAgB,EAChB,cAAc,GACf,EAAE,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CA0J7E;yBAtKe,sBAAsB;;;AA2KtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,SAAS,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAE7D,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACzC,OAAO,CAAC,EAAE,IAAI,CACZ,wBAAwB,CAAC,cAAc,EAAE,YAAY,CAAC,EACtD,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CACtD,IAEgC,CAAC,SAAS,MAAM,EAC/C,WAAW,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAChC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAe1B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feature Flag Provider Helpers
|
|
3
|
+
*
|
|
4
|
+
* Helper functions for the FeatureFlagProvider component to reduce complexity.
|
|
5
|
+
*
|
|
6
|
+
* @fileoverview Helper functions for FeatureFlagProvider
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import type { FeatureFlagProvider as IFeatureFlagProvider, FeatureFlagConfig } from '@plyaz/types';
|
|
11
|
+
/**
|
|
12
|
+
* Provider state interface.
|
|
13
|
+
*/
|
|
14
|
+
export interface ProviderState<FeatureFlagKey extends string> {
|
|
15
|
+
provider: IFeatureFlagProvider<FeatureFlagKey> | null;
|
|
16
|
+
isInitialized: boolean;
|
|
17
|
+
isLoading: boolean;
|
|
18
|
+
error: Error | null;
|
|
19
|
+
lastUpdated: Date | null;
|
|
20
|
+
}
|
|
21
|
+
export interface UseFeatureFlagProviderState<FeatureFlagKey extends string> {
|
|
22
|
+
state: ProviderState<FeatureFlagKey>;
|
|
23
|
+
setState: React.Dispatch<React.SetStateAction<ProviderState<FeatureFlagKey>>>;
|
|
24
|
+
initializeProvider: () => Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Hook for managing feature flag provider state and initialization.
|
|
28
|
+
*/
|
|
29
|
+
export declare function useFeatureFlagProviderState<FeatureFlagKey extends string>(config: FeatureFlagConfig<FeatureFlagKey>, onReady?: () => void, onError?: (error: Error) => void): UseFeatureFlagProviderState<FeatureFlagKey>;
|
|
30
|
+
/**
|
|
31
|
+
* Hook for setting up provider subscription and cleanup.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useProviderSubscription<FeatureFlagKey extends string>(state: ProviderState<FeatureFlagKey>, setState: React.Dispatch<React.SetStateAction<ProviderState<FeatureFlagKey>>>): void;
|
|
34
|
+
/**
|
|
35
|
+
* Renders loading state component.
|
|
36
|
+
*/
|
|
37
|
+
export declare function renderLoadingState(isShowLoading: boolean, isLoading: boolean, loadingComponent?: React.ComponentType): React.ReactElement | null;
|
|
38
|
+
/**
|
|
39
|
+
* Renders error state component.
|
|
40
|
+
*/
|
|
41
|
+
export declare function renderErrorState(error: Error | null, errorComponent?: React.ComponentType<{
|
|
42
|
+
error: Error;
|
|
43
|
+
retry: () => void;
|
|
44
|
+
}>, retry?: () => void): React.ReactElement | null;
|
|
45
|
+
//# sourceMappingURL=FeatureFlagProviderHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureFlagProviderHelpers.d.ts","sourceRoot":"","sources":["../../../../src/frontend/featureFlags/providers/FeatureFlagProviderHelpers.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,IAAI,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAInG;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,cAAc,SAAS,MAAM;IAC1D,QAAQ,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACtD,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B,CAAC,cAAc,SAAS,MAAM;IACxE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9E,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,SAAS,MAAM,EACvE,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACzC,OAAO,CAAC,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,2BAA2B,CAAC,cAAc,CAAC,CA8C7C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,SAAS,MAAM,EACnE,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,GAC5E,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,KAAK,CAAC,aAAa,GACrC,KAAK,CAAC,YAAY,GAAG,IAAI,CAW3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,EACzE,KAAK,CAAC,EAAE,MAAM,IAAI,GACjB,KAAK,CAAC,YAAY,GAAG,IAAI,CAO3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontend/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|