Summary:
When a schema includes type: Buffer and the byte length of the buffer is very long, the following error occurs when executing Model.get.
2023-06-02T02:33:35.358Z 36a19b32-d48b-4a57-a22d-9262ab32e0e5 ERROR RangeError: Maximum call stack size exceeded
at /var/task/index.js:8644:23
at Array.reduce (<anonymous>)
at Object.main2 [as entries] (/var/task/index.js:8639:37)
at Item.fromDynamo (/var/task/index.js:9443:32)
In my environment, an error occurs when the result of Buffer.byteLength is greater than 105730.
Code sample:
export interface TestSchema extends Item, TestSchemaAttributes {}
export interface TestSchemaAttributes {
id: string;
sk: string;
content: Buffer;
}
export const TestSchemaDefinition: SchemaDefinition = {
uid: {
type: String,
required: true,
hashKey: true,
},
sk: {
type: String,
required: true,
rangeKey: true,
},
content: {
type: Buffer,
required: true,
},
};
const model = dynamoose.model<TestSchema>(
"TestSchemaTable",
[new dynamoose.Schema(TestSchemaDefinition)],
{
create: false,
waitForActive: { enabled: false },
throughput: "ON_DEMAND",
}
);
await model.get({id: "id", sk: "sk}); // `RangeError: Maximum call stack size exceeded` occurs when "content" is very large.
Current output and behavior (including stack trace):
RangeError: Maximum call stack size exceeded occurs.
2023-06-02T02:33:35.358Z 36a19b32-d48b-4a57-a22d-9262ab32e0e5 ERROR RangeError: Maximum call stack size exceeded
at /var/task/index.js:8644:23
at Array.reduce (<anonymous>)
at Object.main2 [as entries] (/var/task/index.js:8639:37)
at Item.fromDynamo (/var/task/index.js:9443:32)
at new Item (/var/task/index.js:9425:63)
at new TestSchema (/var/task/index.js:12852:13)
at itemify (/var/task/index.js:13359:35)
Expected output and behavior:
No error occurs.
Environment:
Operating System: Amazon Linux 2 (AWS Lambda)
Node.js version (node -v): 18x
Dynamoose version: 3.2.0
Other information (if applicable):
Other:
Summary:
When a schema includes type: Buffer and the byte length of the buffer is very long, the following error occurs when executing Model.get.
In my environment, an error occurs when the result of
Buffer.byteLengthis greater than 105730.Code sample:
Current output and behavior (including stack trace):
RangeError: Maximum call stack size exceededoccurs.Expected output and behavior:
No error occurs.
Environment:
Operating System: Amazon Linux 2 (AWS Lambda)
Node.js version (
node -v): 18xDynamoose version: 3.2.0
Other information (if applicable):
Other: