@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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/services/{sendImageToS3.d.ts → sendFileToS3.d.ts} +7 -3
- package/dist/services/sendFileToS3.d.ts.map +1 -0
- package/dist/services/{sendImageToS3.js → sendFileToS3.js} +10 -5
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/services/{sendImageToS3.ts → sendFileToS3.ts} +18 -6
- package/dist/services/sendImageToS3.d.ts.map +0 -1
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 {
|
|
12
|
+
export { sendFileToS3 } from "./services/sendFileToS3";
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
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
|
-
|
|
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 {
|
|
16
|
-
//# sourceMappingURL=
|
|
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
|
|
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
|
|
49
|
+
maxPartSize,
|
|
46
50
|
file: ({ filename }) => filename,
|
|
47
51
|
}));
|
|
48
52
|
const formData = await parseMultipartFormData(request, uploadHandler);
|
|
49
|
-
const file = formData.get(
|
|
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
|
-
|
|
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 {
|
|
77
|
+
export { sendFileToS3 };
|
package/package.json
CHANGED
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 {
|
|
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
|
|
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
|
|
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(
|
|
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
|
-
|
|
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 {
|
|
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"}
|