Socket
Socket
Sign inDemoInstall

@web/dev-server-core

Package Overview
Dependencies
Maintainers
7
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@web/dev-server-core - npm Package Compare versions

Comparing version 0.5.1 to 0.5.2

2

dist/plugins/Plugin.d.ts

@@ -27,3 +27,3 @@ /// <reference types="node" />

app: Koa;
server: Server;
server?: Server;
fileWatcher: FSWatcher;

@@ -30,0 +30,0 @@ logger: Logger;

@@ -9,3 +9,3 @@ import { Middleware } from 'koa';

*/
export declare function createMiddleware(config: DevServerCoreConfig, logger: Logger, fileWatcher: FSWatcher): Middleware<import("koa").DefaultState, import("koa").DefaultContext, any>[];
export declare function createMiddleware(config: DevServerCoreConfig, logger: Logger, fileWatcher: FSWatcher): Middleware[];
//# sourceMappingURL=createMiddleware.d.ts.map

@@ -11,3 +11,6 @@ /// <reference types="node" />

*/
export declare function createServer(logger: Logger, cfg: DevServerCoreConfig, fileWatcher: FSWatcher): {
export declare function createServer(logger: Logger, cfg: DevServerCoreConfig, fileWatcher: FSWatcher, middlewareMode?: boolean): {
app: Koa<Koa.DefaultState, Koa.DefaultContext>;
server?: undefined;
} | {
server: net.Server;

@@ -14,0 +17,0 @@ app: Koa<Koa.DefaultState, Koa.DefaultContext>;

@@ -28,3 +28,3 @@ "use strict";

*/
function createServer(logger, cfg, fileWatcher) {
function createServer(logger, cfg, fileWatcher, middlewareMode = false) {
const app = new koa_1.default();

@@ -55,2 +55,5 @@ app.silent = true;

}
if (middlewareMode) {
return { app };
}
let server;

@@ -57,0 +60,0 @@ if (cfg.http2) {

@@ -13,4 +13,4 @@ /// <reference types="node" />

koaApp: Koa;
server: Server;
webSockets: WebSocketsManager;
server?: Server;
webSockets?: WebSocketsManager;
private started;

@@ -17,0 +17,0 @@ private connections;

@@ -22,12 +22,14 @@ "use strict";

throw new Error('Missing logger.');
const createResult = (0, createServer_1.createServer)(this.logger, this.config, this.fileWatcher);
this.koaApp = createResult.app;
this.server = createResult.server;
this.webSockets = new WebSocketsManager_1.WebSocketsManager(this.server);
this.server.on('connection', connection => {
this.connections.add(connection);
connection.on('close', () => {
this.connections.delete(connection);
const { app, server } = (0, createServer_1.createServer)(this.logger, this.config, this.fileWatcher, config.middlewareMode);
this.koaApp = app;
if (server) {
this.server = server;
this.webSockets = new WebSocketsManager_1.WebSocketsManager(this.server);
this.server.on('connection', connection => {
this.connections.add(connection);
connection.on('close', () => {
this.connections.delete(connection);
});
});
});
}
}

@@ -37,10 +39,12 @@ async start() {

this.started = true;
await (0, util_1.promisify)(this.server.listen).bind(this.server)({
port: this.config.port,
// in case of localhost the host should be undefined, otherwise some browsers
// connect to it via local network. for example safari on browserstack
host: ['localhost', '127.0.0.1'].includes(this.config.hostname)
? undefined
: this.config.hostname,
});
if (this.server && this.config.hostname) {
await (0, util_1.promisify)(this.server.listen).bind(this.server)({
port: this.config.port,
// in case of localhost the host should be undefined, otherwise some browsers
// connect to it via local network. for example safari on browserstack
host: ['localhost', '127.0.0.1'].includes(this.config.hostname)
? undefined
: this.config.hostname,
});
}
for (const plugin of (_a = this.config.plugins) !== null && _a !== void 0 ? _a : []) {

@@ -58,2 +62,5 @@ await ((_b = plugin.serverStart) === null || _b === void 0 ? void 0 : _b.call(plugin, {

closeServer() {
if (!this.server) {
return;
}
// close all open connections

@@ -60,0 +67,0 @@ for (const connection of this.connections) {

@@ -8,3 +8,3 @@ import { Middleware } from 'koa';

*/
port: number;
port?: number;
/**

@@ -19,3 +19,7 @@ * Root directory to serve files from. All served files must be accessible with

*/
hostname: string;
hostname?: string;
/**
* Whether to run server or not and allow to use as a middleware connected to another server.
*/
middlewareMode?: boolean;
basePath?: string;

@@ -22,0 +26,0 @@ /**

{
"name": "@web/dev-server-core",
"version": "0.5.1",
"version": "0.5.2",
"publishConfig": {

@@ -84,2 +84,3 @@ "access": "public"

"abort-controller": "^3.0.0",
"express": "^4.18.2",
"nanoid": "^3.1.25",

@@ -86,0 +87,0 @@ "node-fetch": "3.0.0-beta.9",

@@ -23,3 +23,3 @@ import { FSWatcher } from 'chokidar';

app: Koa;
server: Server;
server?: Server;
fileWatcher: FSWatcher;

@@ -26,0 +26,0 @@ logger: Logger;

@@ -28,3 +28,8 @@ import Koa from 'koa';

*/
export function createServer(logger: Logger, cfg: DevServerCoreConfig, fileWatcher: FSWatcher) {
export function createServer(
logger: Logger,
cfg: DevServerCoreConfig,
fileWatcher: FSWatcher,
middlewareMode = false,
) {
const app = new Koa();

@@ -59,2 +64,6 @@ app.silent = true;

if (middlewareMode) {
return { app };
}
let server: Server;

@@ -61,0 +70,0 @@ if (cfg.http2) {

@@ -13,4 +13,4 @@ import Koa from 'koa';

public koaApp: Koa;
public server: Server;
public webSockets;
public server?: Server;
public webSockets?: WebSocketsManager;
private started = false;

@@ -27,13 +27,19 @@ private connections = new Set<Socket>();

const createResult = createServer(this.logger, this.config, this.fileWatcher);
this.koaApp = createResult.app;
this.server = createResult.server;
this.webSockets = new WebSocketsManager(this.server);
this.server.on('connection', connection => {
this.connections.add(connection);
connection.on('close', () => {
this.connections.delete(connection);
const { app, server } = createServer(
this.logger,
this.config,
this.fileWatcher,
config.middlewareMode,
);
this.koaApp = app;
if (server) {
this.server = server;
this.webSockets = new WebSocketsManager(this.server);
this.server.on('connection', connection => {
this.connections.add(connection);
connection.on('close', () => {
this.connections.delete(connection);
});
});
});
}
}

@@ -43,10 +49,12 @@

this.started = true;
await (promisify<ListenOptions>(this.server.listen).bind(this.server) as any)({
port: this.config.port,
// in case of localhost the host should be undefined, otherwise some browsers
// connect to it via local network. for example safari on browserstack
host: ['localhost', '127.0.0.1'].includes(this.config.hostname)
? undefined
: this.config.hostname,
});
if (this.server && this.config.hostname) {
await (promisify<ListenOptions>(this.server.listen).bind(this.server) as any)({
port: this.config.port,
// in case of localhost the host should be undefined, otherwise some browsers
// connect to it via local network. for example safari on browserstack
host: ['localhost', '127.0.0.1'].includes(this.config.hostname)
? undefined
: this.config.hostname,
});
}

@@ -66,2 +74,6 @@ for (const plugin of this.config.plugins ?? []) {

private closeServer() {
if (!this.server) {
return;
}
// close all open connections

@@ -73,3 +85,3 @@ for (const connection of this.connections) {

return new Promise<void>(resolve => {
this.server.close(err => {
this.server!.close(err => {
if (err) {

@@ -76,0 +88,0 @@ console.error(err);

@@ -10,3 +10,3 @@ import { Middleware } from 'koa';

*/
port: number;
port?: number;
/**

@@ -21,3 +21,7 @@ * Root directory to serve files from. All served files must be accessible with

*/
hostname: string;
hostname?: string;
/**
* Whether to run server or not and allow to use as a middleware connected to another server.
*/
middlewareMode?: boolean;
basePath?: string;

@@ -24,0 +28,0 @@ /**

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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