@schematichq/schematic-react 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/schematic-react.cjs.js +14 -13
- package/dist/schematic-react.d.ts +1 -1
- package/dist/schematic-react.esm.js +14 -13
- package/package.json +2 -2
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
20
20
|
// src/index.tsx
|
21
21
|
var src_exports = {};
|
22
22
|
__export(src_exports, {
|
23
|
+
Schematic: () => Schematic,
|
23
24
|
SchematicProvider: () => SchematicProvider,
|
24
25
|
useSchematic: () => useSchematic,
|
25
26
|
useSchematicContext: () => useSchematicContext,
|
@@ -107,7 +108,7 @@ var Schematic = class {
|
|
107
108
|
});
|
108
109
|
}
|
109
110
|
}
|
110
|
-
|
111
|
+
async checkFlag(options) {
|
111
112
|
const { fallback = false, key } = options;
|
112
113
|
const context = options.context || this.context;
|
113
114
|
if (this.useWebSocket) {
|
@@ -133,7 +134,7 @@ var Schematic = class {
|
|
133
134
|
console.error("There was a problem with the fetch operation:", error);
|
134
135
|
return fallback;
|
135
136
|
});
|
136
|
-
}
|
137
|
+
}
|
137
138
|
// Make a REST API call to fetch all flag values for a given context
|
138
139
|
checkFlags = async (context) => {
|
139
140
|
context = context || this.context;
|
@@ -255,7 +256,7 @@ var Schematic = class {
|
|
255
256
|
if (this.conn) {
|
256
257
|
resolve();
|
257
258
|
}
|
258
|
-
const wsUrl = `${this.webSocketUrl}/flags/
|
259
|
+
const wsUrl = `${this.webSocketUrl}/flags/subscribe`;
|
259
260
|
const webSocket = new WebSocket(wsUrl);
|
260
261
|
this.conn = webSocket;
|
261
262
|
webSocket.onopen = () => {
|
@@ -281,13 +282,9 @@ var Schematic = class {
|
|
281
282
|
let resolved = false;
|
282
283
|
this.conn.onmessage = (event) => {
|
283
284
|
const message = JSON.parse(event.data);
|
284
|
-
|
285
|
-
(
|
286
|
-
|
287
|
-
return accum;
|
288
|
-
},
|
289
|
-
{}
|
290
|
-
);
|
285
|
+
(message.flags ?? []).forEach((flag) => {
|
286
|
+
this.values[contextString(context)][flag.flag] = flag.value;
|
287
|
+
});
|
291
288
|
if (this.flagListener) {
|
292
289
|
this.flagListener(this.values[contextString(context)]);
|
293
290
|
}
|
@@ -394,9 +391,13 @@ var useSchematicFlag = (key, opts) => {
|
|
394
391
|
(0, import_react.useEffect)(() => {
|
395
392
|
typeof flagValue === "undefined" ? setValue(fallback) : setValue(flagValue);
|
396
393
|
}, [key, fallback, flagValue]);
|
397
|
-
|
398
|
-
|
399
|
-
|
394
|
+
(0, import_react.useEffect)(() => {
|
395
|
+
if (!client)
|
396
|
+
return;
|
397
|
+
client.checkFlag({ key, fallback }).then((value2) => {
|
398
|
+
setValue(value2);
|
399
|
+
});
|
400
|
+
}, [client, key, fallback]);
|
400
401
|
return value;
|
401
402
|
};
|
402
403
|
/*! Bundled license information:
|
@@ -74,7 +74,7 @@ export declare const useSchematicEvents: (opts?: SchematicHookOpts) => {
|
|
74
74
|
identify: ((body: SchematicJS.EventBodyIdentify) => void) | undefined;
|
75
75
|
};
|
76
76
|
|
77
|
-
export declare const useSchematicFlag: (key: string, opts?: UseSchematicFlagOpts) => boolean
|
77
|
+
export declare const useSchematicFlag: (key: string, opts?: UseSchematicFlagOpts) => boolean;
|
78
78
|
|
79
79
|
export declare type UseSchematicFlagOpts = SchematicHookOpts & {
|
80
80
|
fallback?: boolean;
|
@@ -77,7 +77,7 @@ var Schematic = class {
|
|
77
77
|
});
|
78
78
|
}
|
79
79
|
}
|
80
|
-
|
80
|
+
async checkFlag(options) {
|
81
81
|
const { fallback = false, key } = options;
|
82
82
|
const context = options.context || this.context;
|
83
83
|
if (this.useWebSocket) {
|
@@ -103,7 +103,7 @@ var Schematic = class {
|
|
103
103
|
console.error("There was a problem with the fetch operation:", error);
|
104
104
|
return fallback;
|
105
105
|
});
|
106
|
-
}
|
106
|
+
}
|
107
107
|
// Make a REST API call to fetch all flag values for a given context
|
108
108
|
checkFlags = async (context) => {
|
109
109
|
context = context || this.context;
|
@@ -225,7 +225,7 @@ var Schematic = class {
|
|
225
225
|
if (this.conn) {
|
226
226
|
resolve();
|
227
227
|
}
|
228
|
-
const wsUrl = `${this.webSocketUrl}/flags/
|
228
|
+
const wsUrl = `${this.webSocketUrl}/flags/subscribe`;
|
229
229
|
const webSocket = new WebSocket(wsUrl);
|
230
230
|
this.conn = webSocket;
|
231
231
|
webSocket.onopen = () => {
|
@@ -251,13 +251,9 @@ var Schematic = class {
|
|
251
251
|
let resolved = false;
|
252
252
|
this.conn.onmessage = (event) => {
|
253
253
|
const message = JSON.parse(event.data);
|
254
|
-
|
255
|
-
(
|
256
|
-
|
257
|
-
return accum;
|
258
|
-
},
|
259
|
-
{}
|
260
|
-
);
|
254
|
+
(message.flags ?? []).forEach((flag) => {
|
255
|
+
this.values[contextString(context)][flag.flag] = flag.value;
|
256
|
+
});
|
261
257
|
if (this.flagListener) {
|
262
258
|
this.flagListener(this.values[contextString(context)]);
|
263
259
|
}
|
@@ -369,12 +365,17 @@ var useSchematicFlag = (key, opts) => {
|
|
369
365
|
useEffect(() => {
|
370
366
|
typeof flagValue === "undefined" ? setValue(fallback) : setValue(flagValue);
|
371
367
|
}, [key, fallback, flagValue]);
|
372
|
-
|
373
|
-
|
374
|
-
|
368
|
+
useEffect(() => {
|
369
|
+
if (!client)
|
370
|
+
return;
|
371
|
+
client.checkFlag({ key, fallback }).then((value2) => {
|
372
|
+
setValue(value2);
|
373
|
+
});
|
374
|
+
}, [client, key, fallback]);
|
375
375
|
return value;
|
376
376
|
};
|
377
377
|
export {
|
378
|
+
Schematic,
|
378
379
|
SchematicProvider,
|
379
380
|
useSchematic,
|
380
381
|
useSchematicContext,
|
package/package.json
CHANGED
@@ -42,9 +42,9 @@
|
|
42
42
|
"test": "jest --config jest.config.js"
|
43
43
|
},
|
44
44
|
"types": "dist/schematic-react.d.ts",
|
45
|
-
"version": "0.1.
|
45
|
+
"version": "0.1.7",
|
46
46
|
"dependencies": {
|
47
|
-
"@schematichq/schematic-js": "^0.1.
|
47
|
+
"@schematichq/schematic-js": "^0.1.8"
|
48
48
|
},
|
49
49
|
"peerDependencies": {
|
50
50
|
"react": ">=18"
|