@8ms/helpers 1.4.0 → 1.5.0
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/aws/s3/readFile.js +34 -24
- package/package.json +22 -22
package/aws/s3/readFile.js
CHANGED
|
@@ -16,6 +16,7 @@ const getDate_1 = __importDefault(require("../../date/getDate"));
|
|
|
16
16
|
const getStringFromStream_1 = __importDefault(require("../../string/getStringFromStream"));
|
|
17
17
|
const isResponse200_1 = __importDefault(require("../isResponse200"));
|
|
18
18
|
const cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
19
|
+
const isFileExists_1 = __importDefault(require("./isFileExists"));
|
|
19
20
|
exports.readFileDefault = {
|
|
20
21
|
body: undefined,
|
|
21
22
|
now: undefined,
|
|
@@ -38,31 +39,40 @@ exports.readFileDefault = {
|
|
|
38
39
|
*/
|
|
39
40
|
const readFile = async ({ bucket, key, isJson }) => {
|
|
40
41
|
let response = (0, cloneDeep_1.default)(exports.readFileDefault);
|
|
41
|
-
const today = (0, getToday_1.default)({
|
|
42
|
+
const today = (0, getToday_1.default)({
|
|
43
|
+
setMidnight: false
|
|
44
|
+
});
|
|
42
45
|
response.now = (0, getUnixTime_1.default)(today);
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
response.
|
|
46
|
+
const doesFileExist = await (0, isFileExists_1.default)({
|
|
47
|
+
bucket,
|
|
48
|
+
key
|
|
49
|
+
});
|
|
50
|
+
// Only fetch the file if it exists
|
|
51
|
+
if (doesFileExist) {
|
|
52
|
+
const { GetObjectCommand } = require('@aws-sdk/client-s3');
|
|
53
|
+
const apiResponse = await global.awsS3Client.send(new GetObjectCommand({
|
|
54
|
+
Bucket: bucket,
|
|
55
|
+
Key: key,
|
|
56
|
+
}));
|
|
57
|
+
if ((0, isResponse200_1.default)({ apiResponse })) {
|
|
58
|
+
let now = today;
|
|
59
|
+
let modified = (0, getDate_1.default)({ input: apiResponse.LastModified, setMidnight: false });
|
|
60
|
+
// Convert the date to unix
|
|
61
|
+
response.modified.unix = (0, getUnixTime_1.default)(modified);
|
|
62
|
+
// Compare now to unix
|
|
63
|
+
response.modified.vsNow.months = (0, differenceInMonths_1.default)(now, modified);
|
|
64
|
+
response.modified.vsNow.days = (0, differenceInDays_1.default)(now, modified);
|
|
65
|
+
response.modified.vsNow.hours = (0, differenceInHours_1.default)(now, modified);
|
|
66
|
+
response.modified.vsNow.minutes = (0, differenceInMinutes_1.default)(now, modified);
|
|
67
|
+
// Compare now to midnight
|
|
68
|
+
response.modified.vsMidnight.hours = (0, getHours_1.default)(now);
|
|
69
|
+
response.modified.vsMidnight.minutes = (0, getMinutes_1.default)(now);
|
|
70
|
+
// Convert stream into a string
|
|
71
|
+
response.body = await (0, getStringFromStream_1.default)({ stream: apiResponse.Body });
|
|
72
|
+
// If we need to return JSON, parse it. On error return undefined
|
|
73
|
+
if (false !== isJson) {
|
|
74
|
+
response.body = JSON.parse(response.body) || undefined;
|
|
75
|
+
}
|
|
66
76
|
}
|
|
67
77
|
}
|
|
68
78
|
return response;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@8ms/helpers",
|
|
3
3
|
"license": "UNLICENSED",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/8millionstories-organisation/8ms-helpers-ts.git"
|
|
@@ -16,32 +16,32 @@
|
|
|
16
16
|
"axios": "1.4.0",
|
|
17
17
|
"crypto-js": "4.1.1",
|
|
18
18
|
"date-fns": "2.30.0",
|
|
19
|
-
"date-fns-tz": "
|
|
19
|
+
"date-fns-tz": "2.0.0",
|
|
20
20
|
"lodash": "4.17.21",
|
|
21
|
-
"zod": "3.
|
|
21
|
+
"zod": "3.22.2"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@aws-sdk/client-s3": "3.
|
|
25
|
-
"@aws-sdk/client-ses": "3.
|
|
26
|
-
"@aws-sdk/client-sqs": "3.
|
|
27
|
-
"@aws-sdk/client-ssm": "3.
|
|
28
|
-
"@aws-sdk/s3-request-presigner": "3.
|
|
29
|
-
"@babel/preset-env": "7.22.
|
|
30
|
-
"@babel/preset-flow": "7.
|
|
31
|
-
"@babel/preset-typescript": "7.
|
|
32
|
-
"@google-cloud/bigquery": "
|
|
33
|
-
"@google-cloud/storage": "
|
|
34
|
-
"@prisma/client": "
|
|
35
|
-
"@types/jest": "29.5.
|
|
36
|
-
"@types/lodash": "4.14.
|
|
37
|
-
"@types/node": "20.
|
|
38
|
-
"babel-jest": "29.
|
|
39
|
-
"jest": "29.
|
|
40
|
-
"node-fetch": "3.3.
|
|
24
|
+
"@aws-sdk/client-s3": "3.397.0",
|
|
25
|
+
"@aws-sdk/client-ses": "3.395.0",
|
|
26
|
+
"@aws-sdk/client-sqs": "3.395.0",
|
|
27
|
+
"@aws-sdk/client-ssm": "3.395.0",
|
|
28
|
+
"@aws-sdk/s3-request-presigner": "3.397.0",
|
|
29
|
+
"@babel/preset-env": "7.22.10",
|
|
30
|
+
"@babel/preset-flow": "7.22.5",
|
|
31
|
+
"@babel/preset-typescript": "7.22.5",
|
|
32
|
+
"@google-cloud/bigquery": "7.2.0",
|
|
33
|
+
"@google-cloud/storage": "7.0.1",
|
|
34
|
+
"@prisma/client": "5.2.0",
|
|
35
|
+
"@types/jest": "29.5.4",
|
|
36
|
+
"@types/lodash": "4.14.197",
|
|
37
|
+
"@types/node": "20.5.3",
|
|
38
|
+
"babel-jest": "29.6.3",
|
|
39
|
+
"jest": "29.6.3",
|
|
40
|
+
"node-fetch": "3.3.2",
|
|
41
41
|
"numbro": "2.3.6",
|
|
42
42
|
"timezone-mock": "1.3.6",
|
|
43
43
|
"ts-node": "10.9.1",
|
|
44
|
-
"tslib": "2.
|
|
45
|
-
"typescript": "5.
|
|
44
|
+
"tslib": "2.6.2",
|
|
45
|
+
"typescript": "5.1.6"
|
|
46
46
|
}
|
|
47
47
|
}
|