Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@gquittet/graceful-server

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gquittet/graceful-server - npm Package Compare versions

Comparing version 2.1.1 to 2.2.0

2

lib/index.js

@@ -1,1 +0,1 @@

module.exports=(()=>{"use strict";var e={538:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});const s={closePromises:[],timeout:1e3,healthCheck:!0,livenessEndpoint:"/live",readinessEndpoint:"/ready"};let o=!0;const r=e=>(o&&(Object.freeze(Object.assign(s,e)),o=!1),s),i=s,a=[{type:"SIGHUP",code:1},{type:"SIGBREAK",code:1},{type:"SIGINT",code:2},{type:"SIGTERM",code:15},{type:"uncaughtException",code:2}];var c;!function(e){e.STARTING="STARTING",e.READY="READY",e.SHUTTING_DOWN="SHUTTING_DOWN",e.SHUTDOWN="SHUTDOWN"}(c||(c={}));const u=c,d=(e,t)=>async(n,s,o)=>{const{timeout:r,closePromises:a}=i,c=o&&o.message?o:new Error(n);var d;t.status.set(u.SHUTTING_DOWN,c),await(d=r,new Promise((e=>setTimeout(e,d)))),await Promise.all(a.map((e=>e()))),await e.stop(),t.status.set(u.SHUTDOWN,c),process.exit(128+s)},l=require("events"),p=e=>{const t=e||new Set,n=e=>{e.destroy(),t.delete(e)};return{onConnection:e=>{t.add(e),e.once("close",(()=>t.delete(e)))},closeAll:async()=>t.forEach(n)}},{livenessEndpoint:y,readinessEndpoint:f}=i,m=(e,t)=>{const{healthCheck:n}=i,s=p(),o=p();let r=!1;e.on("connection",s.onConnection),e.on("secureConnection",o.onConnection);const a=e.listeners("request");return e.removeAllListeners("request"),n?(e.on("request",(e=>(t,n)=>{const{livenessEndpoint:s,readinessEndpoint:o}=i;if(!n.headersSent)return t.url===s&&"GET"===t.method?(n.statusCode=200,n.setHeader("Content-Type","application/json"),n.end(JSON.stringify({uptime:0|process.uptime()}))):t.url===o&&"GET"===t.method?e.isReady()?(n.statusCode=200,n.setHeader("Content-Type","application/json"),n.end(JSON.stringify({status:"ready"}))):(n.statusCode=503,n.end()):void 0})(t)),a.forEach((n=>e.on("request",((e,s)=>{if(t.isReady()){if(e.url!==y&&e.url!==f||"GET"!==e.method)return n(e,s)}else e.socket.destroy()}))))):a.forEach((n=>e.on("request",((e,s)=>{if(t.isReady())return n(e,s);e.socket.destroy()})))),Object.assign(e,{stop:async()=>{if(e.listening&&!r)return r=!0,e.removeAllListeners("request"),e.on("request",((e,t)=>{if(!t.headersSent)return t.setHeader("connection","close")})),await Promise.all([s.closeAll(),o.closeAll()]),new Promise(((t,n)=>{e.close((e=>{e?n(e):t()}))}))}})},T=e=>{let t=u.STARTING;return{set:function(n,s){return t=n,e.emit(n,s),this},get:()=>t,setReady:function(){this.set(u.READY)},isReady:()=>t===u.READY}},S=e=>{const t=new l.EventEmitter,n=T(t),s=m(e,n);return{status:n,init:function(){return(e=>{for(const t of a)process.on(t.type,(async n=>{await e.shutdown(t.type,t.code,n)}));return e})(this)},shutdown:function(e,t,n){return d(s,this)(e,t,n)},on:(e,n)=>t.on(e,n)}},h=Object.assign(((e,t)=>{r(t);const n=S(e).init();return{isReady:()=>n.status.isReady(),setReady:()=>n.status.setReady(),on:n.on}}),u)}},t={};function n(s){if(t[s])return t[s].exports;var o=t[s]={exports:{}};return e[s](o,o.exports,n),o.exports}return n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(538)})();const __export__=module.exports;module.exports=__export__.default,Object.assign(module.exports,__export__);
module.exports=(()=>{var e={636:(e,t,s)=>{"use strict";s.d(t,{u:()=>r,Z:()=>i});const n={closePromises:[],timeout:1e3,healthCheck:!0,livenessEndpoint:"/live",readinessEndpoint:"/ready"};let o=!0;const r=e=>(o&&(Object.freeze(Object.assign(n,e)),o=!1),n),i=n},751:(e,t,s)=>{"use strict";s.d(t,{Z:()=>y});const n=require("events"),o=[{type:"SIGHUP",code:1},{type:"SIGBREAK",code:1},{type:"SIGINT",code:2},{type:"SIGTERM",code:15},{type:"uncaughtException",code:2}];var r=s(636),i=s(825);const a=(e,t)=>async(s,n,o)=>{const{timeout:a,closePromises:c}=r.Z,u=o&&o.message?o:new Error(s);var d;t.status.set(i.Z.SHUTTING_DOWN,u),await(d=a,new Promise((e=>setTimeout(e,d)))),await Promise.all(c.map((e=>e()))),await e.stop(),t.status.set(i.Z.SHUTDOWN,u),process.exit(128+n)},c=e=>{const t=e||new Set,s=e=>{e.destroy(),t.delete(e)};return{onConnection:e=>{t.add(e),e.once("close",(()=>t.delete(e)))},closeAll:async()=>t.forEach(s)}},{livenessEndpoint:u,readinessEndpoint:d}=r.Z,l=(e,t)=>{const{healthCheck:s}=r.Z,n=c(),o=c();let i=!1;e.on("connection",n.onConnection),e.on("secureConnection",o.onConnection);const a=e.listeners("request");return e.removeAllListeners("request"),s?(e.on("request",(e=>(t,s)=>{const{livenessEndpoint:n,readinessEndpoint:o}=r.Z;if(!s.headersSent)return t.url===n&&"GET"===t.method?(s.statusCode=200,s.setHeader("Content-Type","application/json"),s.end(JSON.stringify({uptime:0|process.uptime()}))):t.url===o&&"GET"===t.method?e.isReady()?(s.statusCode=200,s.setHeader("Content-Type","application/json"),s.end(JSON.stringify({status:"ready"}))):(s.statusCode=503,s.end()):void 0})(t)),a.forEach((s=>e.on("request",((e,n)=>{if(t.isReady()){if(e.url!==u&&e.url!==d||"GET"!==e.method)return s(e,n)}else e.socket.destroy()}))))):a.forEach((s=>e.on("request",((e,n)=>{if(t.isReady())return s(e,n);e.socket.destroy()})))),Object.assign(e,{stop:async()=>{if(e.listening&&!i)return i=!0,e.removeAllListeners("request"),e.on("request",((e,t)=>{if(!t.headersSent)return t.setHeader("connection","close")})),await Promise.all([n.closeAll(),o.closeAll()]),new Promise(((t,s)=>{e.close((e=>{e?s(e):t()}))}))}})},p=e=>{let t=i.Z.STARTING;return{set:function(s,n){return t=s,e.emit(s,n),this},get:()=>t,setReady:function(){this.set(i.Z.READY)},isReady:()=>t===i.Z.READY}},y=e=>{const t=new n.EventEmitter,s=p(t),r=l(e,s);return{status:s,init:function(){return(e=>{for(const t of o)process.on(t.type,(async s=>{await e.shutdown(t.type,t.code,s)}));return e})(this)},shutdown:function(e,t,s){return a(r,this)(e,t,s)},on:(e,s)=>t.on(e,s)}}},825:(e,t,s)=>{"use strict";var n;s.d(t,{Z:()=>o}),function(e){e.STARTING="STARTING",e.READY="READY",e.SHUTTING_DOWN="SHUTTING_DOWN",e.SHUTDOWN="SHUTDOWN"}(n||(n={}));const o=n},809:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>c});var n=s(636),o=s(751),r=s(825),i=s(878),a={};for(const e in i)"default"!==e&&(a[e]=()=>i[e]);s.d(t,a);const c=Object.assign(((e,t)=>{(0,n.u)(t);const s=(0,o.Z)(e).init();return{isReady:()=>s.status.isReady(),setReady:()=>s.status.setReady(),on:s.on}}),r.Z)},878:()=>{}},t={};function s(n){if(t[n])return t[n].exports;var o=t[n]={exports:{}};return e[n](o,o.exports,s),o.exports}return s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s(809)})();const __export__=module.exports;module.exports=__export__.default,Object.assign(module.exports,__export__);

