@hestia-earth/pipeline-utils 0.12.1 → 0.13.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/src/utils.ts CHANGED
@@ -6,31 +6,35 @@ import { error } from './log';
6
6
 
7
7
  export const recordToFunctionParam = (event: SNSEventRecord | S3EventRecord): IFunctionParam =>
8
8
  reduceUndefinedValues(
9
- 'Sns' in event ? {
10
- ...JSON.parse(event.Sns.Message),
11
- timestamp: event.Sns.Timestamp ? new Date(event.Sns.Timestamp) : undefined
12
- } : {
13
- bucket: event.s3.bucket.name,
14
- key: event.s3.object.key,
15
- filepath: event.s3.object.key,
16
- timestamp: event.eventTime ? new Date(event.eventTime) : undefined
17
- }
9
+ 'Sns' in event
10
+ ? {
11
+ ...JSON.parse(event.Sns.Message),
12
+ timestamp: event.Sns.Timestamp ? new Date(event.Sns.Timestamp) : undefined
13
+ }
14
+ : {
15
+ bucket: event.s3.bucket.name,
16
+ key: event.s3.object.key,
17
+ filepath: event.s3.object.key,
18
+ timestamp: event.eventTime ? new Date(event.eventTime) : undefined
19
+ }
18
20
  ) as IFunctionParam;
19
21
 
20
- export const functionParamToS3Record = ({ bucket, key, timestamp }: IFunctionParam) => ({
21
- s3: {
22
- bucket: { name: bucket },
23
- object: { key }
24
- },
25
- ...(timestamp ? { eventTime: timestamp.toJSON() } : {})
26
- }) as Partial<S3EventRecord>;
22
+ export const functionParamToS3Record = ({ bucket, key, timestamp }: IFunctionParam) =>
23
+ ({
24
+ s3: {
25
+ bucket: { name: bucket },
26
+ object: { key }
27
+ },
28
+ ...(timestamp ? { eventTime: timestamp.toJSON() } : {})
29
+ }) as Partial<S3EventRecord>;
27
30
 
28
- export const functionParamToSNSRecord = ({ bucket, key, timestamp }: IFunctionParam) => ({
29
- Sns: {
30
- Message: JSON.stringify({ bucket, key })
31
- },
32
- ...(timestamp ? { Timestamp: timestamp.toJSON() } : {})
33
- }) as Partial<SNSEventRecord>;
31
+ export const functionParamToSNSRecord = ({ bucket, key, timestamp }: IFunctionParam) =>
32
+ ({
33
+ Sns: {
34
+ Message: JSON.stringify({ bucket, key })
35
+ },
36
+ ...(timestamp ? { Timestamp: timestamp.toJSON() } : {})
37
+ }) as Partial<SNSEventRecord>;
34
38
 
