@flags-sdk/vercel 0.1.3 → 0.1.5
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 +15 -0
- package/dist/index.cjs +52 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +19 -0
- package/package.json +10 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @flags-sdk/vercel
|
|
2
2
|
|
|
3
|
+
## 0.1.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6a7313a: publish cjs bundles besides esm
|
|
8
|
+
- Updated dependencies [6a7313a]
|
|
9
|
+
- @vercel/flags-core@0.1.5
|
|
10
|
+
|
|
11
|
+
## 0.1.4
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [df76e2c]
|
|
16
|
+
- @vercel/flags-core@0.1.4
|
|
17
|
+
|
|
3
18
|
## 0.1.3
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/index.ts
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _flagscore = require('@vercel/flags-core');
|
|
8
|
+
function createVercelAdapter(connectionStringOrFlagsClient) {
|
|
9
|
+
const flagsClient = typeof connectionStringOrFlagsClient === "string" ? _flagscore.createClientFromConnectionString.call(void 0, connectionStringOrFlagsClient) : connectionStringOrFlagsClient;
|
|
10
|
+
return function vercelAdapter2() {
|
|
11
|
+
return {
|
|
12
|
+
origin: {
|
|
13
|
+
provider: "vercel",
|
|
14
|
+
projectId: flagsClient.dataSource.projectId,
|
|
15
|
+
env: flagsClient.environment
|
|
16
|
+
},
|
|
17
|
+
config: { reportValue: false },
|
|
18
|
+
async decide({ key, entities, headers }) {
|
|
19
|
+
const evaluationResultPromise = _flagscore.store.run(headers, async () => {
|
|
20
|
+
return flagsClient.evaluate(
|
|
21
|
+
key,
|
|
22
|
+
void 0,
|
|
23
|
+
entities
|
|
24
|
+
);
|
|
25
|
+
});
|
|
26
|
+
const evaluationResult = await evaluationResultPromise;
|
|
27
|
+
if (evaluationResult.value === void 0) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
evaluationResult.reason === _flagscore.Reason.ERROR && evaluationResult.errorMessage ? `flags: Could not evaluate flag "${key}". ${evaluationResult.errorMessage}` : `flags: Could not evaluate flag "${key}"`
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
return evaluationResult.value;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
var defaultVercelAdapter;
|
|
38
|
+
function resetDefaultVercelAdapter() {
|
|
39
|
+
defaultVercelAdapter = void 0;
|
|
40
|
+
}
|
|
41
|
+
function vercelAdapter() {
|
|
42
|
+
if (!defaultVercelAdapter) {
|
|
43
|
+
defaultVercelAdapter = createVercelAdapter(_flagscore.getDefaultFlagsClient.call(void 0, ));
|
|
44
|
+
}
|
|
45
|
+
return defaultVercelAdapter();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
exports.createVercelAdapter = createVercelAdapter; exports.resetDefaultVercelAdapter = resetDefaultVercelAdapter; exports.vercelAdapter = vercelAdapter;
|
|
52
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["vercelAdapter"],"mappings":";AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,oBAEd,+BACA;AACA,QAAM,cACJ,OAAO,kCAAkC,WACrC,iCAAiC,6BAA6B,IAC9D;AAEN,SAAO,SAASA,iBAGd;AACA,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,UAAU;AAAA,QACV,WAAW,YAAY,WAAW;AAAA,QAClC,KAAK,YAAY;AAAA,MACnB;AAAA,MACA,QAAQ,EAAE,aAAa,MAAM;AAAA,MAC7B,MAAM,OAAO,EAAE,KAAK,UAAU,QAAQ,GAAuB;AAC3D,cAAM,0BAA0B,MAAM,IAAI,SAAS,YAAY;AAC7D,iBAAO,YAAY;AAAA,YACjB;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAC;AAED,cAAM,mBAAmB,MAAM;AAC/B,YAAI,iBAAiB,UAAU,QAAW;AAExC,gBAAM,IAAI;AAAA,YACR,iBAAiB,WAAW,OAAO,SACjC,iBAAiB,eACf,mCAAmC,GAAG,MAAM,iBAAiB,YAAY,KACzE,mCAAmC,GAAG;AAAA,UAC5C;AAAA,QACF;AAIA,eAAO,iBAAiB;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAI;AAKG,SAAS,4BAA4B;AAC1C,yBAAuB;AACzB;AAOO,SAAS,gBAGd;AACA,MAAI,CAAC,sBAAsB;AACzB,2BAAuB,oBAAoB,sBAAsB,CAAC;AAAA,EACpE;AAEA,SAAO,qBAA8C;AACvD","sourcesContent":["import {\n createClientFromConnectionString,\n type FlagsClient,\n getDefaultFlagsClient,\n Reason,\n store,\n} from '@vercel/flags-core';\nimport type { Adapter, FlagDeclaration } from 'flags';\n\nexport type VercelAdapterDeclaration<ValueType, EntitiesType> = Omit<\n FlagDeclaration<ValueType, EntitiesType>,\n 'decide' | 'origin'\n>;\n\n/**\n * Allows creating a custom Vercel adapter for feature flags\n */\nexport function createVercelAdapter(\n // usually a connection string, but can also be a pre-configured FlagsClient\n connectionStringOrFlagsClient: string | FlagsClient,\n) {\n const flagsClient =\n typeof connectionStringOrFlagsClient === 'string'\n ? createClientFromConnectionString(connectionStringOrFlagsClient)\n : connectionStringOrFlagsClient;\n\n return function vercelAdapter<ValueType, EntitiesType>(): Adapter<\n ValueType,\n EntitiesType\n > {\n return {\n origin: {\n provider: 'vercel',\n projectId: flagsClient.dataSource.projectId,\n env: flagsClient.environment,\n },\n config: { reportValue: false },\n async decide({ key, entities, headers }): Promise<ValueType> {\n const evaluationResultPromise = store.run(headers, async () => {\n return flagsClient.evaluate<ValueType, EntitiesType>(\n key,\n undefined,\n entities,\n );\n });\n\n const evaluationResult = await evaluationResultPromise;\n if (evaluationResult.value === undefined) {\n // if there was no defaultValue we need to throw\n throw new Error(\n evaluationResult.reason === Reason.ERROR &&\n evaluationResult.errorMessage\n ? `flags: Could not evaluate flag \"${key}\". ${evaluationResult.errorMessage}`\n : `flags: Could not evaluate flag \"${key}\"`,\n );\n }\n\n // runs when the flag evaluates successfully or\n // when there was an error but the defaultValue was set\n return evaluationResult.value;\n },\n };\n };\n}\n\nlet defaultVercelAdapter: ReturnType<typeof createVercelAdapter> | undefined;\n\n/**\n * Internal function for testing purposes\n */\nexport function resetDefaultVercelAdapter() {\n defaultVercelAdapter = undefined;\n}\n\n/**\n * A default Vercel adapter for feature flags\n *\n */\n// This is initialized lazily to avoid warning when it is not actually used and env vars are missing.\nexport function vercelAdapter<ValueType, EntitiesType>(): Adapter<\n ValueType,\n EntitiesType\n> {\n if (!defaultVercelAdapter) {\n defaultVercelAdapter = createVercelAdapter(getDefaultFlagsClient());\n }\n\n return defaultVercelAdapter<ValueType, EntitiesType>();\n}\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FlagsClient } from '@vercel/flags-core';
|
|
2
|
+
import { FlagDeclaration, Adapter } from 'flags';
|
|
3
|
+
|
|
4
|
+
type VercelAdapterDeclaration<ValueType, EntitiesType> = Omit<FlagDeclaration<ValueType, EntitiesType>, 'decide' | 'origin'>;
|
|
5
|
+
/**
|
|
6
|
+
* Allows creating a custom Vercel adapter for feature flags
|
|
7
|
+
*/
|
|
8
|
+
declare function createVercelAdapter(connectionStringOrFlagsClient: string | FlagsClient): <ValueType, EntitiesType>() => Adapter<ValueType, EntitiesType>;
|
|
9
|
+
/**
|
|
10
|
+
* Internal function for testing purposes
|
|
11
|
+
*/
|
|
12
|
+
declare function resetDefaultVercelAdapter(): void;
|
|
13
|
+
/**
|
|
14
|
+
* A default Vercel adapter for feature flags
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
declare function vercelAdapter<ValueType, EntitiesType>(): Adapter<ValueType, EntitiesType>;
|
|
18
|
+
|
|
19
|
+
export { type VercelAdapterDeclaration, createVercelAdapter, resetDefaultVercelAdapter, vercelAdapter };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flags-sdk/vercel",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,13 +8,17 @@
|
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"type": "module",
|
|
10
10
|
"exports": {
|
|
11
|
-
".":
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
12
15
|
},
|
|
13
16
|
"main": "./dist/index.js",
|
|
14
17
|
"typesVersions": {
|
|
15
18
|
"*": {
|
|
16
19
|
".": [
|
|
17
|
-
"dist/*.d.ts"
|
|
20
|
+
"dist/*.d.ts",
|
|
21
|
+
"dist/*.d.cts"
|
|
18
22
|
]
|
|
19
23
|
}
|
|
20
24
|
},
|
|
@@ -26,7 +30,7 @@
|
|
|
26
30
|
"jose": "5.2.1",
|
|
27
31
|
"js-xxhash": "4.0.0",
|
|
28
32
|
"@vercel/edge-config": "^1.4.3",
|
|
29
|
-
"@vercel/flags-core": "0.1.
|
|
33
|
+
"@vercel/flags-core": "0.1.5"
|
|
30
34
|
},
|
|
31
35
|
"devDependencies": {
|
|
32
36
|
"@types/node": "20.11.17",
|
|
@@ -36,8 +40,8 @@
|
|
|
36
40
|
"typescript": "5.6.3",
|
|
37
41
|
"vite": "6.0.3",
|
|
38
42
|
"vitest": "2.1.8",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
43
|
+
"tsconfig": "0.0.0",
|
|
44
|
+
"flags": "4.0.1"
|
|
41
45
|
},
|
|
42
46
|
"peerDependencies": {
|
|
43
47
|
"flags": "*"
|