@flagify/node 1.0.1 → 1.0.3
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.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +24 -2
- package/dist/index.mjs +24 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -106,6 +106,7 @@ interface RealtimeEvents {
|
|
|
106
106
|
onFlagChange: (event: FlagChangeEvent) => void;
|
|
107
107
|
onConnected: () => void;
|
|
108
108
|
onReconnected: () => void;
|
|
109
|
+
onInitialSync: (flags: unknown[]) => void;
|
|
109
110
|
onError: (error: Error) => void;
|
|
110
111
|
}
|
|
111
112
|
interface FlagChangeEvent {
|
|
@@ -247,7 +248,9 @@ interface FlagifyFlaggy {
|
|
|
247
248
|
segmentId?: string;
|
|
248
249
|
valueOverride?: unknown;
|
|
249
250
|
rolloutPercentage?: number;
|
|
251
|
+
rolloutSalt?: string;
|
|
250
252
|
enabled: boolean;
|
|
253
|
+
matchType?: 'ALL' | 'ANY';
|
|
251
254
|
conditions?: Array<{
|
|
252
255
|
attribute: string;
|
|
253
256
|
operator: 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'in' | 'not_in' | 'gt' | 'lt';
|
package/dist/index.d.ts
CHANGED
|
@@ -106,6 +106,7 @@ interface RealtimeEvents {
|
|
|
106
106
|
onFlagChange: (event: FlagChangeEvent) => void;
|
|
107
107
|
onConnected: () => void;
|
|
108
108
|
onReconnected: () => void;
|
|
109
|
+
onInitialSync: (flags: unknown[]) => void;
|
|
109
110
|
onError: (error: Error) => void;
|
|
110
111
|
}
|
|
111
112
|
interface FlagChangeEvent {
|
|
@@ -247,7 +248,9 @@ interface FlagifyFlaggy {
|
|
|
247
248
|
segmentId?: string;
|
|
248
249
|
valueOverride?: unknown;
|
|
249
250
|
rolloutPercentage?: number;
|
|
251
|
+
rolloutSalt?: string;
|
|
250
252
|
enabled: boolean;
|
|
253
|
+
matchType?: 'ALL' | 'ANY';
|
|
251
254
|
conditions?: Array<{
|
|
252
255
|
attribute: string;
|
|
253
256
|
operator: 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'in' | 'not_in' | 'gt' | 'lt';
|
package/dist/index.js
CHANGED
|
@@ -146,6 +146,15 @@ var RealtimeListener = class {
|
|
|
146
146
|
}
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
|
+
if (eventType === "initial_sync" && data) {
|
|
150
|
+
try {
|
|
151
|
+
const flags = JSON.parse(data);
|
|
152
|
+
this.events.onInitialSync(flags);
|
|
153
|
+
} catch {
|
|
154
|
+
console.warn("[Flagify] Failed to parse initial_sync event:", data);
|
|
155
|
+
}
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
149
158
|
if (eventType === "flag_change" && data) {
|
|
150
159
|
try {
|
|
151
160
|
const parsed = JSON.parse(data);
|
|
@@ -339,8 +348,21 @@ var Flagify = class {
|
|
|
339
348
|
console.info("[Flagify] Realtime connected");
|
|
340
349
|
},
|
|
341
350
|
onReconnected: () => {
|
|
342
|
-
console.info("[Flagify] Realtime reconnected
|
|
343
|
-
|
|
351
|
+
console.info("[Flagify] Realtime reconnected");
|
|
352
|
+
},
|
|
353
|
+
onInitialSync: (flags) => {
|
|
354
|
+
for (const raw of flags) {
|
|
355
|
+
const flag = raw;
|
|
356
|
+
this.flagCache.set(flag.key, {
|
|
357
|
+
flag,
|
|
358
|
+
lastFetchedAt: Date.now()
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
console.info(`[Flagify] Synced ${flags.length} flags via SSE`);
|
|
362
|
+
const user = this.config.options?.user;
|
|
363
|
+
if (user) {
|
|
364
|
+
this.evaluateWithUser(user);
|
|
365
|
+
}
|
|
344
366
|
},
|
|
345
367
|
onFlagChange: (event) => {
|
|
346
368
|
console.debug(`[Flagify] Flag changed: ${event.flagKey} (${event.action})`);
|
package/dist/index.mjs
CHANGED
|
@@ -119,6 +119,15 @@ var RealtimeListener = class {
|
|
|
119
119
|
}
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
|
+
if (eventType === "initial_sync" && data) {
|
|
123
|
+
try {
|
|
124
|
+
const flags = JSON.parse(data);
|
|
125
|
+
this.events.onInitialSync(flags);
|
|
126
|
+
} catch {
|
|
127
|
+
console.warn("[Flagify] Failed to parse initial_sync event:", data);
|
|
128
|
+
}
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
122
131
|
if (eventType === "flag_change" && data) {
|
|
123
132
|
try {
|
|
124
133
|
const parsed = JSON.parse(data);
|
|
@@ -312,8 +321,21 @@ var Flagify = class {
|
|
|
312
321
|
console.info("[Flagify] Realtime connected");
|
|
313
322
|
},
|
|
314
323
|
onReconnected: () => {
|
|
315
|
-
console.info("[Flagify] Realtime reconnected
|
|
316
|
-
|
|
324
|
+
console.info("[Flagify] Realtime reconnected");
|
|
325
|
+
},
|
|
326
|
+
onInitialSync: (flags) => {
|
|
327
|
+
for (const raw of flags) {
|
|
328
|
+
const flag = raw;
|
|
329
|
+
this.flagCache.set(flag.key, {
|
|
330
|
+
flag,
|
|
331
|
+
lastFetchedAt: Date.now()
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
console.info(`[Flagify] Synced ${flags.length} flags via SSE`);
|
|
335
|
+
const user = this.config.options?.user;
|
|
336
|
+
if (user) {
|
|
337
|
+
this.evaluateWithUser(user);
|
|
338
|
+
}
|
|
317
339
|
},
|
|
318
340
|
onFlagChange: (event) => {
|
|
319
341
|
console.debug(`[Flagify] Flag changed: ${event.flagKey} (${event.action})`);
|
package/package.json
CHANGED