@moicky/dynamodb 2.6.1 → 2.6.2

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.
Files changed (2) hide show
  1. package/dist/lib/client.js +27 -9
  2. package/package.json +3 -2
@@ -2,18 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getClient = exports.initClient = void 0;
4
4
  const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
5
- const credential_providers_1 = require("@aws-sdk/credential-providers");
6
5
  const schemas_1 = require("./schemas");
7
- let client = new client_dynamodb_1.DynamoDBClient({
8
- region: process.env.AWS_REGION || "eu-central-1",
9
- ...(process.env.DYNAMODB_ASSUME_ROLE && {
10
- credentials: (0, credential_providers_1.fromTemporaryCredentials)({
11
- params: {
12
- RoleArn: process.env.DYNAMODB_ASSUME_ROLE,
13
- RoleSessionName: "moicky-dynamodb",
14
- },
6
+ const authTypes = {
7
+ vercel: () => {
8
+ if (!process.env.AWS_ROLE_ARN)
9
+ return {};
10
+ return {
11
+ credentials: Promise.resolve().then(() => require("@vercel/functions/oidc")).then(({ awsCredentialsProvider }) => ({
12
+ credentials: awsCredentialsProvider({
13
+ roleArn: process.env.AWS_ROLE_ARN,
14
+ roleSessionName: "moicky-dynamodb",
15
+ }),
16
+ })),
17
+ };
18
+ },
19
+ assumeRole: () => ({
20
+ ...(process.env.DYNAMODB_ASSUME_ROLE && {
21
+ credentials: Promise.resolve().then(() => require("@aws-sdk/credential-providers")).then(({ fromTemporaryCredentials }) => fromTemporaryCredentials({
22
+ params: {
23
+ RoleArn: process.env.DYNAMODB_ASSUME_ROLE,
24
+ RoleSessionName: "moicky-dynamodb",
25
+ },
26
+ })),
15
27
  }),
16
28
  }),
29
+ };
30
+ const _authType = process.env.MOICKY_DYNAMODB_AWS_ROLE;
31
+ const authType = authTypes[_authType];
32
+ let client = new client_dynamodb_1.DynamoDBClient({
33
+ region: process.env.AWS_REGION || "eu-central-1",
34
+ ...(authType && authType()),
17
35
  });
18
36
  const defaultTable = process.env.DYNAMODB_TABLE;
19
37
  if (defaultTable) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moicky/dynamodb",
3
- "version": "2.6.1",
3
+ "version": "2.6.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Contains a collection of convenience functions for working with AWS DynamoDB",
@@ -24,11 +24,12 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@aws-sdk/client-dynamodb": "^3.338.0",
27
- "@aws-sdk/credential-providers": "^3.744.0",
28
27
  "@aws-sdk/util-dynamodb": "^3.338.0",
29
28
  "aws-crt": "^1.15.20"
30
29
  },
31
30
  "devDependencies": {
31
+ "@aws-sdk/credential-providers": "^3.744.0",
32
+ "@vercel/functions": "^2.0.0",
32
33
  "@types/jest": "^29.5.1",
33
34
  "@types/node": "^20.2.4",
34
35
  "dotenv": "^16.0.3",