@teamkeel/functions-runtime 0.394.2 → 0.395.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamkeel/functions-runtime",
3
- "version": "0.394.2",
3
+ "version": "0.395.1",
4
4
  "description": "Internal package used by @teamkeel/sdk",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/File.js CHANGED
@@ -4,7 +4,7 @@ const {
4
4
  GetObjectCommand,
5
5
  } = require("@aws-sdk/client-s3");
6
6
  const { fromEnv } = require("@aws-sdk/credential-providers");
7
- const { useDatabase } = require("./database");
7
+ const { createDatabaseClient } = require("./database");
8
8
  const { DatabaseError } = require("./errors");
9
9
  const KSUID = require("ksuid");
10
10
 
@@ -105,9 +105,7 @@ class File extends InlineFile {
105
105
  async read() {
106
106
  if (this._contents) {
107
107
  const arrayBuffer = await this._contents.arrayBuffer();
108
- const buffer = Buffer.from(arrayBuffer);
109
-
110
- return buffer;
108
+ return Buffer.from(arrayBuffer);
111
109
  }
112
110
 
113
111
  if (isS3Storage()) {
@@ -122,12 +120,12 @@ class File extends InlineFile {
122
120
  };
123
121
  const command = new GetObjectCommand(params);
124
122
  const response = await s3Client.send(command);
125
- const blob = response.Body.transformToByteArray();
123
+ const blob = await response.Body.transformToByteArray();
126
124
  return Buffer.from(blob);
127
125
  }
128
126
 
129
127
  // default to db storage
130
- const db = useDatabase();
128
+ const db = createDatabaseClient();
131
129
 
132
130
  try {
133
131
  let query = db
@@ -139,6 +137,8 @@ class File extends InlineFile {
139
137
  return row.data;
140
138
  } catch (e) {
141
139
  throw new DatabaseError(e);
140
+ } finally {
141
+ await db.destroy();
142
142
  }
143
143
  }
144
144
 
@@ -195,7 +195,11 @@ async function storeFile(contents, key, filename, contentType, expires) {
195
195
  };
196
196
 
197
197
  if (expires) {
198
- params.Expires = expires;
198
+ if (expires instanceof Date) {
199
+ params.Expires = expires;
200
+ } else {
201
+ console.warn("Invalid expires value. Skipping Expires parameter.");
202
+ }
199
203
  }
200
204
 
201
205
  const command = new PutObjectCommand(params);
@@ -206,8 +210,7 @@ async function storeFile(contents, key, filename, contentType, expires) {
206
210
  throw error;
207
211
  }
208
212
  } else {
209
- // default to db storage
210
- const db = useDatabase();
213
+ const db = createDatabaseClient();
211
214
 
212
215
  try {
213
216
  let query = db
@@ -233,6 +236,8 @@ async function storeFile(contents, key, filename, contentType, expires) {
233
236
  await query.execute();
234
237
  } catch (e) {
235
238
  throw new DatabaseError(e);
239
+ } finally {
240
+ await db.destroy();
236
241
  }
237
242
  }
238
243
  }
package/src/database.js CHANGED
@@ -70,6 +70,7 @@ function useDatabase() {
70
70
 
71
71
  // If we've gotten to this point, then we know that we are in a custom function runtime server
72
72
  // context and we haven't been able to retrieve the in-context instance of Kysely, which means we should throw an error.
73
+ console.trace();
73
74
  throw new Error("useDatabase must be called within a function");
74
75
  }
75
76
 
@@ -80,6 +80,7 @@ async function handleRequest(request, config) {
80
80
  return customFunction(ctx, inputs);
81
81
  }
82
82
  );
83
+
83
84
  if (result instanceof Error) {
84
85
  span.recordException(result);
85
86
  span.setStatus({