@candlerip/shared 0.0.146 → 0.0.148
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/cloud-watch/index.d.ts +1 -0
- package/aws/cloud-watch/index.js +1 -0
- package/aws/cloud-watch/workers/index.d.ts +2 -0
- package/aws/cloud-watch/workers/index.js +90 -0
- package/aws/cloud-watch/workers/type.d.ts +15 -0
- package/aws/index.d.ts +1 -0
- package/aws/index.js +1 -0
- package/aws/s3/s3-url/{utils/compose-s3-url → compose-s3-url}/index.js +1 -1
- package/aws/s3/s3-url/compose-s3-url/types.js +1 -0
- package/aws/s3/s3-url/index.d.ts +2 -2
- package/aws/s3/s3-url/index.js +2 -2
- package/common/index.d.ts +1 -0
- package/common/index.js +1 -0
- package/common/log/index.d.ts +1 -0
- package/common/log/index.js +1 -0
- package/common/log/logger-worker/index.d.ts +2 -0
- package/common/log/logger-worker/index.js +43 -0
- package/common/log/logger-worker/send-to-console/index.d.ts +2 -0
- package/common/log/logger-worker/send-to-console/index.js +13 -0
- package/common/log/logger-worker/send-to-console/type.d.ts +6 -0
- package/common/log/logger-worker/send-to-console/type.js +1 -0
- package/common/log/logger-worker/type.d.ts +15 -0
- package/common/log/logger-worker/type.js +1 -0
- package/common/type/index.d.ts +1 -0
- package/common/type/index.js +1 -0
- package/common/type/promise/domains.d.ts +1 -0
- package/common/type/promise/domains.js +1 -0
- package/common/type/promise/index.d.ts +1 -0
- package/common/type/promise/index.js +1 -0
- package/package.json +4 -1
- package/aws/s3/s3-url/utils/index.d.ts +0 -1
- package/aws/s3/s3-url/utils/index.js +0 -1
- /package/aws/{s3/s3-url/utils/compose-s3-url/types.js → cloud-watch/workers/type.js} +0 -0
- /package/aws/s3/s3-url/{utils/compose-s3-url → compose-s3-url}/index.d.ts +0 -0
- /package/aws/s3/s3-url/{utils/compose-s3-url → compose-s3-url}/types.d.ts +0 -0
- /package/aws/s3/s3-url/{constants.d.ts → configs.d.ts} +0 -0
- /package/aws/s3/s3-url/{constants.js → configs.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './workers/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './workers/index.js';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { CloudWatchLogsClient, CreateLogGroupCommand, CreateLogStreamCommand, PutLogEventsCommand } from '@aws-sdk/client-cloudwatch-logs';
|
|
2
|
+
import { composeCustomError, isObject, stringify } from '../../../common/index.js';
|
|
3
|
+
export const CloudWatchWorker = async ({ logGroupName, region }) => {
|
|
4
|
+
let _client;
|
|
5
|
+
let _customError;
|
|
6
|
+
let _logStreamName;
|
|
7
|
+
let _sequenceToken;
|
|
8
|
+
try {
|
|
9
|
+
_client = new CloudWatchLogsClient({
|
|
10
|
+
region,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
_customError = composeCustomError('Error connect CloudWatch', { err, region });
|
|
15
|
+
}
|
|
16
|
+
if (_client) {
|
|
17
|
+
try {
|
|
18
|
+
await _client.send(new CreateLogGroupCommand({ logGroupName }));
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
if (isObject(err) && err.name !== 'ResourceAlreadyExistsException') {
|
|
22
|
+
_customError = composeCustomError('Error create log group', {
|
|
23
|
+
err,
|
|
24
|
+
logGroupName,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const createLogStream = async (logStreamName) => {
|
|
30
|
+
_logStreamName = logStreamName;
|
|
31
|
+
if (_customError) {
|
|
32
|
+
return {
|
|
33
|
+
customError: _customError,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const putLogEvents = async (event) => {
|
|
37
|
+
if (_customError) {
|
|
38
|
+
return {
|
|
39
|
+
customError: _customError,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
const resp = await _client.send(new PutLogEventsCommand({
|
|
44
|
+
logGroupName,
|
|
45
|
+
logStreamName: _logStreamName,
|
|
46
|
+
logEvents: [
|
|
47
|
+
{
|
|
48
|
+
message: stringify(event),
|
|
49
|
+
timestamp: Date.now(),
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
sequenceToken: _sequenceToken,
|
|
53
|
+
}));
|
|
54
|
+
_sequenceToken = resp.nextSequenceToken;
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
return {
|
|
58
|
+
customError: composeCustomError('Error put log event', {
|
|
59
|
+
err,
|
|
60
|
+
logGroupName,
|
|
61
|
+
_logStreamName,
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
try {
|
|
67
|
+
await _client.send(new CreateLogStreamCommand({
|
|
68
|
+
logGroupName,
|
|
69
|
+
logStreamName,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
if (isObject(err) && err.name !== 'ResourceAlreadyExistsException') {
|
|
74
|
+
return {
|
|
75
|
+
customError: composeCustomError('Error create log stream', {
|
|
76
|
+
err,
|
|
77
|
+
logGroupName,
|
|
78
|
+
logStreamName,
|
|
79
|
+
}),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
putLogEvents,
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
return {
|
|
88
|
+
createLogStream,
|
|
89
|
+
};
|
|
90
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CustomError } from '../../../common/index.js';
|
|
2
|
+
export type TCloudWatchWorker = (props: {
|
|
3
|
+
logGroupName: string;
|
|
4
|
+
region: string;
|
|
5
|
+
}) => Promise<{
|
|
6
|
+
createLogStream: TCreateLogStream;
|
|
7
|
+
}>;
|
|
8
|
+
export type TCreateLogStream = (name: string) => Promise<{
|
|
9
|
+
putLogEvents: TPutLogEvents;
|
|
10
|
+
} | {
|
|
11
|
+
customError: CustomError;
|
|
12
|
+
}>;
|
|
13
|
+
export type TPutLogEvents = (event: unknown) => Promise<undefined | {
|
|
14
|
+
customError: CustomError;
|
|
15
|
+
}>;
|
package/aws/index.d.ts
CHANGED
package/aws/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { S3_URL_TEMPLATE } from '
|
|
1
|
+
import { S3_URL_TEMPLATE } from '../configs.js';
|
|
2
2
|
export const composeS3Url = (awsRegion, bucketName) => S3_URL_TEMPLATE.replace('<AWS_REGION>', awsRegion).replace('<BUCKET_NAME>', bucketName);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/aws/s3/s3-url/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './compose-s3-url/index.js';
|
|
2
|
+
export * from './configs.js';
|
package/aws/s3/s3-url/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './compose-s3-url/index.js';
|
|
2
|
+
export * from './configs.js';
|
package/common/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './filter-sort/index.js';
|
|
|
6
6
|
export * from './geographical/index.js';
|
|
7
7
|
export * from './header/index.js';
|
|
8
8
|
export * from './helpers/index.js';
|
|
9
|
+
export * from './log/index.js';
|
|
9
10
|
export * from './page/index.js';
|
|
10
11
|
export * from './page-data/index.js';
|
|
11
12
|
export * from './page-menu/index.js';
|
package/common/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from './filter-sort/index.js';
|
|
|
6
6
|
export * from './geographical/index.js';
|
|
7
7
|
export * from './header/index.js';
|
|
8
8
|
export * from './helpers/index.js';
|
|
9
|
+
export * from './log/index.js';
|
|
9
10
|
export * from './page/index.js';
|
|
10
11
|
export * from './page-data/index.js';
|
|
11
12
|
export * from './page-menu/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './logger-worker/index.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './logger-worker/index.js';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { sendToConsole } from './send-to-console/index.js';
|
|
2
|
+
import { composeCustomError } from '../../custom-error/index.js';
|
|
3
|
+
import { CloudWatchWorker } from '../../../aws/index.js';
|
|
4
|
+
export const loggerWorker = async (awsRegion, logGroupName, { isDevelopment }) => {
|
|
5
|
+
const { createLogStream } = await CloudWatchWorker({ logGroupName, region: awsRegion });
|
|
6
|
+
let _logStreamName;
|
|
7
|
+
let _context;
|
|
8
|
+
const initLogStream = (logStreamName, context) => {
|
|
9
|
+
_logStreamName = logStreamName;
|
|
10
|
+
_context = context;
|
|
11
|
+
};
|
|
12
|
+
const log = async (customErrorProp) => {
|
|
13
|
+
let customError;
|
|
14
|
+
if ('id' in customErrorProp) {
|
|
15
|
+
customError = customErrorProp;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
customError = composeCustomError(customErrorProp?.message, customErrorProp.info);
|
|
19
|
+
}
|
|
20
|
+
if (!_logStreamName) {
|
|
21
|
+
sendToConsole({ context: _context, customError, loggerError: composeCustomError('Log stream not initialized') });
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
let resp;
|
|
25
|
+
resp = await createLogStream(_logStreamName);
|
|
26
|
+
if ('customError' in resp) {
|
|
27
|
+
sendToConsole({ context: _context, customError, loggerError: resp.customError });
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const { putLogEvents } = resp;
|
|
31
|
+
resp = await putLogEvents({ context: _context, customError });
|
|
32
|
+
if (resp?.customError) {
|
|
33
|
+
sendToConsole({ context: _context, customError, loggerError: resp.customError });
|
|
34
|
+
}
|
|
35
|
+
if (isDevelopment) {
|
|
36
|
+
sendToConsole({ context: _context, customError });
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
initLogStream,
|
|
41
|
+
log,
|
|
42
|
+
};
|
|
43
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { consoleCustomError } from '../../../custom-error/index.js';
|
|
2
|
+
import { stringify } from '../../../helpers/index.js';
|
|
3
|
+
export const sendToConsole = ({ context, customError, loggerError }) => {
|
|
4
|
+
if (loggerError) {
|
|
5
|
+
console.error(`LOGGER ERROR: ${stringify(loggerError)}`);
|
|
6
|
+
}
|
|
7
|
+
if (customError) {
|
|
8
|
+
consoleCustomError(customError);
|
|
9
|
+
}
|
|
10
|
+
if (context) {
|
|
11
|
+
console.error(`CONTEXT: ${stringify(context)}`);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CustomError } from '../../custom-error/index.js';
|
|
2
|
+
export type TLoggerWorker = (awsRegion: string, logGroupName: string, options: {
|
|
3
|
+
isDevelopment: boolean;
|
|
4
|
+
}) => Promise<{
|
|
5
|
+
initLogStream: TInitLogStream;
|
|
6
|
+
log: TLog;
|
|
7
|
+
}>;
|
|
8
|
+
export type TLoggerWorkerReturn = {
|
|
9
|
+
initLogStream: TInitLogStream;
|
|
10
|
+
log: TLog;
|
|
11
|
+
};
|
|
12
|
+
export type TLog = (customError: Partial<CustomError> & {
|
|
13
|
+
message: string;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
export type TInitLogStream = (logStreamName: string, context?: Record<string, unknown>) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/common/type/index.d.ts
CHANGED
package/common/type/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './domains.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './domains.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@candlerip/shared",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.148",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": "=22.19.0"
|
|
@@ -31,5 +31,8 @@
|
|
|
31
31
|
"tsc-alias": "^1.8.16",
|
|
32
32
|
"typescript": "^5.9.3",
|
|
33
33
|
"typescript-eslint": "^8.46.2"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@aws-sdk/client-cloudwatch-logs": "^3.975.0"
|
|
34
37
|
}
|
|
35
38
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './compose-s3-url/index.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './compose-s3-url/index.js';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|