@polygonlabs/servercore 1.2.0 → 1.4.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.
@@ -3,6 +3,6 @@ declare class HealthCheck {
|
|
3
3
|
constructor(urls: string[]);
|
4
4
|
checkHealth(): Promise<string>;
|
5
5
|
}
|
6
|
-
declare function setupHealthCheckServer(urls: string[], serverPort: number): void;
|
6
|
+
declare function setupHealthCheckServer(urls: string[], serverPort: number, func?: Function): void;
|
7
7
|
|
8
8
|
export { HealthCheck, setupHealthCheckServer };
|
package/dist/api/health-check.js
CHANGED
@@ -54,7 +54,7 @@ function createResponseContext(c) {
|
|
54
54
|
}
|
55
55
|
};
|
56
56
|
}
|
57
|
-
function setupHealthCheckServer(urls, serverPort) {
|
57
|
+
function setupHealthCheckServer(urls, serverPort, func) {
|
58
58
|
const healthCheck = new HealthCheck(urls);
|
59
59
|
Bun.serve({
|
60
60
|
port: serverPort,
|
@@ -62,7 +62,11 @@ function setupHealthCheckServer(urls, serverPort) {
|
|
62
62
|
"/health-check": {
|
63
63
|
GET: async (c) => {
|
64
64
|
try {
|
65
|
-
|
65
|
+
if (func) {
|
66
|
+
await func();
|
67
|
+
} else {
|
68
|
+
await healthCheck.checkHealth();
|
69
|
+
}
|
66
70
|
return handleResponse(createResponseContext(c), "ok");
|
67
71
|
} catch (error) {
|
68
72
|
return handleError(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/api/health-check.ts"],"sourcesContent":["import { handleResponse, handleError } from \"./response_handler\";\nimport type { ResponseContext } from \"../types\";\nimport { ApiError } from \"../errors\";\n\nexport class HealthCheck {\n constructor(private readonly urls: string[]) {}\n\n async checkHealth(): Promise<string> {\n try {\n const results = await Promise.all(\n this.urls.map(async (url) => {\n const response = await fetch(`${url}`);\n if (!response.ok) {\n throw new Error(`Health check failed for ${url}`);\n }\n return response;\n })\n );\n\n if (results.every((res) => res.ok)) {\n return \"ok\";\n }\n throw new Error(\"One or more URLs failed the health check.\");\n } catch (error) {\n const failedUrlChecks = await Promise.all(\n this.urls.map(async (url) => {\n try {\n const response = await fetch(`${url}`);\n return { url, failed: !response.ok };\n } catch {\n return { url, failed: true };\n }\n })\n );\n const failedUrls = failedUrlChecks\n .filter(check => check.failed)\n .map(check => check.url);\n
|
1
|
+
{"version":3,"sources":["../../src/api/health-check.ts"],"sourcesContent":["import { handleResponse, handleError } from \"./response_handler\";\nimport type { ResponseContext } from \"../types\";\nimport { ApiError } from \"../errors\";\n\nexport class HealthCheck {\n constructor(private readonly urls: string[]) { }\n\n async checkHealth(): Promise<string> {\n try {\n const results = await Promise.all(\n this.urls.map(async (url) => {\n const response = await fetch(`${url}`);\n if (!response.ok) {\n throw new Error(`Health check failed for ${url}`);\n }\n return response;\n })\n );\n\n if (results.every((res) => res.ok)) {\n return \"ok\";\n }\n throw new Error(\"One or more URLs failed the health check.\");\n } catch (error) {\n const failedUrlChecks = await Promise.all(\n this.urls.map(async (url) => {\n try {\n const response = await fetch(`${url}`);\n return { url, failed: !response.ok };\n } catch {\n return { url, failed: true };\n }\n })\n );\n const failedUrls = failedUrlChecks\n .filter(check => check.failed)\n .map(check => check.url);\n\n throw new ApiError(\n `Health check failed for the following URLs: ${failedUrls.join(\n \", \"\n )}. Original error: ${(error as Error).message}`\n );\n }\n }\n}\n\n// Utility to convert Bun context to ResponseContext\nfunction createResponseContext(c: any): ResponseContext {\n c.status = c.status || 200; // Default status to 200 if undefined\n return {\n status: (statusCode: number) => {\n c.status = statusCode;\n return createResponseContext(c); // Return the updated context\n },\n json: (body: any) => {\n return new Response(JSON.stringify(body), {\n status: c.status,\n headers: { \"Content-Type\": \"application/json\" },\n });\n },\n };\n}\n\n// Setup Bun server with health check route\nexport function setupHealthCheckServer(\n urls: string[],\n serverPort: number,\n func?: Function\n): void {\n const healthCheck = new HealthCheck(urls);\n\n Bun.serve({\n port: serverPort,\n routes: {\n \"/health-check\": {\n GET: async (c: any) => {\n try {\n if (func) {\n await func();\n } else {\n await healthCheck.checkHealth();\n }\n return handleResponse(createResponseContext(c), \"ok\");\n } catch (error) {\n return handleError(\n createResponseContext(c),\n error as ApiError\n );\n }\n },\n },\n },\n });\n\n console.log(\n `Health check server running on http://localhost:${serverPort}/health-check`\n );\n}\n"],"mappings":"AAAA,SAAS,gBAAgB,mBAAmB;AAE5C,SAAS,gBAAgB;AAElB,MAAM,YAAY;AAAA,EACrB,YAA6B,MAAgB;AAAhB;AAAA,EAAkB;AAAA,EAE/C,MAAM,cAA+B;AACjC,QAAI;AACA,YAAM,UAAU,MAAM,QAAQ;AAAA,QAC1B,KAAK,KAAK,IAAI,OAAO,QAAQ;AACzB,gBAAM,WAAW,MAAM,MAAM,GAAG,GAAG,EAAE;AACrC,cAAI,CAAC,SAAS,IAAI;AACd,kBAAM,IAAI,MAAM,2BAA2B,GAAG,EAAE;AAAA,UACpD;AACA,iBAAO;AAAA,QACX,CAAC;AAAA,MACL;AAEA,UAAI,QAAQ,MAAM,CAAC,QAAQ,IAAI,EAAE,GAAG;AAChC,eAAO;AAAA,MACX;AACA,YAAM,IAAI,MAAM,2CAA2C;AAAA,IAC/D,SAAS,OAAO;AACZ,YAAM,kBAAkB,MAAM,QAAQ;AAAA,QAClC,KAAK,KAAK,IAAI,OAAO,QAAQ;AACzB,cAAI;AACA,kBAAM,WAAW,MAAM,MAAM,GAAG,GAAG,EAAE;AACrC,mBAAO,EAAE,KAAK,QAAQ,CAAC,SAAS,GAAG;AAAA,UACvC,QAAQ;AACJ,mBAAO,EAAE,KAAK,QAAQ,KAAK;AAAA,UAC/B;AAAA,QACJ,CAAC;AAAA,MACL;AACA,YAAM,aAAa,gBACd,OAAO,WAAS,MAAM,MAAM,EAC5B,IAAI,WAAS,MAAM,GAAG;AAE3B,YAAM,IAAI;AAAA,QACN,+CAA+C,WAAW;AAAA,UACtD;AAAA,QACJ,CAAC,qBAAsB,MAAgB,OAAO;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AACJ;AAGA,SAAS,sBAAsB,GAAyB;AACpD,IAAE,SAAS,EAAE,UAAU;AACvB,SAAO;AAAA,IACH,QAAQ,CAAC,eAAuB;AAC5B,QAAE,SAAS;AACX,aAAO,sBAAsB,CAAC;AAAA,IAClC;AAAA,IACA,MAAM,CAAC,SAAc;AACjB,aAAO,IAAI,SAAS,KAAK,UAAU,IAAI,GAAG;AAAA,QACtC,QAAQ,EAAE;AAAA,QACV,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,MAClD,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;AAGO,SAAS,uBACZ,MACA,YACA,MACI;AACJ,QAAM,cAAc,IAAI,YAAY,IAAI;AAExC,MAAI,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,MACJ,iBAAiB;AAAA,QACb,KAAK,OAAO,MAAW;AACnB,cAAI;AACA,gBAAI,MAAM;AACN,oBAAM,KAAK;AAAA,YACf,OAAO;AACH,oBAAM,YAAY,YAAY;AAAA,YAClC;AACA,mBAAO,eAAe,sBAAsB,CAAC,GAAG,IAAI;AAAA,UACxD,SAAS,OAAO;AACZ,mBAAO;AAAA,cACH,sBAAsB,CAAC;AAAA,cACvB;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AAED,UAAQ;AAAA,IACJ,mDAAmD,UAAU;AAAA,EACjE;AACJ;","names":[]}
|
package/dist/index.d.ts
CHANGED
@@ -5,7 +5,7 @@ export { Logger } from './logger/logger.js';
|
|
5
5
|
export { errorCodes } from './constants/error_codes.js';
|
6
6
|
export { httpResponseCodes } from './constants/http_success_codes.js';
|
7
7
|
export { ILoggerConfig } from './types/logger_config.js';
|
8
|
-
export { AddDocumentsParams, ConditionalUpdateDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp } from './types/database.js';
|
8
|
+
export { AddDocumentsParams, ConditionalUpdateDocumentsParams, DeleteDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp } from './types/database.js';
|
9
9
|
export { IObserver } from './types/observer.js';
|
10
10
|
export { ChainNativeCurrency, IEventConsumerConfig } from './types/event_consumer_config.js';
|
11
11
|
export { ResponseContext } from './types/response_context.js';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AddDocumentsParams, UpdateDocumentsParams, ConditionalUpdateDocumentsParams, GetDocumentsParams, GetDocumentParams, GetCollectionGroupParams } from '../types/database.js';
|
1
|
+
import { AddDocumentsParams, UpdateDocumentsParams, ConditionalUpdateDocumentsParams, GetDocumentsParams, GetDocumentParams, GetCollectionGroupParams, DeleteDocumentsParams } from '../types/database.js';
|
2
2
|
|
3
3
|
interface Database {
|
4
4
|
connect(): Promise<void>;
|
@@ -12,6 +12,7 @@ interface Database {
|
|
12
12
|
}>;
|
13
13
|
getDocument(params: GetDocumentParams): Promise<any | null>;
|
14
14
|
getCollectionGroup(params: GetCollectionGroupParams): Promise<any | null>;
|
15
|
+
deleteDocuments(params: DeleteDocumentsParams): Promise<void>;
|
15
16
|
}
|
16
17
|
|
17
18
|
export type { Database };
|
package/dist/types/database.d.ts
CHANGED
@@ -49,10 +49,14 @@ interface GetDocumentParams {
|
|
49
49
|
collectionId: string;
|
50
50
|
docId: string;
|
51
51
|
}
|
52
|
+
interface DeleteDocumentsParams {
|
53
|
+
collectionId: string;
|
54
|
+
docIds: string[];
|
55
|
+
}
|
52
56
|
interface GetCollectionGroupParams {
|
53
57
|
groupId: string;
|
54
58
|
filter?: IQueryFilterOperationParams[];
|
55
59
|
orFilters?: IQueryOrFilterParams[];
|
56
60
|
}
|
57
61
|
|
58
|
-
export type { AddDocumentsParams, ConditionalUpdateDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp };
|
62
|
+
export type { AddDocumentsParams, ConditionalUpdateDocumentsParams, DeleteDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp };
|
package/dist/types/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
export { ILoggerConfig } from './logger_config.js';
|
2
|
-
export { AddDocumentsParams, ConditionalUpdateDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp } from './database.js';
|
2
|
+
export { AddDocumentsParams, ConditionalUpdateDocumentsParams, DeleteDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp } from './database.js';
|
3
3
|
export { IObserver } from './observer.js';
|
4
4
|
export { ChainNativeCurrency, IEventConsumerConfig } from './event_consumer_config.js';
|
5
5
|
export { ResponseContext } from './response_context.js';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@polygonlabs/servercore",
|
3
|
-
"version": "1.
|
3
|
+
"version": "1.4.0",
|
4
4
|
"publishConfig": {
|
5
5
|
"access": "public"
|
6
6
|
},
|
@@ -41,5 +41,5 @@
|
|
41
41
|
"@types/bun": "latest",
|
42
42
|
"bun-types": "latest"
|
43
43
|
},
|
44
|
-
"gitHead": "
|
44
|
+
"gitHead": "a9c771be4f52a4c4f586c30bd2b907f9cab160e1"
|
45
45
|
}
|