@flopflip/http-adapter 15.1.1 → 15.1.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.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
package/dist/index.cjs
CHANGED
|
@@ -59,7 +59,7 @@ var _cache = require('@flopflip/cache');
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
var _types = require('@flopflip/types');
|
|
62
|
-
var
|
|
62
|
+
var _isEqualjs = require('lodash/isEqual.js'); var _isEqualjs2 = _interopRequireDefault(_isEqualjs);
|
|
63
63
|
var _mitt = require('mitt'); var _mitt2 = _interopRequireDefault(_mitt);
|
|
64
64
|
var _tinywarning = require('tiny-warning'); var _tinywarning2 = _interopRequireDefault(_tinywarning);
|
|
65
65
|
var intialAdapterState = {
|
|
@@ -84,7 +84,7 @@ var HttpAdapter = class {
|
|
|
84
84
|
if (previousFlags === void 0) {
|
|
85
85
|
return true;
|
|
86
86
|
}
|
|
87
|
-
return !
|
|
87
|
+
return !_isEqualjs2.default.call(void 0, nextFlags, previousFlags);
|
|
88
88
|
});
|
|
89
89
|
__privateAdd(this, _fetchFlags, (adapterArgs) => __async(null, null, function* () {
|
|
90
90
|
const flags = yield adapterArgs.execute(adapterArgs);
|
|
@@ -241,7 +241,7 @@ var HttpAdapter = class {
|
|
|
241
241
|
);
|
|
242
242
|
}
|
|
243
243
|
const nextUser = adapterArgs.user;
|
|
244
|
-
if (!
|
|
244
|
+
if (!_isEqualjs2.default.call(void 0, __privateGet(this, _adapterState).user, nextUser)) {
|
|
245
245
|
__privateGet(this, _adapterState).flags = {};
|
|
246
246
|
if (adapterArgs.cacheIdentifier) {
|
|
247
247
|
const cache = yield _cache.getCache.call(void 0,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/flopflip/flopflip/packages/http-adapter/dist/index.cjs","../src/adapter.ts","../src/index.ts"],"names":["_a","updatedFlags"],"mappings":"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","file":"/home/runner/work/flopflip/flopflip/packages/http-adapter/dist/index.cjs","sourcesContent":[null,"import {\n exposeGlobally,\n normalizeFlag,\n normalizeFlags,\n} from '@flopflip/adapter-utilities';\nimport { getCache } from '@flopflip/cache';\nimport {\n AdapterConfigurationStatus,\n AdapterInitializationStatus,\n AdapterSubscriptionStatus,\n type TAdapterEventHandlers,\n type TAdapterStatus,\n type TAdapterStatusChange,\n type TCacheIdentifiers,\n type TFlagName,\n type TFlagVariation,\n type TFlags,\n type TFlagsChange,\n type TFlagsUpdateFunction,\n type THttpAdapterArgs,\n type THttpAdapterInterface,\n type TUser,\n adapterIdentifiers,\n cacheModes,\n} from '@flopflip/types';\nimport isEqual from 'lodash/isEqual';\nimport mitt, { type Emitter } from 'mitt';\nimport warning from 'tiny-warning';\n\ntype TInternalStatusChange = '__internalConfiguredStatusChange__';\ntype TEmitterEvents = {\n __internalConfiguredStatusChange__: undefined;\n flagsStateChange: TFlags;\n statusStateChange: Partial<TAdapterStatus>;\n};\ntype THttpAdapterState = {\n flags: TFlags;\n user?: TUser;\n emitter: Emitter<TEmitterEvents>;\n lockedFlags: Set<TFlagName>;\n cacheIdentifier?: TCacheIdentifiers;\n};\n\nconst intialAdapterState: TAdapterStatus & THttpAdapterState = {\n subscriptionStatus: AdapterSubscriptionStatus.Subscribed,\n configurationStatus: AdapterConfigurationStatus.Unconfigured,\n flags: {},\n lockedFlags: new Set<TFlagName>(),\n user: {},\n emitter: mitt(),\n};\n\nclass HttpAdapter implements THttpAdapterInterface {\n id: typeof adapterIdentifiers.http;\n #__internalConfiguredStatusChange__: TInternalStatusChange =\n '__internalConfiguredStatusChange__';\n\n #flagPollingInternal?: ReturnType<typeof setInterval>;\n #adapterState: TAdapterStatus & THttpAdapterState;\n readonly #defaultpollingIntervalMs = 1000 * 60;\n\n constructor() {\n this.id = adapterIdentifiers.http;\n this.#adapterState = {\n ...intialAdapterState,\n };\n }\n\n readonly #getIsAdapterUnsubscribed = () =>\n this.#adapterState.subscriptionStatus ===\n AdapterSubscriptionStatus.Unsubscribed;\n\n readonly #getIsFlagLocked = (flagName: TFlagName) =>\n this.#adapterState.lockedFlags.has(flagName);\n\n readonly #didFlagsChange = (nextFlags: TFlags) => {\n const previousFlags = this.#adapterState.flags;\n\n if (previousFlags === undefined) {\n return true;\n }\n\n return !isEqual(nextFlags, previousFlags);\n };\n\n readonly #fetchFlags = async (\n adapterArgs: THttpAdapterArgs\n ): Promise<TFlags> => {\n const flags = await adapterArgs.execute(adapterArgs);\n\n return flags;\n };\n\n readonly #subscribeToFlagsChanges = (adapterArgs: THttpAdapterArgs) => {\n const pollingIntervalMs =\n adapterArgs.pollingIntervalMs ?? this.#defaultpollingIntervalMs;\n\n if (this.#flagPollingInternal) {\n clearInterval(this.#flagPollingInternal);\n }\n\n this.#flagPollingInternal = setInterval(async () => {\n if (!this.#getIsAdapterUnsubscribed()) {\n const nextFlags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n if (this.#didFlagsChange(nextFlags)) {\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(nextFlags);\n }\n\n this.#adapterState.flags = nextFlags;\n\n if (adapterArgs.cacheMode === cacheModes.lazy) {\n return;\n }\n\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n }\n }\n }, pollingIntervalMs);\n };\n\n getUser = () => this.#adapterState.user;\n\n updateFlags: TFlagsUpdateFunction = (flags, options) => {\n const isAdapterConfigured = this.getIsConfigurationStatus(\n AdapterConfigurationStatus.Configured\n );\n\n warning(\n isAdapterConfigured,\n '@flopflip/http-adapter: adapter not configured. Flags can not be updated before.'\n );\n\n if (!isAdapterConfigured) {\n return;\n }\n\n const previousFlags: TFlags | undefined = this.#adapterState.flags;\n\n const updatedFlags = Object.entries(flags).reduce(\n (updatedFlags, [flagName, flagValue]) => {\n const [normalizedFlagName, normalizedFlagValue] = normalizeFlag(\n flagName,\n flagValue\n );\n\n if (this.#getIsFlagLocked(normalizedFlagName)) {\n return updatedFlags;\n }\n\n if (options?.lockFlags) {\n this.#adapterState.lockedFlags.add(normalizedFlagName);\n }\n\n const updated = {\n ...updatedFlags,\n [normalizedFlagName]: normalizedFlagValue,\n };\n\n return updated;\n },\n {}\n );\n\n const nextFlags: TFlags = {\n ...previousFlags,\n ...updatedFlags,\n };\n\n this.#adapterState.flags = nextFlags;\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n };\n\n async configure(\n adapterArgs: THttpAdapterArgs,\n adapterEventHandlers: TAdapterEventHandlers\n ) {\n const handleFlagsChange = (nextFlags: TFlagsChange['flags']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onFlagsStateChange({\n flags: nextFlags,\n id: this.id,\n });\n };\n\n const handleStatusChange = (nextStatus: TAdapterStatusChange['status']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onStatusStateChange({\n status: nextStatus,\n id: this.id,\n });\n };\n\n this.#adapterState.emitter.on('flagsStateChange', handleFlagsChange);\n this.#adapterState.emitter.on('statusStateChange', handleStatusChange);\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configuring);\n\n this.#adapterState.user = adapterArgs.user;\n\n return Promise.resolve().then(async () => {\n let cachedFlags = null;\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cachedFlags = cache.get();\n\n if (cachedFlags) {\n this.#adapterState.flags = cachedFlags;\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n cachedFlags as TFlags\n );\n }\n }\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configured);\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(flags);\n }\n\n if (adapterArgs.cacheMode !== cacheModes.lazy) {\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n }\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n\n return {\n initializationStatus: AdapterInitializationStatus.Succeeded,\n };\n });\n }\n\n async reconfigure(\n adapterArgs: THttpAdapterArgs,\n _adapterEventHandlers: TAdapterEventHandlers\n ) {\n if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) {\n return Promise.reject(\n new Error(\n '@flopflip/http-adapter: please configure adapter before reconfiguring.'\n )\n );\n }\n\n const nextUser = adapterArgs.user;\n\n if (!isEqual(this.#adapterState.user, nextUser)) {\n this.#adapterState.flags = {};\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.unset();\n }\n\n this.#adapterState.user = nextUser;\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n }\n\n return Promise.resolve({\n initializationStatus: AdapterInitializationStatus.Succeeded,\n });\n }\n\n async waitUntilConfigured() {\n return new Promise<void>((resolve) => {\n if (\n this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)\n ) {\n resolve();\n } else {\n this.#adapterState.emitter.on(\n this.#__internalConfiguredStatusChange__,\n resolve\n );\n }\n });\n }\n\n getIsConfigurationStatus(configurationStatus: AdapterConfigurationStatus) {\n return this.#adapterState.configurationStatus === configurationStatus;\n }\n\n getFlag(flagName: TFlagName): TFlagVariation {\n return this.#adapterState?.flags[flagName];\n }\n\n reset = () => {\n this.#adapterState = {\n ...intialAdapterState,\n };\n };\n\n setConfigurationStatus(nextConfigurationStatus: AdapterConfigurationStatus) {\n this.#adapterState.configurationStatus = nextConfigurationStatus;\n\n this.#adapterState.emitter.emit('statusStateChange', {\n configurationStatus: this.#adapterState.configurationStatus,\n });\n }\n\n unsubscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Unsubscribed;\n };\n\n subscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Subscribed;\n };\n}\n\nconst adapter = new HttpAdapter();\n\nexposeGlobally(adapter);\n\nexport { adapter };\n","const version = '__@FLOPFLIP/VERSION_OF_RELEASE__';\n\nexport { adapter } from './adapter';\nexport { version };\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/flopflip/flopflip/packages/http-adapter/dist/index.cjs","../src/adapter.ts","../src/index.ts"],"names":["_a","updatedFlags"],"mappings":"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","file":"/home/runner/work/flopflip/flopflip/packages/http-adapter/dist/index.cjs","sourcesContent":[null,"import {\n exposeGlobally,\n normalizeFlag,\n normalizeFlags,\n} from '@flopflip/adapter-utilities';\nimport { getCache } from '@flopflip/cache';\nimport {\n AdapterConfigurationStatus,\n AdapterInitializationStatus,\n AdapterSubscriptionStatus,\n adapterIdentifiers,\n cacheModes,\n type TAdapterEventHandlers,\n type TAdapterStatus,\n type TAdapterStatusChange,\n type TCacheIdentifiers,\n type TFlagName,\n type TFlags,\n type TFlagsChange,\n type TFlagsUpdateFunction,\n type TFlagVariation,\n type THttpAdapterArgs,\n type THttpAdapterInterface,\n type TUser,\n} from '@flopflip/types';\nimport isEqual from 'lodash/isEqual.js';\nimport mitt, { type Emitter } from 'mitt';\nimport warning from 'tiny-warning';\n\ntype TInternalStatusChange = '__internalConfiguredStatusChange__';\ntype TEmitterEvents = {\n __internalConfiguredStatusChange__: undefined;\n flagsStateChange: TFlags;\n statusStateChange: Partial<TAdapterStatus>;\n};\ntype THttpAdapterState = {\n flags: TFlags;\n user?: TUser;\n emitter: Emitter<TEmitterEvents>;\n lockedFlags: Set<TFlagName>;\n cacheIdentifier?: TCacheIdentifiers;\n};\n\nconst intialAdapterState: TAdapterStatus & THttpAdapterState = {\n subscriptionStatus: AdapterSubscriptionStatus.Subscribed,\n configurationStatus: AdapterConfigurationStatus.Unconfigured,\n flags: {},\n lockedFlags: new Set<TFlagName>(),\n user: {},\n emitter: mitt(),\n};\n\nclass HttpAdapter implements THttpAdapterInterface {\n id: typeof adapterIdentifiers.http;\n #__internalConfiguredStatusChange__: TInternalStatusChange =\n '__internalConfiguredStatusChange__';\n\n #flagPollingInternal?: ReturnType<typeof setInterval>;\n #adapterState: TAdapterStatus & THttpAdapterState;\n readonly #defaultpollingIntervalMs = 1000 * 60;\n\n constructor() {\n this.id = adapterIdentifiers.http;\n this.#adapterState = {\n ...intialAdapterState,\n };\n }\n\n readonly #getIsAdapterUnsubscribed = () =>\n this.#adapterState.subscriptionStatus ===\n AdapterSubscriptionStatus.Unsubscribed;\n\n readonly #getIsFlagLocked = (flagName: TFlagName) =>\n this.#adapterState.lockedFlags.has(flagName);\n\n readonly #didFlagsChange = (nextFlags: TFlags) => {\n const previousFlags = this.#adapterState.flags;\n\n if (previousFlags === undefined) {\n return true;\n }\n\n return !isEqual(nextFlags, previousFlags);\n };\n\n readonly #fetchFlags = async (\n adapterArgs: THttpAdapterArgs\n ): Promise<TFlags> => {\n const flags = await adapterArgs.execute(adapterArgs);\n\n return flags;\n };\n\n readonly #subscribeToFlagsChanges = (adapterArgs: THttpAdapterArgs) => {\n const pollingIntervalMs =\n adapterArgs.pollingIntervalMs ?? this.#defaultpollingIntervalMs;\n\n if (this.#flagPollingInternal) {\n clearInterval(this.#flagPollingInternal);\n }\n\n this.#flagPollingInternal = setInterval(async () => {\n if (!this.#getIsAdapterUnsubscribed()) {\n const nextFlags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n if (this.#didFlagsChange(nextFlags)) {\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(nextFlags);\n }\n\n this.#adapterState.flags = nextFlags;\n\n if (adapterArgs.cacheMode === cacheModes.lazy) {\n return;\n }\n\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n }\n }\n }, pollingIntervalMs);\n };\n\n getUser = () => this.#adapterState.user;\n\n updateFlags: TFlagsUpdateFunction = (flags, options) => {\n const isAdapterConfigured = this.getIsConfigurationStatus(\n AdapterConfigurationStatus.Configured\n );\n\n warning(\n isAdapterConfigured,\n '@flopflip/http-adapter: adapter not configured. Flags can not be updated before.'\n );\n\n if (!isAdapterConfigured) {\n return;\n }\n\n const previousFlags: TFlags | undefined = this.#adapterState.flags;\n\n const updatedFlags = Object.entries(flags).reduce(\n (updatedFlags, [flagName, flagValue]) => {\n const [normalizedFlagName, normalizedFlagValue] = normalizeFlag(\n flagName,\n flagValue\n );\n\n if (this.#getIsFlagLocked(normalizedFlagName)) {\n return updatedFlags;\n }\n\n if (options?.lockFlags) {\n this.#adapterState.lockedFlags.add(normalizedFlagName);\n }\n\n const updated = {\n ...updatedFlags,\n [normalizedFlagName]: normalizedFlagValue,\n };\n\n return updated;\n },\n {}\n );\n\n const nextFlags: TFlags = {\n ...previousFlags,\n ...updatedFlags,\n };\n\n this.#adapterState.flags = nextFlags;\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n };\n\n async configure(\n adapterArgs: THttpAdapterArgs,\n adapterEventHandlers: TAdapterEventHandlers\n ) {\n const handleFlagsChange = (nextFlags: TFlagsChange['flags']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onFlagsStateChange({\n flags: nextFlags,\n id: this.id,\n });\n };\n\n const handleStatusChange = (nextStatus: TAdapterStatusChange['status']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onStatusStateChange({\n status: nextStatus,\n id: this.id,\n });\n };\n\n this.#adapterState.emitter.on('flagsStateChange', handleFlagsChange);\n this.#adapterState.emitter.on('statusStateChange', handleStatusChange);\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configuring);\n\n this.#adapterState.user = adapterArgs.user;\n\n return Promise.resolve().then(async () => {\n let cachedFlags = null;\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cachedFlags = cache.get();\n\n if (cachedFlags) {\n this.#adapterState.flags = cachedFlags;\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n cachedFlags as TFlags\n );\n }\n }\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configured);\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(flags);\n }\n\n if (adapterArgs.cacheMode !== cacheModes.lazy) {\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n }\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n\n return {\n initializationStatus: AdapterInitializationStatus.Succeeded,\n };\n });\n }\n\n async reconfigure(\n adapterArgs: THttpAdapterArgs,\n _adapterEventHandlers: TAdapterEventHandlers\n ) {\n if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) {\n return Promise.reject(\n new Error(\n '@flopflip/http-adapter: please configure adapter before reconfiguring.'\n )\n );\n }\n\n const nextUser = adapterArgs.user;\n\n if (!isEqual(this.#adapterState.user, nextUser)) {\n this.#adapterState.flags = {};\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.unset();\n }\n\n this.#adapterState.user = nextUser;\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n }\n\n return Promise.resolve({\n initializationStatus: AdapterInitializationStatus.Succeeded,\n });\n }\n\n async waitUntilConfigured() {\n return new Promise<void>((resolve) => {\n if (\n this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)\n ) {\n resolve();\n } else {\n this.#adapterState.emitter.on(\n this.#__internalConfiguredStatusChange__,\n resolve\n );\n }\n });\n }\n\n getIsConfigurationStatus(configurationStatus: AdapterConfigurationStatus) {\n return this.#adapterState.configurationStatus === configurationStatus;\n }\n\n getFlag(flagName: TFlagName): TFlagVariation {\n return this.#adapterState?.flags[flagName];\n }\n\n reset = () => {\n this.#adapterState = {\n ...intialAdapterState,\n };\n };\n\n setConfigurationStatus(nextConfigurationStatus: AdapterConfigurationStatus) {\n this.#adapterState.configurationStatus = nextConfigurationStatus;\n\n this.#adapterState.emitter.emit('statusStateChange', {\n configurationStatus: this.#adapterState.configurationStatus,\n });\n }\n\n unsubscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Unsubscribed;\n };\n\n subscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Subscribed;\n };\n}\n\nconst adapter = new HttpAdapter();\n\nexposeGlobally(adapter);\n\nexport { adapter };\n","const version = '__@FLOPFLIP/VERSION_OF_RELEASE__';\n\nexport { adapter } from './adapter';\nexport { version };\n"]}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapter.ts","../src/index.ts"],"sourcesContent":["import {\n exposeGlobally,\n normalizeFlag,\n normalizeFlags,\n} from '@flopflip/adapter-utilities';\nimport { getCache } from '@flopflip/cache';\nimport {\n AdapterConfigurationStatus,\n AdapterInitializationStatus,\n AdapterSubscriptionStatus,\n type TAdapterEventHandlers,\n type TAdapterStatus,\n type TAdapterStatusChange,\n type TCacheIdentifiers,\n type TFlagName,\n type TFlagVariation,\n type TFlags,\n type TFlagsChange,\n type TFlagsUpdateFunction,\n type THttpAdapterArgs,\n type THttpAdapterInterface,\n type TUser,\n adapterIdentifiers,\n cacheModes,\n} from '@flopflip/types';\nimport isEqual from 'lodash/isEqual';\nimport mitt, { type Emitter } from 'mitt';\nimport warning from 'tiny-warning';\n\ntype TInternalStatusChange = '__internalConfiguredStatusChange__';\ntype TEmitterEvents = {\n __internalConfiguredStatusChange__: undefined;\n flagsStateChange: TFlags;\n statusStateChange: Partial<TAdapterStatus>;\n};\ntype THttpAdapterState = {\n flags: TFlags;\n user?: TUser;\n emitter: Emitter<TEmitterEvents>;\n lockedFlags: Set<TFlagName>;\n cacheIdentifier?: TCacheIdentifiers;\n};\n\nconst intialAdapterState: TAdapterStatus & THttpAdapterState = {\n subscriptionStatus: AdapterSubscriptionStatus.Subscribed,\n configurationStatus: AdapterConfigurationStatus.Unconfigured,\n flags: {},\n lockedFlags: new Set<TFlagName>(),\n user: {},\n emitter: mitt(),\n};\n\nclass HttpAdapter implements THttpAdapterInterface {\n id: typeof adapterIdentifiers.http;\n #__internalConfiguredStatusChange__: TInternalStatusChange =\n '__internalConfiguredStatusChange__';\n\n #flagPollingInternal?: ReturnType<typeof setInterval>;\n #adapterState: TAdapterStatus & THttpAdapterState;\n readonly #defaultpollingIntervalMs = 1000 * 60;\n\n constructor() {\n this.id = adapterIdentifiers.http;\n this.#adapterState = {\n ...intialAdapterState,\n };\n }\n\n readonly #getIsAdapterUnsubscribed = () =>\n this.#adapterState.subscriptionStatus ===\n AdapterSubscriptionStatus.Unsubscribed;\n\n readonly #getIsFlagLocked = (flagName: TFlagName) =>\n this.#adapterState.lockedFlags.has(flagName);\n\n readonly #didFlagsChange = (nextFlags: TFlags) => {\n const previousFlags = this.#adapterState.flags;\n\n if (previousFlags === undefined) {\n return true;\n }\n\n return !isEqual(nextFlags, previousFlags);\n };\n\n readonly #fetchFlags = async (\n adapterArgs: THttpAdapterArgs\n ): Promise<TFlags> => {\n const flags = await adapterArgs.execute(adapterArgs);\n\n return flags;\n };\n\n readonly #subscribeToFlagsChanges = (adapterArgs: THttpAdapterArgs) => {\n const pollingIntervalMs =\n adapterArgs.pollingIntervalMs ?? this.#defaultpollingIntervalMs;\n\n if (this.#flagPollingInternal) {\n clearInterval(this.#flagPollingInternal);\n }\n\n this.#flagPollingInternal = setInterval(async () => {\n if (!this.#getIsAdapterUnsubscribed()) {\n const nextFlags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n if (this.#didFlagsChange(nextFlags)) {\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(nextFlags);\n }\n\n this.#adapterState.flags = nextFlags;\n\n if (adapterArgs.cacheMode === cacheModes.lazy) {\n return;\n }\n\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n }\n }\n }, pollingIntervalMs);\n };\n\n getUser = () => this.#adapterState.user;\n\n updateFlags: TFlagsUpdateFunction = (flags, options) => {\n const isAdapterConfigured = this.getIsConfigurationStatus(\n AdapterConfigurationStatus.Configured\n );\n\n warning(\n isAdapterConfigured,\n '@flopflip/http-adapter: adapter not configured. Flags can not be updated before.'\n );\n\n if (!isAdapterConfigured) {\n return;\n }\n\n const previousFlags: TFlags | undefined = this.#adapterState.flags;\n\n const updatedFlags = Object.entries(flags).reduce(\n (updatedFlags, [flagName, flagValue]) => {\n const [normalizedFlagName, normalizedFlagValue] = normalizeFlag(\n flagName,\n flagValue\n );\n\n if (this.#getIsFlagLocked(normalizedFlagName)) {\n return updatedFlags;\n }\n\n if (options?.lockFlags) {\n this.#adapterState.lockedFlags.add(normalizedFlagName);\n }\n\n const updated = {\n ...updatedFlags,\n [normalizedFlagName]: normalizedFlagValue,\n };\n\n return updated;\n },\n {}\n );\n\n const nextFlags: TFlags = {\n ...previousFlags,\n ...updatedFlags,\n };\n\n this.#adapterState.flags = nextFlags;\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n };\n\n async configure(\n adapterArgs: THttpAdapterArgs,\n adapterEventHandlers: TAdapterEventHandlers\n ) {\n const handleFlagsChange = (nextFlags: TFlagsChange['flags']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onFlagsStateChange({\n flags: nextFlags,\n id: this.id,\n });\n };\n\n const handleStatusChange = (nextStatus: TAdapterStatusChange['status']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onStatusStateChange({\n status: nextStatus,\n id: this.id,\n });\n };\n\n this.#adapterState.emitter.on('flagsStateChange', handleFlagsChange);\n this.#adapterState.emitter.on('statusStateChange', handleStatusChange);\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configuring);\n\n this.#adapterState.user = adapterArgs.user;\n\n return Promise.resolve().then(async () => {\n let cachedFlags = null;\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cachedFlags = cache.get();\n\n if (cachedFlags) {\n this.#adapterState.flags = cachedFlags;\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n cachedFlags as TFlags\n );\n }\n }\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configured);\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(flags);\n }\n\n if (adapterArgs.cacheMode !== cacheModes.lazy) {\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n }\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n\n return {\n initializationStatus: AdapterInitializationStatus.Succeeded,\n };\n });\n }\n\n async reconfigure(\n adapterArgs: THttpAdapterArgs,\n _adapterEventHandlers: TAdapterEventHandlers\n ) {\n if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) {\n return Promise.reject(\n new Error(\n '@flopflip/http-adapter: please configure adapter before reconfiguring.'\n )\n );\n }\n\n const nextUser = adapterArgs.user;\n\n if (!isEqual(this.#adapterState.user, nextUser)) {\n this.#adapterState.flags = {};\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.unset();\n }\n\n this.#adapterState.user = nextUser;\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n }\n\n return Promise.resolve({\n initializationStatus: AdapterInitializationStatus.Succeeded,\n });\n }\n\n async waitUntilConfigured() {\n return new Promise<void>((resolve) => {\n if (\n this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)\n ) {\n resolve();\n } else {\n this.#adapterState.emitter.on(\n this.#__internalConfiguredStatusChange__,\n resolve\n );\n }\n });\n }\n\n getIsConfigurationStatus(configurationStatus: AdapterConfigurationStatus) {\n return this.#adapterState.configurationStatus === configurationStatus;\n }\n\n getFlag(flagName: TFlagName): TFlagVariation {\n return this.#adapterState?.flags[flagName];\n }\n\n reset = () => {\n this.#adapterState = {\n ...intialAdapterState,\n };\n };\n\n setConfigurationStatus(nextConfigurationStatus: AdapterConfigurationStatus) {\n this.#adapterState.configurationStatus = nextConfigurationStatus;\n\n this.#adapterState.emitter.emit('statusStateChange', {\n configurationStatus: this.#adapterState.configurationStatus,\n });\n }\n\n unsubscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Unsubscribed;\n };\n\n subscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Subscribed;\n };\n}\n\nconst adapter = new HttpAdapter();\n\nexposeGlobally(adapter);\n\nexport { adapter };\n","const version = '__@FLOPFLIP/VERSION_OF_RELEASE__';\n\nexport { adapter } from './adapter';\nexport { version };\n"],"mappings":"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","names":["_a","updatedFlags"]}
|
|
1
|
+
{"version":3,"sources":["../src/adapter.ts","../src/index.ts"],"sourcesContent":["import {\n exposeGlobally,\n normalizeFlag,\n normalizeFlags,\n} from '@flopflip/adapter-utilities';\nimport { getCache } from '@flopflip/cache';\nimport {\n AdapterConfigurationStatus,\n AdapterInitializationStatus,\n AdapterSubscriptionStatus,\n adapterIdentifiers,\n cacheModes,\n type TAdapterEventHandlers,\n type TAdapterStatus,\n type TAdapterStatusChange,\n type TCacheIdentifiers,\n type TFlagName,\n type TFlags,\n type TFlagsChange,\n type TFlagsUpdateFunction,\n type TFlagVariation,\n type THttpAdapterArgs,\n type THttpAdapterInterface,\n type TUser,\n} from '@flopflip/types';\nimport isEqual from 'lodash/isEqual.js';\nimport mitt, { type Emitter } from 'mitt';\nimport warning from 'tiny-warning';\n\ntype TInternalStatusChange = '__internalConfiguredStatusChange__';\ntype TEmitterEvents = {\n __internalConfiguredStatusChange__: undefined;\n flagsStateChange: TFlags;\n statusStateChange: Partial<TAdapterStatus>;\n};\ntype THttpAdapterState = {\n flags: TFlags;\n user?: TUser;\n emitter: Emitter<TEmitterEvents>;\n lockedFlags: Set<TFlagName>;\n cacheIdentifier?: TCacheIdentifiers;\n};\n\nconst intialAdapterState: TAdapterStatus & THttpAdapterState = {\n subscriptionStatus: AdapterSubscriptionStatus.Subscribed,\n configurationStatus: AdapterConfigurationStatus.Unconfigured,\n flags: {},\n lockedFlags: new Set<TFlagName>(),\n user: {},\n emitter: mitt(),\n};\n\nclass HttpAdapter implements THttpAdapterInterface {\n id: typeof adapterIdentifiers.http;\n #__internalConfiguredStatusChange__: TInternalStatusChange =\n '__internalConfiguredStatusChange__';\n\n #flagPollingInternal?: ReturnType<typeof setInterval>;\n #adapterState: TAdapterStatus & THttpAdapterState;\n readonly #defaultpollingIntervalMs = 1000 * 60;\n\n constructor() {\n this.id = adapterIdentifiers.http;\n this.#adapterState = {\n ...intialAdapterState,\n };\n }\n\n readonly #getIsAdapterUnsubscribed = () =>\n this.#adapterState.subscriptionStatus ===\n AdapterSubscriptionStatus.Unsubscribed;\n\n readonly #getIsFlagLocked = (flagName: TFlagName) =>\n this.#adapterState.lockedFlags.has(flagName);\n\n readonly #didFlagsChange = (nextFlags: TFlags) => {\n const previousFlags = this.#adapterState.flags;\n\n if (previousFlags === undefined) {\n return true;\n }\n\n return !isEqual(nextFlags, previousFlags);\n };\n\n readonly #fetchFlags = async (\n adapterArgs: THttpAdapterArgs\n ): Promise<TFlags> => {\n const flags = await adapterArgs.execute(adapterArgs);\n\n return flags;\n };\n\n readonly #subscribeToFlagsChanges = (adapterArgs: THttpAdapterArgs) => {\n const pollingIntervalMs =\n adapterArgs.pollingIntervalMs ?? this.#defaultpollingIntervalMs;\n\n if (this.#flagPollingInternal) {\n clearInterval(this.#flagPollingInternal);\n }\n\n this.#flagPollingInternal = setInterval(async () => {\n if (!this.#getIsAdapterUnsubscribed()) {\n const nextFlags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n if (this.#didFlagsChange(nextFlags)) {\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(nextFlags);\n }\n\n this.#adapterState.flags = nextFlags;\n\n if (adapterArgs.cacheMode === cacheModes.lazy) {\n return;\n }\n\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n }\n }\n }, pollingIntervalMs);\n };\n\n getUser = () => this.#adapterState.user;\n\n updateFlags: TFlagsUpdateFunction = (flags, options) => {\n const isAdapterConfigured = this.getIsConfigurationStatus(\n AdapterConfigurationStatus.Configured\n );\n\n warning(\n isAdapterConfigured,\n '@flopflip/http-adapter: adapter not configured. Flags can not be updated before.'\n );\n\n if (!isAdapterConfigured) {\n return;\n }\n\n const previousFlags: TFlags | undefined = this.#adapterState.flags;\n\n const updatedFlags = Object.entries(flags).reduce(\n (updatedFlags, [flagName, flagValue]) => {\n const [normalizedFlagName, normalizedFlagValue] = normalizeFlag(\n flagName,\n flagValue\n );\n\n if (this.#getIsFlagLocked(normalizedFlagName)) {\n return updatedFlags;\n }\n\n if (options?.lockFlags) {\n this.#adapterState.lockedFlags.add(normalizedFlagName);\n }\n\n const updated = {\n ...updatedFlags,\n [normalizedFlagName]: normalizedFlagValue,\n };\n\n return updated;\n },\n {}\n );\n\n const nextFlags: TFlags = {\n ...previousFlags,\n ...updatedFlags,\n };\n\n this.#adapterState.flags = nextFlags;\n this.#adapterState.emitter.emit('flagsStateChange', nextFlags);\n };\n\n async configure(\n adapterArgs: THttpAdapterArgs,\n adapterEventHandlers: TAdapterEventHandlers\n ) {\n const handleFlagsChange = (nextFlags: TFlagsChange['flags']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onFlagsStateChange({\n flags: nextFlags,\n id: this.id,\n });\n };\n\n const handleStatusChange = (nextStatus: TAdapterStatusChange['status']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onStatusStateChange({\n status: nextStatus,\n id: this.id,\n });\n };\n\n this.#adapterState.emitter.on('flagsStateChange', handleFlagsChange);\n this.#adapterState.emitter.on('statusStateChange', handleStatusChange);\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configuring);\n\n this.#adapterState.user = adapterArgs.user;\n\n return Promise.resolve().then(async () => {\n let cachedFlags = null;\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cachedFlags = cache.get();\n\n if (cachedFlags) {\n this.#adapterState.flags = cachedFlags;\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n cachedFlags as TFlags\n );\n }\n }\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configured);\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.set(flags);\n }\n\n if (adapterArgs.cacheMode !== cacheModes.lazy) {\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n }\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n\n return {\n initializationStatus: AdapterInitializationStatus.Succeeded,\n };\n });\n }\n\n async reconfigure(\n adapterArgs: THttpAdapterArgs,\n _adapterEventHandlers: TAdapterEventHandlers\n ) {\n if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) {\n return Promise.reject(\n new Error(\n '@flopflip/http-adapter: please configure adapter before reconfiguring.'\n )\n );\n }\n\n const nextUser = adapterArgs.user;\n\n if (!isEqual(this.#adapterState.user, nextUser)) {\n this.#adapterState.flags = {};\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.http,\n { key: this.#adapterState.user?.key }\n );\n\n cache.unset();\n }\n\n this.#adapterState.user = nextUser;\n\n const flags = normalizeFlags(await this.#fetchFlags(adapterArgs));\n\n this.#adapterState.flags = flags;\n\n this.#adapterState.emitter.emit('flagsStateChange', flags);\n\n this.#adapterState.emitter.emit(this.#__internalConfiguredStatusChange__);\n\n this.#subscribeToFlagsChanges(adapterArgs);\n }\n\n return Promise.resolve({\n initializationStatus: AdapterInitializationStatus.Succeeded,\n });\n }\n\n async waitUntilConfigured() {\n return new Promise<void>((resolve) => {\n if (\n this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)\n ) {\n resolve();\n } else {\n this.#adapterState.emitter.on(\n this.#__internalConfiguredStatusChange__,\n resolve\n );\n }\n });\n }\n\n getIsConfigurationStatus(configurationStatus: AdapterConfigurationStatus) {\n return this.#adapterState.configurationStatus === configurationStatus;\n }\n\n getFlag(flagName: TFlagName): TFlagVariation {\n return this.#adapterState?.flags[flagName];\n }\n\n reset = () => {\n this.#adapterState = {\n ...intialAdapterState,\n };\n };\n\n setConfigurationStatus(nextConfigurationStatus: AdapterConfigurationStatus) {\n this.#adapterState.configurationStatus = nextConfigurationStatus;\n\n this.#adapterState.emitter.emit('statusStateChange', {\n configurationStatus: this.#adapterState.configurationStatus,\n });\n }\n\n unsubscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Unsubscribed;\n };\n\n subscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Subscribed;\n };\n}\n\nconst adapter = new HttpAdapter();\n\nexposeGlobally(adapter);\n\nexport { adapter };\n","const version = '__@FLOPFLIP/VERSION_OF_RELEASE__';\n\nexport { adapter } from './adapter';\nexport { version };\n"],"mappings":"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","names":["_a","updatedFlags"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flopflip/http-adapter",
|
|
3
|
-
"version": "15.1.
|
|
3
|
+
"version": "15.1.3",
|
|
4
4
|
"description": "An HTTP adapter for flipflop",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -44,20 +44,20 @@
|
|
|
44
44
|
"client"
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@babel/runtime": "7.27.
|
|
47
|
+
"@babel/runtime": "7.27.6",
|
|
48
48
|
"lodash": "4.17.21",
|
|
49
49
|
"mitt": "3.0.1",
|
|
50
50
|
"tiny-warning": "1.0.3",
|
|
51
|
-
"@flopflip/adapter-utilities": "15.1.
|
|
52
|
-
"@flopflip/cache": "15.1.
|
|
53
|
-
"@flopflip/
|
|
54
|
-
"@flopflip/sessionstorage-cache": "15.1.
|
|
55
|
-
"@flopflip/types": "15.1.
|
|
51
|
+
"@flopflip/adapter-utilities": "15.1.3",
|
|
52
|
+
"@flopflip/localstorage-cache": "15.1.3",
|
|
53
|
+
"@flopflip/cache": "15.1.3",
|
|
54
|
+
"@flopflip/sessionstorage-cache": "15.1.3",
|
|
55
|
+
"@flopflip/types": "15.1.3"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"globalthis": "1.0.4",
|
|
59
59
|
"tsup": "8.5.0",
|
|
60
|
-
"@flopflip/tsconfig": "15.1.
|
|
60
|
+
"@flopflip/tsconfig": "15.1.3"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "rimraf dist && tsup",
|