@@ -0,5 +1,5 @@

import * as http from 'http';
import ImprovedServer from "../interface/improvedServer";
import IStatus from "../interface/status";
import * as http from 'http';
declare const improvedServer: (server: http.Server, serverStatus: IStatus) => ImprovedServer;
export default improvedServer;

@@ -0,4 +1,4 @@

import * as http from 'http';
import ICore from "../interface/core";
import * as http from 'http';
declare const core: (server: http.Server) => ICore;
export default core;

@@ -0,4 +1,4 @@

import { EventEmitter } from 'events';
import IStatus from "../interface/status";
import { EventEmitter } from 'events';
declare const Status: (eventEmitter: EventEmitter) => IStatus;
export default Status;

@@ -0,6 +1,7 @@

import * as http from 'http';
import State from "./core/state";
import IGracefulServer from "./interface/gracefulServer";
import IGracefulServerOptions from "./interface/gracefulServerOptions";
import * as http from 'http';
declare const GracefulServer: ((server: http.Server, options?: IGracefulServerOptions | undefined) => IGracefulServer) & typeof State;
export * from "./interface/gracefulServer";
export default GracefulServer;

@@ -0,4 +1,4 @@

import * as http from 'http';
import IStatus from "../interface/status";
import * as http from 'http';
declare const onRequest: (serverStatus: IStatus) => (req: http.IncomingMessage, res: http.ServerResponse) => void;
export default onRequest;

@@ -15,5 +15,6 @@ {

},
"version": "2.1.1",
"version": "2.2.0",
"main": "./lib/index.js",
"scripts": {
"prebuild": "npm run clean",
"build": "npm run build:types && npm run bundle",

@@ -35,19 +36,19 @@ "build:types": "ttsc -p tsconfig.prod.json --emitDeclarationOnly",

"devDependencies": {
"@babel/cli": "7.12.1",
"@babel/core": "7.12.3",
"@babel/cli": "7.12.10",
"@babel/core": "7.12.10",
"@babel/plugin-proposal-class-properties": "7.12.1",
"@babel/plugin-proposal-object-rest-spread": "7.12.1",
"@babel/preset-env": "7.12.1",
"@babel/preset-typescript": "7.12.1",
"@types/express": "4.17.8",
"@types/jest": "26.0.15",
"@types/node": "14.14.6",
"@typescript-eslint/eslint-plugin": "4.6.0",
"@typescript-eslint/parser": "4.6.0",
"@babel/preset-env": "7.12.11",
"@babel/preset-typescript": "7.12.7",
"@types/express": "4.17.9",
"@types/jest": "26.0.19",
"@types/node": "14.14.14",
"@typescript-eslint/eslint-plugin": "4.10.0",
"@typescript-eslint/parser": "4.10.0",
"add-module-exports-webpack-plugin": "2.0.0",
"babel-loader": "8.1.0",
"babel-plugin-module-resolver": "4.0.0",
"eslint": "7.12.1",
"eslint-config-prettier": "6.15.0",
"eslint-config-standard": "16.0.1",
"babel-loader": "8.2.2",
"babel-plugin-module-resolver": "4.1.0",
"eslint": "7.15.0",
"eslint-config-prettier": "7.0.0",
"eslint-config-standard": "16.0.2",
"eslint-import-resolver-babel-module": "5.2.0",

@@ -58,19 +59,18 @@ "eslint-plugin-import": "2.22.1",

"eslint-plugin-promise": "4.2.1",
"eslint-plugin-standard": "4.0.2",
"esm": "3.2.25",
"fork-ts-checker-webpack-plugin": "5.2.1",
"husky": "4.3.0",
"jest": "26.6.1",
"lint-staged": "10.5.1",
"prettier": "2.1.2",
"fork-ts-checker-webpack-plugin": "6.0.7",
"husky": "4.3.6",
"jest": "26.6.3",
"lint-staged": "10.5.3",
"prettier": "2.2.1",
"prettier-package-json": "2.1.3",
"pretty-quick": "3.1.0",
"rimraf": "3.0.2",
"ts-jest": "26.4.3",
"ts-node": "9.0.0",
"ts-jest": "26.4.4",
"ts-node": "9.1.1",
"ttypescript": "1.5.12",
"typescript": "4.0.5",
"typescript-transform-paths": "2.0.2",
"webpack": "5.3.2",
"webpack-cli": "4.1.0"
"typescript": "4.1.3",
"typescript-transform-paths": "2.1.0",
"webpack": "5.10.3",
"webpack-cli": "4.2.0"
},

@@ -88,32 +88,2 @@ "keywords": [

},
"babel": {
"presets": [
[
"@babel/env",
{
"targets": {
"node": "8"
},
"modules": false
}
],
"@babel/typescript"
],
"plugins": [
"@babel/proposal-class-properties",
"@babel/proposal-object-rest-spread",
[
"module-resolver",
{
"root": [
"."
],
"alias": {
"@": "./src",
"test": "./tests"
}
}
]
]
},
"eslintConfig": {

@@ -176,3 +146,3 @@ "root": true,

"moduleNameMapper": {
"@/(.*)": "<rootDir>/src/$1"
"~/(.*)": "<rootDir>/src/$1"
}

@@ -179,0 +149,0 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc