@scalemule/nextjs 0.0.10 → 0.0.11
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 +21 -3
- package/dist/index.mjs +21 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2851,7 +2851,7 @@ function useFeatureFlags(options = {}) {
|
|
|
2851
2851
|
keys,
|
|
2852
2852
|
enabled = true
|
|
2853
2853
|
} = options;
|
|
2854
|
-
const { client } = useScaleMule();
|
|
2854
|
+
const { client, publishableKey, gatewayUrl } = useScaleMule();
|
|
2855
2855
|
const [flags, setFlags] = react.useState({});
|
|
2856
2856
|
const [loading, setLoading] = react.useState(enabled);
|
|
2857
2857
|
const [error, setError] = react.useState(null);
|
|
@@ -2868,7 +2868,25 @@ function useFeatureFlags(options = {}) {
|
|
|
2868
2868
|
setLoading(true);
|
|
2869
2869
|
try {
|
|
2870
2870
|
const payload = keys && keys.length > 0 ? { flag_keys: keys, environment, context: contextRef.current } : { environment, context: contextRef.current };
|
|
2871
|
-
const
|
|
2871
|
+
const endpoint = keys && keys.length > 0 ? "/v1/flags/evaluate/batch" : "/v1/flags/evaluate/all";
|
|
2872
|
+
let result;
|
|
2873
|
+
if (publishableKey && gatewayUrl) {
|
|
2874
|
+
const response = await fetch(`${gatewayUrl}${endpoint}`, {
|
|
2875
|
+
method: "POST",
|
|
2876
|
+
headers: {
|
|
2877
|
+
"Content-Type": "application/json",
|
|
2878
|
+
"x-api-key": publishableKey
|
|
2879
|
+
},
|
|
2880
|
+
body: JSON.stringify(payload)
|
|
2881
|
+
});
|
|
2882
|
+
if (!response.ok) {
|
|
2883
|
+
throw new Error(`Flag evaluation failed: ${response.status}`);
|
|
2884
|
+
}
|
|
2885
|
+
const json = await response.json();
|
|
2886
|
+
result = json.data || json || {};
|
|
2887
|
+
} else {
|
|
2888
|
+
result = await client.post(endpoint, payload);
|
|
2889
|
+
}
|
|
2872
2890
|
setFlags(result || {});
|
|
2873
2891
|
setError(null);
|
|
2874
2892
|
} catch (err) {
|
|
@@ -2876,7 +2894,7 @@ function useFeatureFlags(options = {}) {
|
|
|
2876
2894
|
} finally {
|
|
2877
2895
|
setLoading(false);
|
|
2878
2896
|
}
|
|
2879
|
-
}, [client, enabled, environment, keys, keysKey]);
|
|
2897
|
+
}, [client, enabled, environment, keys, keysKey, publishableKey, gatewayUrl]);
|
|
2880
2898
|
react.useEffect(() => {
|
|
2881
2899
|
void refresh();
|
|
2882
2900
|
}, [refresh]);
|
package/dist/index.mjs
CHANGED
|
@@ -2849,7 +2849,7 @@ function useFeatureFlags(options = {}) {
|
|
|
2849
2849
|
keys,
|
|
2850
2850
|
enabled = true
|
|
2851
2851
|
} = options;
|
|
2852
|
-
const { client } = useScaleMule();
|
|
2852
|
+
const { client, publishableKey, gatewayUrl } = useScaleMule();
|
|
2853
2853
|
const [flags, setFlags] = useState({});
|
|
2854
2854
|
const [loading, setLoading] = useState(enabled);
|
|
2855
2855
|
const [error, setError] = useState(null);
|
|
@@ -2866,7 +2866,25 @@ function useFeatureFlags(options = {}) {
|
|
|
2866
2866
|
setLoading(true);
|
|
2867
2867
|
try {
|
|
2868
2868
|
const payload = keys && keys.length > 0 ? { flag_keys: keys, environment, context: contextRef.current } : { environment, context: contextRef.current };
|
|
2869
|
-
const
|
|
2869
|
+
const endpoint = keys && keys.length > 0 ? "/v1/flags/evaluate/batch" : "/v1/flags/evaluate/all";
|
|
2870
|
+
let result;
|
|
2871
|
+
if (publishableKey && gatewayUrl) {
|
|
2872
|
+
const response = await fetch(`${gatewayUrl}${endpoint}`, {
|
|
2873
|
+
method: "POST",
|
|
2874
|
+
headers: {
|
|
2875
|
+
"Content-Type": "application/json",
|
|
2876
|
+
"x-api-key": publishableKey
|
|
2877
|
+
},
|
|
2878
|
+
body: JSON.stringify(payload)
|
|
2879
|
+
});
|
|
2880
|
+
if (!response.ok) {
|
|
2881
|
+
throw new Error(`Flag evaluation failed: ${response.status}`);
|
|
2882
|
+
}
|
|
2883
|
+
const json = await response.json();
|
|
2884
|
+
result = json.data || json || {};
|
|
2885
|
+
} else {
|
|
2886
|
+
result = await client.post(endpoint, payload);
|
|
2887
|
+
}
|
|
2870
2888
|
setFlags(result || {});
|
|
2871
2889
|
setError(null);
|
|
2872
2890
|
} catch (err) {
|
|
@@ -2874,7 +2892,7 @@ function useFeatureFlags(options = {}) {
|
|
|
2874
2892
|
} finally {
|
|
2875
2893
|
setLoading(false);
|
|
2876
2894
|
}
|
|
2877
|
-
}, [client, enabled, environment, keys, keysKey]);
|
|
2895
|
+
}, [client, enabled, environment, keys, keysKey, publishableKey, gatewayUrl]);
|
|
2878
2896
|
useEffect(() => {
|
|
2879
2897
|
void refresh();
|
|
2880
2898
|
}, [refresh]);
|
package/package.json
CHANGED