35
39
  export const returnResponse = (data: any, statusCode = 200) => {
36
40
  return {
@@ -45,36 +49,39 @@ export const returnResponse = (data: any, statusCode = 200) => {
45
49
 
46
50
  const defaultErrorStatus = 500;
47
51
 
48
- export const returnError = (err) => {
52
+ export const returnError = err => {
49
53
  error('handleError', err, err?.stack, err?.meta);
50
- const { error: errorContent, status = defaultErrorStatus } = typeof err === 'string'
51
- ? { error: err }
52
- : err.meta
54
+ const { error: errorContent, status = defaultErrorStatus } =
55
+ typeof err === 'string'
56
+ ? { error: err }
57
+ : err.meta
53
58
  ? err.meta.body
54
59
  : { error: err.message, status: defaultErrorStatus };
55
60
  return returnResponse({ error: errorContent }, status || defaultErrorStatus);
56
61
  };
57
62
 
58
63
  export const spliceAndProcess = <T, R>(docs: T[], func: (p: T[]) => Promise<R>, count = 1) =>
59
- new Promise<R|void>(resolve => {
64
+ new Promise<R | void>(resolve => {
60
65
  if (!docs.length) {
61
66
  return resolve();
62
67
  }
63
68
  const remaining = docs.splice(docs.length - count);
64
- void func(remaining).then(() => spliceAndProcess(docs, func, count)).then(resolve);
69
+
70
+ void func(remaining)
71
+ .then(() => spliceAndProcess(docs, func, count))
72
+ .then(resolve);
65
73
  });
66
74
 
67
- export const isEmpty = (value: any, minKeys = 1) => typeof value === 'object' ?
68
- (
69
- Array.isArray(value) ?
70
- !value.length :
71
- Object.keys(value).filter(key => key !== 'type').length < minKeys
72
- ) :
73
- typeof value === 'undefined' || value === null || value === '';
75
+ export const isEmpty = (value: any, minKeys = 1) =>
76
+ typeof value === 'object'
77
+ ? Array.isArray(value)
78
+ ? !value.length
79
+ : Object.keys(value).filter(key => key !== 'type').length < minKeys
80
+ : typeof value === 'undefined' || value === null || value === '';
74
81
 
75
82
  export const refToSchemaType = ref => ref.substring(2).replace('.json#', '');
76
83
 
77
- export const prependWithKey = (data: any, key: string) => Object.keys(data)
78
- .reduce((prev, curr) => ({ ...prev, [`${key}.${curr}`]: data[curr] }), {});
84
+ export const prependWithKey = (data: any, key: string) =>
85
+ Object.keys(data).reduce((prev, curr) => ({ ...prev, [`${key}.${curr}`]: data[curr] }), {});
79
86
 
80
- export const stripBOM = (content: string) => content.charCodeAt(0) === 0xFEFF ? content.slice(1) : content;
87
+ export const stripBOM = (content: string) => (content.charCodeAt(0) === 0xfeff ? content.slice(1) : content);
@@ -1,8 +0,0 @@
1
- /// <reference types="node" />
2
- import { URLSearchParams } from 'url';
3
- export declare const fromFormData: <T>(data: any) => T;
4
- export declare const toSearchParams: (params?: any) => URLSearchParams;
5
- export declare const getErrorMessage: (error: any) => any;
6
- export declare const get: <T>(uri: string, params?: any, headers?: {}) => Promise<T>;
7
- export declare const post: <T>(uri: string, data?: any, headers?: {}) => Promise<T>;
8
- export declare const put: <T>(uri: string, data?: any, headers?: {}) => Promise<T>;
package/dist/requests.js DELETED
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.put = exports.post = exports.get = exports.getErrorMessage = exports.toSearchParams = exports.fromFormData = void 0;
4
- const url_1 = require("url");
5
- const request_promise_native_1 = require("request-promise-native");
6
- const fromFormData = (data) => {
7
- const obj = {};
8
- for (const key of Object.keys(data)) {
9
- const value = data[key];
10
- try {
11
- obj[key] = JSON.parse(value);
12
- }
13
- catch (_err) {
14
- obj[key] = value;
15
- }
16
- }
17
- return obj;
18
- };
19
- exports.fromFormData = fromFormData;
20
- const toSearchParams = (params = {}) => {
21
- const searchParams = new url_1.URLSearchParams();
22
- Object.entries(params)
23
- .filter(([_key, value]) => typeof value !== 'undefined')
24
- .forEach(([key, value]) => searchParams.append(key, `${value}`));
25
- return searchParams;
26
- };
27
- exports.toSearchParams = toSearchParams;
28
- const getErrorMessage = error => {
29
- return (typeof error === 'string' && error) || ('message' in error && error.message) || ('error' in error && (0, exports.getErrorMessage)(error.error));
30
- };
31
- exports.getErrorMessage = getErrorMessage;
32
- const get = async (uri, params = {}, headers = {}) => {
33
- try {
34
- const res = await (0, request_promise_native_1.get)({
35
- uri: `${uri}?${(0, exports.toSearchParams)(params).toString()}`,
36
- headers: {
37
- 'Content-Type': 'application/json',
38
- ...headers
39
- }
40
- });
41
- return JSON.parse(res);
42
- }
43
- catch (error) {
44
- throw new Error((0, exports.getErrorMessage)(error));
45
- }
46
- };
47
- exports.get = get;
48
- const post = async (uri, data = {}, headers = {}) => {
49
- try {
50
- const res = await (0, request_promise_native_1.post)({
51
- uri,
52
- headers: {
53
- 'Content-Type': 'application/json',
54
- ...headers
55
- },
56
- body: data,
57
- json: true
58
- });
59
- return res;
60
- }
61
- catch (error) {
62
- throw new Error((0, exports.getErrorMessage)(error));
63
- }
64
- };
65
- exports.post = post;
66
- const put = async (uri, data = {}, headers = {}) => {
67
- try {
68
- const res = await (0, request_promise_native_1.put)({
69
- uri,
70
- headers: {
71
- 'Content-Type': 'application/json',
72
- ...headers
73
- },
74
- body: data,
75
- json: true
76
- });
77
- return res;
78
- }
79
- catch (error) {
80
- throw new Error((0, exports.getErrorMessage)(error));
81
- }
82
- };
83
- exports.put = put;
84
- //# sourceMappingURL=requests.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":"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"}
package/src/requests.ts DELETED
@@ -1,89 +0,0 @@
1
- import { URLSearchParams } from 'url';
2
- import { get as httpGet, post as httpPost, put as httpPut } from 'request-promise-native';
3
-
4
- export const fromFormData = <T>(data: any) => {
5
- const obj = {} as T;
6
- for (const key of Object.keys(data)) {
7
- const value = data[key];
8
- try {
9
- obj[key] = JSON.parse(value);
10
- }
11
- catch (_err) {
12
- obj[key] = value;
13
- }
14
- }
15
- return obj;
16
- };
17
-
18
- export const toSearchParams = (params: any = {}) => {
19
- const searchParams = new URLSearchParams();
20
-
21
- Object.entries(params)
22
- .filter(([_key, value]) => typeof value !== 'undefined')
23
- .forEach(([key, value]) => searchParams.append(key, `${value}`));
24
- return searchParams;
25
- };
26
-
27
- /* eslint-disable */
28
- export const getErrorMessage = error => {
29
- return (
30
- typeof error === 'string' && error
31
- ) || (
32
- 'message' in error && error.message
33
- ) || (
34
- 'error' in error && getErrorMessage(error.error)
35
- );
36
- };
37
- /* eslint-enable */
38
-
39
- export const get = async <T>(uri: string, params: any = {}, headers = {}) => {
40
- try {
41
- const res = await httpGet({
42
- uri: `${uri}?${toSearchParams(params).toString()}`,
43
- headers: {
44
- 'Content-Type': 'application/json',
45
- ...headers
46
- }
47
- });
48
- return JSON.parse(res) as T;
49
- }
50
- catch (error) {
51
- throw new Error(getErrorMessage(error));
52
- }
53
- };
54
-
55
- export const post = async <T>(uri: string, data: any = {}, headers = {}) => {
56
- try {
57
- const res = await httpPost({
58
- uri,
59
- headers: {
60
- 'Content-Type': 'application/json',
61
- ...headers
62
- },
63
- body: data,
64
- json: true
65
- });
66
- return res as T;
67
- }
68
- catch (error) {
69
- throw new Error(getErrorMessage(error));
70
- }
71
- };
72
-
73
- export const put = async <T>(uri: string, data: any = {}, headers = {}) => {
74
- try {
75
- const res = await httpPut({
76
- uri,
77
- headers: {
78
- 'Content-Type': 'application/json',
79
- ...headers
80
- },
81
- body: data,
82
- json: true
83
- });
84
- return res as T;
85
- }
86
- catch (error) {
87
- throw new Error(getErrorMessage(error));
88
- }
89
- };