@kameleoon/react-sdk 1.2.2 → 3.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/CHANGELOG.md +29 -0
- package/README.md +315 -43
- package/dist/Feature.js +2 -2
- package/dist/Feature.js.map +1 -1
- package/dist/KameleoonError.d.ts +5 -0
- package/dist/KameleoonError.js +31 -0
- package/dist/KameleoonError.js.map +1 -0
- package/dist/compose.d.ts +1 -1
- package/dist/compose.js +27 -2
- package/dist/compose.js.map +1 -1
- package/dist/constants.d.ts +11 -0
- package/dist/constants.js +13 -1
- package/dist/constants.js.map +1 -1
- package/dist/getKameleoonException.d.ts +2 -0
- package/dist/getKameleoonException.js +34 -0
- package/dist/getKameleoonException.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +21 -1
- package/dist/index.js.map +1 -1
- package/dist/stories/Form.d.ts +13 -5
- package/dist/stories/Form.js +154 -36
- package/dist/stories/Form.js.map +1 -1
- package/dist/stories/FormHOC.js +12 -7
- package/dist/stories/FormHOC.js.map +1 -1
- package/dist/stories/FormHook.js +34 -21
- package/dist/stories/FormHook.js.map +1 -1
- package/dist/stories/constants.d.ts +5 -2
- package/dist/stories/constants.js +11 -8
- package/dist/stories/constants.js.map +1 -1
- package/dist/types.d.ts +24 -7
- package/dist/types.js.map +1 -1
- package/dist/useActivateFeature.d.ts +2 -0
- package/dist/useActivateFeature.js +11 -2
- package/dist/useActivateFeature.js.map +1 -1
- package/dist/useAddData.js +17 -1
- package/dist/useAddData.js.map +1 -1
- package/dist/useConversion.d.ts +1 -1
- package/dist/useError.d.ts +7 -0
- package/dist/useError.js +34 -0
- package/dist/useError.js.map +1 -0
- package/dist/useErrors.d.ts +7 -0
- package/dist/useErrors.js +42 -0
- package/dist/useErrors.js.map +1 -0
- package/dist/useFeature.d.ts +1 -1
- package/dist/useFeature.js +42 -13
- package/dist/useFeature.js.map +1 -1
- package/dist/useFeatureVariable.d.ts +2 -0
- package/dist/useFeatureVariable.js +11 -2
- package/dist/useFeatureVariable.js.map +1 -1
- package/dist/useRetrieveDataFromRemoteSource.d.ts +12 -0
- package/dist/useRetrieveDataFromRemoteSource.js +79 -0
- package/dist/useRetrieveDataFromRemoteSource.js.map +1 -0
- package/dist/useRunWhenReady.d.ts +14 -0
- package/dist/useRunWhenReady.js +23 -0
- package/dist/useRunWhenReady.js.map +1 -0
- package/dist/useTriggerExperiment.d.ts +2 -0
- package/dist/useTriggerExperiment.js +12 -2
- package/dist/useTriggerExperiment.js.map +1 -1
- package/dist/useVariationAssociatedData.d.ts +6 -4
- package/dist/useVariationAssociatedData.js +11 -2
- package/dist/useVariationAssociatedData.js.map +1 -1
- package/dist/withActivateFeature.d.ts +2 -0
- package/dist/withActivateFeature.js +3 -12
- package/dist/withActivateFeature.js.map +1 -1
- package/dist/withAddData.js +17 -2
- package/dist/withAddData.js.map +1 -1
- package/dist/withBrowser.js +0 -1
- package/dist/withBrowser.js.map +1 -1
- package/dist/withConversion.d.ts +1 -1
- package/dist/withConversion.js +0 -1
- package/dist/withConversion.js.map +1 -1
- package/dist/withCustomData.js +0 -1
- package/dist/withCustomData.js.map +1 -1
- package/dist/withFeature.js +2 -3
- package/dist/withFeature.js.map +1 -1
- package/dist/withFeatureVariable.d.ts +2 -0
- package/dist/withFeatureVariable.js +2 -2
- package/dist/withFeatureVariable.js.map +1 -1
- package/dist/withFlush.js +0 -1
- package/dist/withFlush.js.map +1 -1
- package/dist/withInterest.js +0 -1
- package/dist/withInterest.js.map +1 -1
- package/dist/withKameleoon.js +0 -1
- package/dist/withKameleoon.js.map +1 -1
- package/dist/withPageView.js +0 -1
- package/dist/withPageView.js.map +1 -1
- package/dist/withRetrieveDataFromRemoteSource.d.ts +14 -0
- package/dist/withRetrieveDataFromRemoteSource.js +28 -0
- package/dist/withRetrieveDataFromRemoteSource.js.map +1 -0
- package/dist/withRunWhenReady.d.ts +16 -0
- package/dist/withRunWhenReady.js +28 -0
- package/dist/withRunWhenReady.js.map +1 -0
- package/dist/withTrackingConversion.d.ts +1 -1
- package/dist/withTrackingConversion.js +4 -6
- package/dist/withTrackingConversion.js.map +1 -1
- package/dist/withTriggerExperiment.d.ts +3 -1
- package/dist/withTriggerExperiment.js +4 -13
- package/dist/withTriggerExperiment.js.map +1 -1
- package/dist/withVariationAssociatedData.d.ts +4 -2
- package/dist/withVariationAssociatedData.js +3 -11
- package/dist/withVariationAssociatedData.js.map +1 -1
- package/dist/withVisitorCode.js +0 -1
- package/dist/withVisitorCode.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormHOC.js","sourceRoot":"","sources":["../../src/stories/FormHOC.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"FormHOC.js","sourceRoot":"","sources":["../../src/stories/FormHOC.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAiC;AACjC,yCAAqE;AACrE,kCAckB;AAClB,gDAA0C;AAE1C,SAAS,OAAO,CAAC,KAAiB;IAChC,OAAO,uBAAC,cAAI,eAAK,KAAK,IAAE,aAAa,EAAE,KAAK,YAAI,CAAC;AACnD,CAAC;AAED,IAAM,YAAY,GAAG;IACnB,UAAU,EAAE;QACV,4BAAgB,CAAC,MAAM;QACvB,4BAAgB,CAAC,OAAO;QACxB,4BAAgB,CAAC,MAAM;QACvB,4BAAgB,CAAC,IAAI;KACtB;IACD,WAAW,EAAE,4BAAgB,CAAC,iBAAiB;IAC/C,OAAO,EAAE,4BAAgB,CAAC,iBAAiB;CAC5C,CAAC;AAEF,IAAM,iBAAiB,GAAG,IAAA,iBAAO,EAC/B,qBAAa,EACb,uBAAe,EACf,2BAAmB,EACnB,mBAAW,EACX,mBAAW,EACX,oBAAY,EACZ,oBAAY,EACZ,sBAAc,EACd,6BAAqB,EACrB,wBAAgB,EAChB,mCAA2B,EAC3B,wCAAgC,EAChC,IAAA,mBAAW,EAAC;IACV,UAAU,EAAE,uBAAW;IACvB,YAAY,cAAA;IACZ,WAAW,EAAE,mBAAO;CACrB,CAAC,CACH,CAAC;AAEF,kBAAe,iBAAiB,CAAC,OAAO,CAAC,CAAC"}
|
package/dist/stories/FormHook.js
CHANGED
|
@@ -16,32 +16,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.FormHook = void 0;
|
|
18
18
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
-
var
|
|
20
|
-
var __1 = require("../");
|
|
19
|
+
var index_1 = require("../index");
|
|
21
20
|
var Form_1 = __importDefault(require("./Form"));
|
|
21
|
+
var constants_1 = require("./constants");
|
|
22
22
|
function FormHook() {
|
|
23
|
-
var client = (0,
|
|
24
|
-
var getVisitorCode = (0,
|
|
25
|
-
var addData = (0,
|
|
26
|
-
var addBrowser = (0,
|
|
27
|
-
var addPageView = (0,
|
|
28
|
-
var addInterest = (0,
|
|
29
|
-
var addConversion = (0,
|
|
30
|
-
var
|
|
31
|
-
var trackConversion = (0,
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
constants_1.
|
|
39
|
-
constants_1.
|
|
40
|
-
constants_1.
|
|
23
|
+
var client = (0, index_1.useKameleoon)().client;
|
|
24
|
+
var getVisitorCode = (0, index_1.useVisitorCode)().getVisitorCode;
|
|
25
|
+
var addData = (0, index_1.useAddData)().addData;
|
|
26
|
+
var addBrowser = (0, index_1.useBrowser)().addBrowser;
|
|
27
|
+
var addPageView = (0, index_1.usePageView)().addPageView;
|
|
28
|
+
var addInterest = (0, index_1.useInterest)().addInterest;
|
|
29
|
+
var addConversion = (0, index_1.useConversion)().addConversion;
|
|
30
|
+
var _a = (0, index_1.useVariationAssociatedData)(), getVariationAssociatedData = _a.getVariationAssociatedData, variationAssociatedDataError = _a.error;
|
|
31
|
+
var trackConversion = (0, index_1.useTrackingConversion)().trackConversion;
|
|
32
|
+
var _b = (0, index_1.useTriggerExperiment)(), getVariationId = _b.getVariationId, triggerExperimentError = _b.error;
|
|
33
|
+
var _c = (0, index_1.useActivateFeature)(), hasFeature = _c.hasFeature, activateFeatureError = _c.error;
|
|
34
|
+
var retrieveDataFromRemoteSource = (0, index_1.useRetrieveDataFromRemoteSource)().retrieveDataFromRemoteSource;
|
|
35
|
+
var runWhenReady = (0, index_1.useRunWhenReady)().runWhenReady;
|
|
36
|
+
var variableKeys = {
|
|
37
|
+
production: [
|
|
38
|
+
constants_1.FeatureVariables.STRING,
|
|
39
|
+
constants_1.FeatureVariables.BOOLEAN,
|
|
40
|
+
constants_1.FeatureVariables.NUMBER,
|
|
41
|
+
constants_1.FeatureVariables.JSON,
|
|
41
42
|
],
|
|
43
|
+
development: constants_1.FeatureVariables.MULTI_ENVIRONMENT,
|
|
44
|
+
staging: constants_1.FeatureVariables.MULTI_ENVIRONMENT,
|
|
45
|
+
};
|
|
46
|
+
var _d = (0, index_1.useFeature)({
|
|
47
|
+
featureKey: constants_1.FEATURE_KEY,
|
|
48
|
+
variableKeys: variableKeys,
|
|
42
49
|
visitorCode: constants_1.USER_ID,
|
|
43
|
-
});
|
|
50
|
+
}), feature = _d.feature, featureErrors = _d.errors;
|
|
44
51
|
var props = {
|
|
52
|
+
variationAssociatedDataError: variationAssociatedDataError,
|
|
53
|
+
triggerExperimentError: triggerExperimentError,
|
|
54
|
+
activateFeatureError: activateFeatureError,
|
|
55
|
+
featureErrors: featureErrors,
|
|
45
56
|
client: client,
|
|
46
57
|
feature: feature,
|
|
47
58
|
getVisitorCode: getVisitorCode,
|
|
@@ -52,8 +63,10 @@ function FormHook() {
|
|
|
52
63
|
addInterest: addInterest,
|
|
53
64
|
addConversion: addConversion,
|
|
54
65
|
getVariationAssociatedData: getVariationAssociatedData,
|
|
66
|
+
retrieveDataFromRemoteSource: retrieveDataFromRemoteSource,
|
|
55
67
|
getVariationId: getVariationId,
|
|
56
68
|
trackConversion: trackConversion,
|
|
69
|
+
runWhenReady: runWhenReady,
|
|
57
70
|
};
|
|
58
71
|
return (0, jsx_runtime_1.jsx)(Form_1.default, __assign({}, props, { isRenderProps: false }), void 0);
|
|
59
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormHook.js","sourceRoot":"","sources":["../../src/stories/FormHook.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"FormHook.js","sourceRoot":"","sources":["../../src/stories/FormHook.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kCAekB;AAClB,gDAA0B;AAC1B,yCAAqE;AAErE,SAAgB,QAAQ;IACd,IAAA,MAAM,GAAK,IAAA,oBAAY,GAAE,OAAnB,CAAoB;IAC1B,IAAA,cAAc,GAAK,IAAA,sBAAc,GAAE,eAArB,CAAsB;IACpC,IAAA,OAAO,GAAK,IAAA,kBAAU,GAAE,QAAjB,CAAkB;IACzB,IAAA,UAAU,GAAK,IAAA,kBAAU,GAAE,WAAjB,CAAkB;IAC5B,IAAA,WAAW,GAAK,IAAA,mBAAW,GAAE,YAAlB,CAAmB;IAC9B,IAAA,WAAW,GAAK,IAAA,mBAAW,GAAE,YAAlB,CAAmB;IAC9B,IAAA,aAAa,GAAK,IAAA,qBAAa,GAAE,cAApB,CAAqB;IACpC,IAAA,KACJ,IAAA,kCAA0B,GAAE,EADtB,0BAA0B,gCAAA,EAAS,4BAA4B,WACzC,CAAC;IACvB,IAAA,eAAe,GAAK,IAAA,6BAAqB,GAAE,gBAA5B,CAA6B;IAC9C,IAAA,KACJ,IAAA,4BAAoB,GAAE,EADhB,cAAc,oBAAA,EAAS,sBAAsB,WAC7B,CAAC;IACnB,IAAA,KAA8C,IAAA,0BAAkB,GAAE,EAAhE,UAAU,gBAAA,EAAS,oBAAoB,WAAyB,CAAC;IACjE,IAAA,4BAA4B,GAAK,IAAA,uCAA+B,GAAE,6BAAtC,CAAuC;IACnE,IAAA,YAAY,GAAK,IAAA,uBAAe,GAAE,aAAtB,CAAuB;IAE3C,IAAM,YAAY,GAAG;QACnB,UAAU,EAAE;YACV,4BAAgB,CAAC,MAAM;YACvB,4BAAgB,CAAC,OAAO;YACxB,4BAAgB,CAAC,MAAM;YACvB,4BAAgB,CAAC,IAAI;SACtB;QACD,WAAW,EAAE,4BAAgB,CAAC,iBAAiB;QAC/C,OAAO,EAAE,4BAAgB,CAAC,iBAAiB;KAC5C,CAAC;IAEI,IAAA,KAAqC,IAAA,kBAAU,EAAC;QACpD,UAAU,EAAE,uBAAW;QACvB,YAAY,cAAA;QACZ,WAAW,EAAE,mBAAO;KACrB,CAAC,EAJM,OAAO,aAAA,EAAU,aAAa,YAIpC,CAAC;IAEH,IAAM,KAAK,GAAG;QACZ,4BAA4B,8BAAA;QAC5B,sBAAsB,wBAAA;QACtB,oBAAoB,sBAAA;QACpB,aAAa,eAAA;QACb,MAAM,QAAA;QACN,OAAO,SAAA;QACP,cAAc,gBAAA;QACd,UAAU,YAAA;QACV,OAAO,SAAA;QACP,UAAU,YAAA;QACV,WAAW,aAAA;QACX,WAAW,aAAA;QACX,aAAa,eAAA;QACb,0BAA0B,4BAAA;QAC1B,4BAA4B,8BAAA;QAC5B,cAAc,gBAAA;QACd,eAAe,iBAAA;QACf,YAAY,cAAA;KACb,CAAC;IAEF,OAAO,uBAAC,cAAI,eAAK,KAAK,IAAE,aAAa,EAAE,KAAK,YAAI,CAAC;AACnD,CAAC;AAxDD,4BAwDC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
export declare const KAMELEOON_URL = "https://app.kameleoon.com";
|
|
2
2
|
export declare const KAMELEOON_SITE_CODE = "0fpmcg34lg";
|
|
3
|
+
export declare const KAMELEOON_VISITOR_KEY = "4rXwHd620g";
|
|
3
4
|
export declare const KAMELEOON_GOAL_ID = 238446;
|
|
4
5
|
export declare const FEATURE_KEY = "react_sdk_test";
|
|
5
6
|
export declare const USER_ID = "98983";
|
|
6
7
|
export declare const EXPERIMENT_ID = 143611;
|
|
7
8
|
export declare const GOAL_ID = 245023;
|
|
8
|
-
export declare
|
|
9
|
+
export declare const REFRESH_INTERVAL = 5;
|
|
10
|
+
export declare enum FeatureVariables {
|
|
9
11
|
STRING = "test_variable_one",
|
|
10
12
|
BOOLEAN = "test_variable_two",
|
|
11
13
|
NUMBER = "test_variable_three",
|
|
12
|
-
JSON = "test_variable_four"
|
|
14
|
+
JSON = "test_variable_four",
|
|
15
|
+
MULTI_ENVIRONMENT = "test_variable_multi_environment"
|
|
13
16
|
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.FeatureVariables = exports.REFRESH_INTERVAL = exports.GOAL_ID = exports.EXPERIMENT_ID = exports.USER_ID = exports.FEATURE_KEY = exports.KAMELEOON_GOAL_ID = exports.KAMELEOON_VISITOR_KEY = exports.KAMELEOON_SITE_CODE = exports.KAMELEOON_URL = void 0;
|
|
4
4
|
exports.KAMELEOON_URL = 'https://app.kameleoon.com';
|
|
5
5
|
exports.KAMELEOON_SITE_CODE = '0fpmcg34lg';
|
|
6
|
+
exports.KAMELEOON_VISITOR_KEY = '4rXwHd620g';
|
|
6
7
|
exports.KAMELEOON_GOAL_ID = 238446;
|
|
7
8
|
exports.FEATURE_KEY = 'react_sdk_test';
|
|
8
9
|
exports.USER_ID = '98983';
|
|
9
10
|
exports.EXPERIMENT_ID = 143611;
|
|
10
11
|
exports.GOAL_ID = 245023;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
exports.REFRESH_INTERVAL = 5;
|
|
13
|
+
var FeatureVariables;
|
|
14
|
+
(function (FeatureVariables) {
|
|
15
|
+
FeatureVariables["STRING"] = "test_variable_one";
|
|
16
|
+
FeatureVariables["BOOLEAN"] = "test_variable_two";
|
|
17
|
+
FeatureVariables["NUMBER"] = "test_variable_three";
|
|
18
|
+
FeatureVariables["JSON"] = "test_variable_four";
|
|
19
|
+
FeatureVariables["MULTI_ENVIRONMENT"] = "test_variable_multi_environment";
|
|
20
|
+
})(FeatureVariables = exports.FeatureVariables || (exports.FeatureVariables = {}));
|
|
18
21
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/stories/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,2BAA2B,CAAC;AAC5C,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,WAAW,GAAG,gBAAgB,CAAC;AAC/B,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,aAAa,GAAG,MAAM,CAAC;AACvB,QAAA,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/stories/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,2BAA2B,CAAC;AAC5C,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,WAAW,GAAG,gBAAgB,CAAC;AAC/B,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,aAAa,GAAG,MAAM,CAAC;AACvB,QAAA,OAAO,GAAG,MAAM,CAAC;AACjB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,gDAA4B,CAAA;IAC5B,iDAA6B,CAAA;IAC7B,kDAA8B,CAAA;IAC9B,+CAA2B,CAAA;IAC3B,yEAAqD,CAAA;AACvD,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,20 +1,37 @@
|
|
|
1
|
-
import { FeatureResultField } from './constants';
|
|
2
|
-
|
|
1
|
+
import { FeatureResultField, KameleoonException } from './constants';
|
|
2
|
+
import { KameleoonError } from './KameleoonError';
|
|
3
3
|
export declare type Without<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
4
|
+
declare type JSONValue = string | number | boolean | {
|
|
5
|
+
[x: string]: JSONValue;
|
|
6
|
+
} | JSONValue[];
|
|
4
7
|
export declare type FeatureFlagVariableType = boolean | number | string | undefined;
|
|
5
8
|
export declare type FeatureVariableType = Record<string, FeatureFlagVariableType>;
|
|
6
9
|
export declare type UnknownPropsType = Record<string, unknown>;
|
|
10
|
+
export declare type VariableKeyType = string | string[];
|
|
11
|
+
export declare type VariableKeysType = {
|
|
12
|
+
[environment: string]: VariableKeyType;
|
|
13
|
+
};
|
|
14
|
+
export declare type RemoteSourceDataType = Record<string, JSONValue>;
|
|
15
|
+
export declare type VariationAssociatedDataType = Record<string | number | symbol, JSONValue> | null;
|
|
16
|
+
export declare type RemoteSourceResultType = {
|
|
17
|
+
data: RemoteSourceDataType | null;
|
|
18
|
+
error: KameleoonError | null;
|
|
19
|
+
};
|
|
7
20
|
export interface IFeature {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
21
|
+
feature: {
|
|
22
|
+
/** Feature flag status */
|
|
23
|
+
[FeatureResultField.IsActive]: boolean;
|
|
24
|
+
/** Feature flag variables */
|
|
25
|
+
[FeatureResultField.Variables]: FeatureVariableType[];
|
|
26
|
+
};
|
|
27
|
+
errors: KameleoonException[];
|
|
12
28
|
}
|
|
13
29
|
export interface IFeatureParams {
|
|
14
30
|
/** Unique identifier or key of the feature you want to expose to a user */
|
|
15
31
|
featureKey: string | number;
|
|
16
32
|
/** Key of the variable */
|
|
17
|
-
|
|
33
|
+
variableKeys: VariableKeysType;
|
|
18
34
|
/** Unique identifier of the user */
|
|
19
35
|
visitorCode?: string;
|
|
20
36
|
}
|
|
37
|
+
export {};
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAAA,yCAAqE"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { KameleoonError } from './KameleoonError';
|
|
1
2
|
interface ActivateFeatureHookResult {
|
|
2
3
|
/**
|
|
3
4
|
* @param visitorCode - unique identifier of the user
|
|
4
5
|
* @param featureKey - unique identifier or key of the feature you want to expose to a user
|
|
5
6
|
*/
|
|
6
7
|
hasFeature: (visitorCode: string, featureKey: string | number) => boolean;
|
|
8
|
+
error: KameleoonError | null;
|
|
7
9
|
}
|
|
8
10
|
/**
|
|
9
11
|
* A React Hook that returns callback function which activates a feature toggle
|
|
@@ -4,19 +4,28 @@ exports.useActivateFeature = void 0;
|
|
|
4
4
|
var react_1 = require("react");
|
|
5
5
|
var useKameleoon_1 = require("./useKameleoon");
|
|
6
6
|
var ProviderError_1 = require("./ProviderError");
|
|
7
|
+
var useError_1 = require("./useError");
|
|
7
8
|
/**
|
|
8
9
|
* A React Hook that returns callback function which activates a feature toggle
|
|
9
10
|
*/
|
|
10
11
|
function useActivateFeature() {
|
|
11
12
|
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
13
|
+
var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
|
|
12
14
|
var hasFeature = (0, react_1.useCallback)(function (visitorCode, featureKey) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
try {
|
|
16
|
+
return client.activateFeature(visitorCode, featureKey);
|
|
17
|
+
}
|
|
18
|
+
catch (unknownError) {
|
|
19
|
+
setError(unknownError);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}, [client, setError]);
|
|
15
23
|
if (!client) {
|
|
16
24
|
throw new ProviderError_1.ProviderError('useActivateFeature');
|
|
17
25
|
}
|
|
18
26
|
return {
|
|
19
27
|
hasFeature: hasFeature,
|
|
28
|
+
error: error,
|
|
20
29
|
};
|
|
21
30
|
}
|
|
22
31
|
exports.useActivateFeature = useActivateFeature;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActivateFeature.js","sourceRoot":"","sources":["../src/useActivateFeature.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,iDAAgD;
|
|
1
|
+
{"version":3,"file":"useActivateFeature.js","sourceRoot":"","sources":["../src/useActivateFeature.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,iDAAgD;AAEhD,uCAAsC;AAWtC;;GAEG;AACH,SAAgB,kBAAkB;IACxB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,WAAmB,EAAE,UAA2B;QAC/C,IAAI;YACF,OAAO,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;SACxD;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,KAAK,CAAC;SACd;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,6BAAa,CAAC,oBAAoB,CAAC,CAAC;KAC/C;IAED,OAAO;QACL,UAAU,YAAA;QACV,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAzBD,gDAyBC"}
|
package/dist/useAddData.js
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
2
18
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
19
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
20
|
if (ar || !(i in from)) {
|
|
@@ -23,7 +39,7 @@ function useAddData() {
|
|
|
23
39
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
24
40
|
dataTypes[_i - 1] = arguments[_i];
|
|
25
41
|
}
|
|
26
|
-
client.addData.apply(client, __spreadArray([visitorCode], dataTypes, false));
|
|
42
|
+
client.addData.apply(client, __spreadArray([visitorCode], __read(dataTypes), false));
|
|
27
43
|
}, [client]);
|
|
28
44
|
return {
|
|
29
45
|
addData: addData,
|
package/dist/useAddData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAddData.js","sourceRoot":"","sources":["../src/useAddData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAddData.js","sourceRoot":"","sources":["../src/useAddData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoC;AAEpC,+CAA8C;AAU9C;;;GAGG;AACH,SAAgB,UAAU;IAChB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,UAAC,WAAmB;QAAE,mBAAqB;aAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;YAArB,kCAAqB;;QACzC,MAAM,CAAC,OAAO,OAAd,MAAM,iBAAS,WAAW,UAAK,SAAS,WAAE;IAC5C,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,OAAO,SAAA;KACR,CAAC;AACJ,CAAC;AAbD,gCAaC"}
|
package/dist/useConversion.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Conversion } from 'kameleoon-client-javascript/dist/data';
|
|
|
2
2
|
interface ConversionHookResult {
|
|
3
3
|
/**
|
|
4
4
|
* @param goalId - unique identifier of the goal
|
|
5
|
-
* @param revenue -
|
|
5
|
+
* @param revenue - conversion revenue
|
|
6
6
|
* @param negative - defines if the revenue is positive or negative
|
|
7
7
|
*/
|
|
8
8
|
addConversion: (goalId: number, revenue?: number, negative?: boolean) => Conversion;
|
package/dist/useError.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.useError = void 0;
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
var getKameleoonException_1 = require("./getKameleoonException");
|
|
22
|
+
function useError() {
|
|
23
|
+
var _a = __read((0, react_1.useState)(null), 2), error = _a[0], setError = _a[1];
|
|
24
|
+
var setErrorHandler = (0, react_1.useCallback)(function (unknownError) {
|
|
25
|
+
var exception = (0, getKameleoonException_1.getKameleoonException)(unknownError);
|
|
26
|
+
setError(exception);
|
|
27
|
+
}, []);
|
|
28
|
+
return {
|
|
29
|
+
error: error,
|
|
30
|
+
setError: setErrorHandler,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
exports.useError = useError;
|
|
34
|
+
//# sourceMappingURL=useError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useError.js","sourceRoot":"","sources":["../src/useError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAA8C;AAC9C,iEAAgE;AAQhE,SAAgB,QAAQ;IAChB,IAAA,KAAA,OAAoB,IAAA,gBAAQ,EAAwB,IAAI,CAAC,IAAA,EAAxD,KAAK,QAAA,EAAE,QAAQ,QAAyC,CAAC;IAEhE,IAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,UAAC,YAAqB;QACxD,IAAM,SAAS,GAAG,IAAA,6CAAqB,EAAC,YAAqB,CAAC,CAAC;QAC/D,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK,OAAA;QACL,QAAQ,EAAE,eAAe;KAC1B,CAAC;AACJ,CAAC;AAZD,4BAYC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { KameleoonException } from './constants';
|
|
2
|
+
declare type UseErrorsHookResultType = {
|
|
3
|
+
errors: KameleoonException[];
|
|
4
|
+
setErrors: (newErrors: Array<KameleoonException | undefined>) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare function useErrors(): UseErrorsHookResultType;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.useErrors = void 0;
|
|
29
|
+
var react_1 = require("react");
|
|
30
|
+
function useErrors() {
|
|
31
|
+
var _a = __read((0, react_1.useState)([]), 2), errors = _a[0], setErrors = _a[1];
|
|
32
|
+
var setErrorHandler = (0, react_1.useCallback)(function (newErrors) {
|
|
33
|
+
var uniqueErrors = __spreadArray([], __read(new Set(newErrors)), false).filter(function (value) { return Boolean(value); });
|
|
34
|
+
setErrors(uniqueErrors);
|
|
35
|
+
}, []);
|
|
36
|
+
return {
|
|
37
|
+
errors: errors,
|
|
38
|
+
setErrors: setErrorHandler,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
exports.useErrors = useErrors;
|
|
42
|
+
//# sourceMappingURL=useErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useErrors.js","sourceRoot":"","sources":["../src/useErrors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8C;AAQ9C,SAAgB,SAAS;IACjB,IAAA,KAAA,OAAsB,IAAA,gBAAQ,EAAuB,EAAE,CAAC,IAAA,EAAvD,MAAM,QAAA,EAAE,SAAS,QAAsC,CAAC;IAE/D,IAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,UAAC,SAAgD;QAC/C,IAAM,YAAY,GAAG,yBAAI,IAAI,GAAG,CAAC,SAAS,CAAC,UAAE,MAAM,CACjD,UAAC,KAAK,IAAkC,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CACvD,CAAC;QAEF,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC,EACD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,MAAM,QAAA;QACN,SAAS,EAAE,eAAe;KAC3B,CAAC;AACJ,CAAC;AAlBD,8BAkBC"}
|
package/dist/useFeature.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { IFeature, IFeatureParams } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* A React Hook that returns the status of a feature flag and specified variables
|
|
4
4
|
*/
|
|
5
|
-
export declare function useFeature({ featureKey,
|
|
5
|
+
export declare function useFeature({ featureKey, variableKeys, visitorCode, }: IFeatureParams): IFeature;
|
package/dist/useFeature.js
CHANGED
|
@@ -10,6 +10,22 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
13
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
30
|
exports.useFeature = void 0;
|
|
15
31
|
var react_1 = require("react");
|
|
@@ -17,19 +33,23 @@ var useActivateFeature_1 = require("./useActivateFeature");
|
|
|
17
33
|
var useFeatureVariable_1 = require("./useFeatureVariable");
|
|
18
34
|
var constants_1 = require("./constants");
|
|
19
35
|
var useVisitorCode_1 = require("./useVisitorCode");
|
|
36
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
37
|
+
var useErrors_1 = require("./useErrors");
|
|
20
38
|
/**
|
|
21
39
|
* A React Hook that returns the status of a feature flag and specified variables
|
|
22
40
|
*/
|
|
23
41
|
function useFeature(_a) {
|
|
24
42
|
var _b;
|
|
25
|
-
var featureKey = _a.featureKey,
|
|
26
|
-
var
|
|
27
|
-
var
|
|
43
|
+
var featureKey = _a.featureKey, variableKeys = _a.variableKeys, visitorCode = _a.visitorCode;
|
|
44
|
+
var _c = (0, useActivateFeature_1.useActivateFeature)(), hasFeature = _c.hasFeature, activateFeatureError = _c.error;
|
|
45
|
+
var _d = (0, useFeatureVariable_1.useFeatureVariable)(), getFeatureVariable = _d.getFeatureVariable, featureVariableError = _d.error;
|
|
28
46
|
var getVisitorCode = (0, useVisitorCode_1.useVisitorCode)().getVisitorCode;
|
|
29
|
-
var
|
|
47
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
48
|
+
var _e = __read((0, react_1.useState)((_b = {},
|
|
30
49
|
_b[constants_1.FeatureResultField.IsActive] = false,
|
|
31
50
|
_b[constants_1.FeatureResultField.Variables] = [],
|
|
32
|
-
_b)), feature =
|
|
51
|
+
_b)), 2), feature = _e[0], setFeature = _e[1];
|
|
52
|
+
var _f = (0, useErrors_1.useErrors)(), errors = _f.errors, setErrors = _f.setErrors;
|
|
33
53
|
var userCode = visitorCode !== null && visitorCode !== void 0 ? visitorCode : getVisitorCode('');
|
|
34
54
|
function getVariableObject(key, value) {
|
|
35
55
|
var _a;
|
|
@@ -40,27 +60,33 @@ function useFeature(_a) {
|
|
|
40
60
|
}
|
|
41
61
|
return {};
|
|
42
62
|
}
|
|
43
|
-
var getVariablesArray = (0, react_1.useCallback)(function () {
|
|
63
|
+
var getVariablesArray = (0, react_1.useCallback)(function (environment) {
|
|
44
64
|
var variablesArray = [];
|
|
45
|
-
|
|
46
|
-
|
|
65
|
+
var environmentVariableKeys = variableKeys[environment];
|
|
66
|
+
if (Array.isArray(environmentVariableKeys)) {
|
|
67
|
+
environmentVariableKeys.forEach(function (key) {
|
|
47
68
|
variablesArray.push(getVariableObject(key, getFeatureVariable(featureKey, key)));
|
|
48
69
|
});
|
|
49
70
|
}
|
|
50
71
|
else {
|
|
51
|
-
variablesArray.push(getVariableObject(
|
|
72
|
+
variablesArray.push(getVariableObject(environmentVariableKeys, getFeatureVariable(featureKey, environmentVariableKeys)));
|
|
52
73
|
}
|
|
53
74
|
return variablesArray;
|
|
54
|
-
}, [
|
|
75
|
+
}, [variableKeys, getFeatureVariable, featureKey]);
|
|
55
76
|
(0, react_1.useEffect)(function () {
|
|
56
77
|
var _a;
|
|
78
|
+
var _b, _c, _d;
|
|
79
|
+
var _e = __read((_b = client.configurations) === null || _b === void 0 ? void 0 : _b.configuration.featureFlags.filter(function (item) {
|
|
80
|
+
return item.identificationKey === featureKey;
|
|
81
|
+
}), 1), featureFlag = _e[0];
|
|
82
|
+
var currentEnvironment = (_d = (_c = featureFlag === null || featureFlag === void 0 ? void 0 : featureFlag.environment) === null || _c === void 0 ? void 0 : _c.key) !== null && _d !== void 0 ? _d : constants_1.PRODUCTION;
|
|
57
83
|
try {
|
|
58
84
|
setFeature((_a = {},
|
|
59
85
|
_a[constants_1.FeatureResultField.IsActive] = hasFeature(userCode, featureKey),
|
|
60
|
-
_a[constants_1.FeatureResultField.Variables] = getVariablesArray(),
|
|
86
|
+
_a[constants_1.FeatureResultField.Variables] = getVariablesArray(currentEnvironment),
|
|
61
87
|
_a));
|
|
62
88
|
}
|
|
63
|
-
catch (
|
|
89
|
+
catch (_f) {
|
|
64
90
|
setFeature(function (prevFeature) {
|
|
65
91
|
var _a;
|
|
66
92
|
return (__assign(__assign({}, prevFeature), (_a = {}, _a[constants_1.FeatureResultField.IsActive] = false, _a)));
|
|
@@ -69,7 +95,10 @@ function useFeature(_a) {
|
|
|
69
95
|
// getVariablesArray put in dependencies creates an infinite loop
|
|
70
96
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
97
|
}, [userCode, featureKey, hasFeature]);
|
|
72
|
-
|
|
98
|
+
(0, react_1.useEffect)(function () {
|
|
99
|
+
setErrors([activateFeatureError === null || activateFeatureError === void 0 ? void 0 : activateFeatureError.type, featureVariableError === null || featureVariableError === void 0 ? void 0 : featureVariableError.type]);
|
|
100
|
+
}, [activateFeatureError, featureVariableError, setErrors]);
|
|
101
|
+
return { feature: feature, errors: errors };
|
|
73
102
|
}
|
|
74
103
|
exports.useFeature = useFeature;
|
|
75
104
|
//# sourceMappingURL=useFeature.js.map
|
package/dist/useFeature.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFeature.js","sourceRoot":"","sources":["../src/useFeature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useFeature.js","sourceRoot":"","sources":["../src/useFeature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { FeatureFlagVariableType } from './types';
|
|
2
|
+
import { KameleoonError } from './KameleoonError';
|
|
2
3
|
interface FeatureVariableHookResult {
|
|
3
4
|
/**
|
|
4
5
|
* @param featureKey - unique identifier or key of the feature you want to obtain to a user
|
|
5
6
|
* @param variableKey - key of the variable
|
|
6
7
|
*/
|
|
7
8
|
getFeatureVariable: (featureKey: string | number, variableKey: string) => FeatureFlagVariableType;
|
|
9
|
+
error: KameleoonError | null;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* A React Hook that returns callback function which retrieves a feature variable
|
|
@@ -7,11 +7,13 @@ exports.useFeatureVariable = void 0;
|
|
|
7
7
|
var react_1 = require("react");
|
|
8
8
|
var isJSON_1 = __importDefault(require("validator/lib/isJSON"));
|
|
9
9
|
var useKameleoon_1 = require("./useKameleoon");
|
|
10
|
+
var useError_1 = require("./useError");
|
|
10
11
|
/**
|
|
11
12
|
* A React Hook that returns callback function which retrieves a feature variable
|
|
12
13
|
*/
|
|
13
14
|
function useFeatureVariable() {
|
|
14
15
|
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
16
|
+
var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
|
|
15
17
|
var getProcessedVariable = (0, react_1.useCallback)(function (value) {
|
|
16
18
|
if (typeof value === 'undefined') {
|
|
17
19
|
return undefined;
|
|
@@ -26,10 +28,17 @@ function useFeatureVariable() {
|
|
|
26
28
|
return value;
|
|
27
29
|
}, []);
|
|
28
30
|
var getFeatureVariable = (0, react_1.useCallback)(function (featureKey, variableKey) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
try {
|
|
32
|
+
return getProcessedVariable(client.obtainFeatureVariable(featureKey, variableKey));
|
|
33
|
+
}
|
|
34
|
+
catch (unknownError) {
|
|
35
|
+
setError(unknownError);
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
}, [client, getProcessedVariable, setError]);
|
|
31
39
|
return {
|
|
32
40
|
getFeatureVariable: getFeatureVariable,
|
|
41
|
+
error: error,
|
|
33
42
|
};
|
|
34
43
|
}
|
|
35
44
|
exports.useFeatureVariable = useFeatureVariable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFeatureVariable.js","sourceRoot":"","sources":["../src/useFeatureVariable.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoC;AACpC,gEAA0C;AAC1C,+CAA8C;
|
|
1
|
+
{"version":3,"file":"useFeatureVariable.js","sourceRoot":"","sources":["../src/useFeatureVariable.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoC;AACpC,gEAA0C;AAC1C,+CAA8C;AAG9C,uCAAsC;AActC;;GAEG;AACH,SAAgB,kBAAkB;IACxB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,UAAC,KAAK;QAC7C,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QAED,yEAAyE;QACzE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,CAAC,EAAE;YACxE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SACxC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,UACE,UAA2B,EAC3B,WAAmB;QAEnB,IAAI;YACF,OAAO,oBAAoB,CACzB,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CACtD,CAAC;SACH;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,SAAS,CAAC;SAClB;IACH,CAAC,EACD,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CACzC,CAAC;IAEF,OAAO;QACL,kBAAkB,oBAAA;QAClB,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AA3CD,gDA2CC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RemoteSourceResultType } from './types';
|
|
2
|
+
interface RetrieveDataFromRemoteSourceHookResult {
|
|
3
|
+
/**
|
|
4
|
+
* @param key - unique key for data defined for Kameleoon Data API
|
|
5
|
+
*/
|
|
6
|
+
retrieveDataFromRemoteSource: (key: string) => Promise<RemoteSourceResultType>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A React Hook that returns asynchronous callback function which retrieves data from Kameleoon Data API
|
|
10
|
+
*/
|
|
11
|
+
export declare function useRetrieveDataFromRemoteSource(): RetrieveDataFromRemoteSourceHookResult;
|
|
12
|
+
export {};
|