{"id":15932405,"url":"https://github.com/saibotsivad/dynamodb","last_synced_at":"2025-03-24T19:33:44.623Z","repository":{"id":45888050,"uuid":"267981184","full_name":"saibotsivad/dynamodb","owner":"saibotsivad","description":"Minimalist DynamoDB request generator.","archived":false,"fork":false,"pushed_at":"2024-01-21T22:26:38.000Z","size":89,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-24T02:12:53.630Z","etag":null,"topics":["aws","dynamodb","sdk"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saibotsivad.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-30T00:29:03.000Z","updated_at":"2023-01-16T15:07:33.000Z","dependencies_parsed_at":"2022-08-31T06:23:47.212Z","dependency_job_id":null,"html_url":"https://github.com/saibotsivad/dynamodb","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibotsivad%2Fdynamodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibotsivad%2Fdynamodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibotsivad%2Fdynamodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibotsivad%2Fdynamodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saibotsivad","download_url":"https://codeload.github.com/saibotsivad/dynamodb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245338707,"owners_count":20599075,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","dynamodb","sdk"],"created_at":"2024-10-07T02:01:33.701Z","updated_at":"2025-03-24T19:33:44.310Z","avatar_url":"https://github.com/saibotsivad.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @saibotsivad/dynamodb\n\nGenerate signed HTTP requests to AWS DynamoDB.\n\n## Install\n\nThe normal way:\n\n```shell\nnpm install @saibotsivad/dynamodb\n```\n\n## Overview\n\nInstantiate with the normal AWS credentials and a fetch-like interface (see below for compatability notes), then call it to make requests:\n\n```js\nimport { dynamodb } from '@saibotsivad/dynamodb'\n\n// Normal AWS IAM credentials:\nconst credentials = {\n\tregion: 'us-east-1',\n\tsecretAccessKey: 'hKVU_EXAMPLE_SECRET_5rjo',\n\taccessKeyId: 'AKIA_EXAMPLE_KEY'\n}\n\n// In a Worker environment (aka Cloudflare Workers) you can use the\n// global fetch directly:\nconst db = dynamodb({ credentials, fetch: globalThis.fetch })\n\n// But in the NodeJS environment, you'll need to use something like \"httpie\":\nimport { post } from 'httpie' // only POST is used\nconst fetch = async (url, options) =\u003e post(url, options)\nconst db = dynamodb({ credentials, fetch })\n\nconst response = await db('PutItem', {\n\tReturnConsumedCapacity: 'TOTAL',\n\tTableName: 'Music',\n\tItem: {\n\t\tAlbumTitle: {\n\t\t\tS: 'Somewhat Famous'\n\t\t},\n\t\tArtist: {\n\t\t\tS: 'No One You Know'\n\t\t},\n\t\tSongTitle: {\n\t\t\tS: 'Call Me Today'\n\t\t}\n\t},\n})\n// response =\u003e { ConsumedCapacity: { CapacityUnits: 1, TableName: 'Music' } }\n```\n\n## Error Handling\n\nIf the response is an error, for example if you try to `PutItem` on a table that doesn't exist, calling `await db` will throw an error named `AwsException` that contains the following properties:\n\n- `name: String` - Will always be `AwsException`.\n- `method: String` - This is simply the method name that you provided, e.g. `PutItem`.\n- `params: Object` - These are the parameters that were used, e.g. `{ TableName, Item }`.\n- `type: String` - The long-form error code from AWS, e.g. `com.amazonaws.dynamodb.v20120810#ResourceNotFoundException`.\n- `code: String` - The short-form error code, e.g. `ResourceNotFoundException`.\n\n## API\n\nInstantiate a database using the AWS credentials, and a fetch-like object:\n\n```ts\nimport { dynamodb } from '@saibotsivad/dynamodb'\nconst db = dynamodb({\n\tcredentials: {\n\t\tregion: 'us-east-1',\n\t\tsecretAccessKey: 'hKVU_EXAMPLE_SECRET_5rjo',\n\t\taccessKeyId: 'AKIA_EXAMPLE_KEY'\n\t},\n\tfetch: globalThis.fetch\n})\n```\n\nThe `fetch` function must have a signature like `async (method: string, params: object)` and return one of the following:\n\n- `{ json: async function }` - The normal `fetch` does this.\n- `{ data: string | object }` - If the `data` property is an object it'll get returned, or if it's a string it'll get JSON-parsed.\n- `{ body: string | object }` - Same thing with the `body` property.\n\n## Methods\n\nThe DynamoDB API supports all valid DynamoDB service methods.\n\n\u003e # How to Read the Docs\n\u003e\n\u003e To figure out what your request parameters and response object should look like, have a look at the AWS docs.\n\u003e\n\u003e * **v2:** For each link, there is a description of the service and an example of its use. For each service, after the example is a long, sometimes difficult to read, list of parameters and their meaning.\n\u003e * **v3:** For each link you'll find the same description and examples, but the request parameters are called \"input\" and the response is called \"output\". For example, on the [BatchGetItem](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/batchgetitemcommand.html) docs page, you'll find a link to [BatchGetItemCommandInput](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/interfaces/batchgetitemcommandinput.html) and [BatchGetItemCommandOutput](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/interfaces/batchgetitemcommandoutput.html) which you'll need to click into to figure out the parameters of each.\n\n* BatchGetItem ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#batchGetItem-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/batchgetitemcommand.html))\n* BatchWriteItem ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#batchWriteItem-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/batchwriteitemcommand.html))\n* CreateBackup ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#createBackup-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/createbackupcommand.html))\n* CreateGlobalTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#createGlobalTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/createglobaltablecommand.html))\n* CreateTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#createTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/createtablecommand.html))\n* DeleteBackup ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#deleteBackup-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/deletebackupcommand.html))\n* DeleteItem ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#deleteItem-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/deleteitemcommand.html))\n* DeleteTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#deleteTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/deletetablecommand.html))\n* DescribeBackup ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeBackup-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describebackupcommand.html))\n* DescribeContinuousBackups ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeContinuousBackups-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describecontinuousbackupscommand.html))\n* DescribeContributorInsights ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeContributorInsights-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describecontributorinsightscommand.html))\n* DescribeEndpoints ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeEndpoints-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describeendpointscommand.html))\n* DescribeGlobalTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeGlobalTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describeglobaltablecommand.html))\n* DescribeGlobalTableSettings ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeGlobalTableSettings-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describeglobaltablesettingscommand.html))\n* DescribeLimits ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeLimits-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describelimitscommand.html))\n* DescribeTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describetablecommand.html))\n* DescribeTableReplicaAutoScaling ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeTableReplicaAutoScaling-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describetablereplicaautoscalingcommand.html))\n* DescribeTimeToLive ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#describeTimeToLive-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/describetimetolivecommand.html))\n* GetItem ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#getItem-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/getitemcommand.html))\n* ListBackups ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listBackups-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/listbackupscommand.html))\n* ListContributorInsights ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listContributorInsights-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/listcontributorinsightscommand.html))\n* ListGlobalTables ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listGlobalTables-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/listglobaltablescommand.html))\n* ListTables ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listTables-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/listtablescommand.html))\n* ListTagsOfResource ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#listTagsOfResource-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/listtagsofresourcecommand.html))\n* PutItem ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#putItem-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/putitemcommand.html))\n* Query ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#query-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/querycommand.html))\n* RestoreTableFromBackup ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#restoreTableFromBackup-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/restoretablefrombackupcommand.html))\n* RestoreTableToPointInTime ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#restoreTableToPointInTime-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/restoretabletopointintimecommand.html))\n* Scan ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#scan-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/scancommand.html))\n* TagResource ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#tagResource-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/tagresourcecommand.html))\n* TransactGetItems ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#transactGetItems-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/transactgetitemscommand.html))\n* TransactWriteItems ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#transactWriteItems-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/transactwriteitemscommand.html))\n* UntagResource ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#untagResource-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/untagresourcecommand.html))\n* UpdateContinuousBackups ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateContinuousBackups-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updatecontinuousbackupscommand.html))\n* UpdateContributorInsights ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateContributorInsights-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updatecontributorinsightscommand.html))\n* UpdateGlobalTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateGlobalTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updateglobaltablecommand.html))\n* UpdateGlobalTableSettings ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateGlobalTableSettings-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updateglobaltablesettingscommand.html))\n* UpdateItem ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateItem-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updateitemcommand.html))\n* UpdateTable ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateTable-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updatetablecommand.html))\n* UpdateTableReplicaAutoScaling ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateTableReplicaAutoScaling-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updatetablereplicaautoscalingcommand.html))\n* UpdateTimeToLive ([v2 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateTimeToLive-property) | [v3 docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-dynamodb/classes/updatetimetolivecommand.html))\n\n## License\n\nPublished and released under the [VOL](http://veryopenlicense.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaibotsivad%2Fdynamodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaibotsivad%2Fdynamodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaibotsivad%2Fdynamodb/lists"}