@arkyn/server 1.4.9 → 1.4.11

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/dist/index.d.ts CHANGED
@@ -9,5 +9,5 @@ export { globalErrorHandler } from "./helpers/globalErrorHandler";
9
9
  export { extractJsonFromRequest } from "./services/extractJsonFromRequest";
10
10
  export { formParse } from "./services/formParse";
11
11
  export { getScopedParams } from "./services/getScopedParams";
12
- export { sendImageToS3 } from "./services/sendImageToS3";
12
+ export { sendFileToS3 } from "./services/sendFileToS3";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -12,4 +12,4 @@ export { globalErrorHandler } from "./helpers/globalErrorHandler";
12
12
  export { extractJsonFromRequest } from "./services/extractJsonFromRequest";
13
13
  export { formParse } from "./services/formParse";
14
14
  export { getScopedParams } from "./services/getScopedParams";
15
- export { sendImageToS3 } from "./services/sendImageToS3";
15
+ export { sendFileToS3 } from "./services/sendFileToS3";
@@ -5,12 +5,16 @@ type AWSConfig = {
5
5
  AWS_SECRET_ACCESS_KEY: string;
6
6
  AWS_S3_BUCKET: string;
7
7
  };
8
- declare function sendImageToS3(props: ActionFunctionArgs, awsS3Config: AWSConfig): Promise<{
8
+ type Config = {
9
+ maxPartSize?: number;
10
+ fileName?: string;
11
+ };
12
+ declare function sendFileToS3(props: ActionFunctionArgs, awsS3Config: AWSConfig, config?: Config): Promise<{
9
13
  error: string;
10
14
  url?: undefined;
11
15
  } | {
12
16
  url: string;
13
17
  error?: undefined;
14
18
  }>;
15
- export { sendImageToS3 };
16
- //# sourceMappingURL=sendImageToS3.d.ts.map
19
+ export { sendFileToS3 };
20
+ //# sourceMappingURL=sendFileToS3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendFileToS3.d.ts","sourceRoot":"","sources":["../../src/services/sendFileToS3.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,iBAAiB,CAAC;AAOzB,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAmDF,iBAAe,YAAY,CACzB,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,SAAS,EACtB,MAAM,GAAE,MAGP;;;;;;GA2CF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -39,20 +39,25 @@ async function s3_upload(fileStream, contentType, awsS3Config) {
39
39
  location: `https://${AWS_S3_BUCKET}.s3.amazonaws.com/${uploadParams.Key}`,
40
40
  };
41
41
  }
42
- async function sendImageToS3(props, awsS3Config) {
42
+ async function sendFileToS3(props, awsS3Config, config = {
43
+ maxPartSize: 5_000_000,
44
+ fileName: "file",
45
+ }) {
46
+ const { fileName = "file", maxPartSize = 5_000_000 } = config;
43
47
  const { request } = props;
44
48
  const uploadHandler = composeUploadHandlers(createFileUploadHandler({
45
- maxPartSize: 5_000_000,
49
+ maxPartSize,
46
50
  file: ({ filename }) => filename,
47
51
  }));
48
52
  const formData = await parseMultipartFormData(request, uploadHandler);
49
- const file = formData.get("file");
53
+ const file = formData.get(fileName);
50
54
  if (!file)
51
55
  throw new BadRequestError("No file uploaded");
52
56
  const filterParams = getScopedParams(request);
53
57
  const width = filterParams.get("w");
54
58
  const height = filterParams.get("h");
55
- if (width && height) {
59
+ const isImage = file.type.startsWith("image");
60
+ if (isImage && width && height) {
56
61
  const image = sharp(file.getFilePath());
57
62
  const metadata = await image.metadata();
58
63
  if (metadata.width && metadata.height) {
@@ -69,4 +74,4 @@ async function sendImageToS3(props, awsS3Config) {
69
74
  const apiResponse = await s3_upload(streamFile, file.type, awsS3Config);
70
75
  return { url: apiResponse.location };
71
76
  }
72
- export { sendImageToS3 };
77
+ export { sendFileToS3 };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkyn/server",
3
- "version": "1.4.9",
3
+ "version": "1.4.11",
4
4
  "main": "./dist/bundle.js",
5
5
  "module": "./src/index.ts",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -14,4 +14,4 @@ export { globalErrorHandler } from "./helpers/globalErrorHandler";
14
14
  export { extractJsonFromRequest } from "./services/extractJsonFromRequest";
15
15
  export { formParse } from "./services/formParse";
16
16
  export { getScopedParams } from "./services/getScopedParams";
17
- export { sendImageToS3 } from "./services/sendImageToS3";
17
+ export { sendFileToS3 } from "./services/sendFileToS3";
@@ -19,6 +19,11 @@ type AWSConfig = {
19
19
  AWS_S3_BUCKET: string;
20
20
  };
21
21
 
22
+ type Config = {
23
+ maxPartSize?: number;
24
+ fileName?: string;
25
+ };
26
+
22
27
  async function s3_upload(
23
28
  fileStream: fs.ReadStream,
24
29
  contentType: string,
@@ -68,21 +73,26 @@ async function s3_upload(
68
73
  };
69
74
  }
70
75
 
71
- async function sendImageToS3(
76
+ async function sendFileToS3(
72
77
  props: ActionFunctionArgs,
73
- awsS3Config: AWSConfig
78
+ awsS3Config: AWSConfig,
79
+ config: Config = {
80
+ maxPartSize: 5_000_000,
81
+ fileName: "file",
82
+ }
74
83
  ) {
84
+ const { fileName = "file", maxPartSize = 5_000_000 } = config;
75
85
  const { request } = props;
76
86
 
77
87
  const uploadHandler = composeUploadHandlers(
78
88
  createFileUploadHandler({
79
- maxPartSize: 5_000_000,
89
+ maxPartSize,
80
90
  file: ({ filename }) => filename,
81
91
  })
82
92
  );
83
93
 
84
94
  const formData = await parseMultipartFormData(request, uploadHandler);
85
- const file = formData.get("file") as unknown as NodeOnDiskFile;
95
+ const file = formData.get(fileName) as unknown as NodeOnDiskFile;
86
96
 
87
97
  if (!file) throw new BadRequestError("No file uploaded");
88
98
 
@@ -90,7 +100,9 @@ async function sendImageToS3(
90
100
  const width = filterParams.get("w");
91
101
  const height = filterParams.get("h");
92
102
 
93
- if (width && height) {
103
+ const isImage = file.type.startsWith("image");
104
+
105
+ if (isImage && width && height) {
94
106
  const image = sharp(file.getFilePath());
95
107
  const metadata = await image.metadata();
96
108
 
@@ -112,4 +124,4 @@ async function sendImageToS3(
112
124
  return { url: apiResponse.location };
113
125
  }
114
126
 
115
- export { sendImageToS3 };
127
+ export { sendFileToS3 };
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendImageToS3.d.ts","sourceRoot":"","sources":["../../src/services/sendImageToS3.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,iBAAiB,CAAC;AAOzB,KAAK,SAAS,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAmDF,iBAAe,aAAa,CAC1B,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,SAAS;;;;;;GAwCvB;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}