-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1651 from jeskew/feature/document-client-number-w…
…rapper Add a `wrapNumbers` option to the DynamoDB Document Client
- Loading branch information
Showing
11 changed files
with
439 additions
and
125 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"type": "feature", | ||
"category": "DynamoDB", | ||
"description": "Add a `wrapNumbers` option to the Document Client to direct the client not to convert number attributes to JavaScript numbers." | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
export class NumberValue { | ||
constructor(value: string|number); | ||
|
||
toJSON(): number; | ||
|
||
toNumber(): number; | ||
|
||
toString(): string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
var util = require('../core').util; | ||
|
||
/** | ||
* An object recognizable as a numeric value that stores the underlying number | ||
* as a string. | ||
* | ||
* Intended to be a deserialization target for the DynamoDB Document Client when | ||
* the `wrapNumbers` flag is set. This allows for numeric values that lose | ||
* precision when converted to JavaScript's `number` type. | ||
*/ | ||
var DynamoDBNumberValue = util.inherit({ | ||
constructor: function NumberValue(value) { | ||
this.value = value.toString(); | ||
}, | ||
|
||
/** | ||
* Render the underlying value as a number when converting to JSON. | ||
*/ | ||
toJSON: function () { | ||
return this.toNumber(); | ||
}, | ||
|
||
/** | ||
* Convert the underlying value to a JavaScript number. | ||
*/ | ||
toNumber: function () { | ||
return Number(this.value); | ||
}, | ||
|
||
/** | ||
* Return a string representing the unaltered value provided to the | ||
* constructor. | ||
*/ | ||
toString: function () { | ||
return this.value; | ||
} | ||
}); | ||
|
||
module.exports = DynamoDBNumberValue; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.