Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@igosprojects/rivet

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@igosprojects/rivet - npm Package Compare versions

Comparing version
1.0.3
to
1.0.4
+4
dist/cors.d.ts
import type { RivetResponse, CorsOptions } from './types';
export declare function AddCORSHeader(res: RivetResponse, options?: CorsOptions): void;
export declare function HandlePreflight(req: any, res: RivetResponse): boolean;
//# sourceMappingURL=cors.d.ts.map
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAU1D,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,GAAE,WAAgC,QAgB1F;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAOrE"}
"use strict";
/*
This file is licensed under the MIT license, the terms must be followed!
Copyright(c) 2026 EyeDev
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AddCORSHeader = AddCORSHeader;
exports.HandlePreflight = HandlePreflight;
const DefaultCorsOptions = {
origin: '*',
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
headers: ['Content-Type', 'Authorization'],
credentials: false,
};
// Adds the needed CORS tags to the response header
function AddCORSHeader(res, options = DefaultCorsOptions) {
const opts = { ...DefaultCorsOptions, ...options };
// Origin
const origin = Array.isArray(opts.origin) ? opts.origin.join(', ') : opts.origin;
res.setHeader('Access-Control-Allow-Origin', origin || '*');
// Headers
if (opts.headers) {
res.setHeader('Access-Control-Allow-Headers', opts.headers.join(', '));
}
// Credentials
if (opts.credentials) {
res.setHeader('Access-Control-Allow-Credentials', 'true');
}
}
// Handles preflight request sent by browsers
function HandlePreflight(req, res) {
if (req.method === 'OPTIONS') {
res.writeHead(204); // 204: No content
res.end();
return true;
}
return false;
}
//# sourceMappingURL=cors.js.map
{"version":3,"file":"cors.js","sourceRoot":"","sources":["../src/cors.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAcF,sCAgBC;AAGD,0CAOC;AAlCD,MAAM,kBAAkB,GAAgB;IACpC,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IAC7D,OAAO,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IAC1C,WAAW,EAAE,KAAK;CACrB,CAAC;AAEF,mDAAmD;AACnD,SAAgB,aAAa,CAAC,GAAkB,EAAE,UAAuB,kBAAkB;IACvF,MAAM,IAAI,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;IAEnD,SAAS;IACT,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACjF,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC;IAE5D,UAAU;IACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,cAAc;IACd,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC;AAED,6CAA6C;AAC7C,SAAgB,eAAe,CAAC,GAAQ,EAAE,GAAkB;IACxD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB;QACtC,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
import type { RivetPlugin } from '../types';
export declare const LoggingPlugin: RivetPlugin;
//# sourceMappingURL=logging.d.ts.map
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/plugins/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,aAAa,EAAE,WAmB3B,CAAC"}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoggingPlugin = void 0;
exports.LoggingPlugin = {
name: 'logging',
version: '1.0.0',
install(app) {
app.UseMiddleware((req, res, next) => {
const start = Date.now();
const method = req.method;
const url = req.url;
console.log(`${method} ${url}`);
// Use 'finish' event instead of overriding end
res.once('finish', () => {
const duration = Date.now() - start;
console.log(`${method} ${url} - ${duration}ms`);
});
next();
});
},
};
//# sourceMappingURL=logging.js.map
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/plugins/logging.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAgB;IACtC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,CAAC,GAAG;QACP,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;YAEhC,+CAA+C;YAC/C,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBACpC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,GAAG,MAAM,QAAQ,IAAI,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;YAEH,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
/*
This file is licensed under the MIT license, the terms must be followed!
Copyright(c) 2026 EyeDev
*/
// This file handles CORS on the server side, it is used for security
import type { RivetResponse, CorsOptions } from './types';
const DefaultCorsOptions: CorsOptions = {
origin: '*',
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
headers: ['Content-Type', 'Authorization'],
credentials: false,
};
// Adds the needed CORS tags to the response header
export function AddCORSHeader(res: RivetResponse, options: CorsOptions = DefaultCorsOptions) {
const opts = { ...DefaultCorsOptions, ...options };
// Origin
const origin = Array.isArray(opts.origin) ? opts.origin.join(', ') : opts.origin;
res.setHeader('Access-Control-Allow-Origin', origin || '*');
// Headers
if (opts.headers) {
res.setHeader('Access-Control-Allow-Headers', opts.headers.join(', '));
}
// Credentials
if (opts.credentials) {
res.setHeader('Access-Control-Allow-Credentials', 'true');
}
}
// Handles preflight request sent by browsers
export function HandlePreflight(req: any, res: RivetResponse): boolean {
if (req.method === 'OPTIONS') {
res.writeHead(204); // 204: No content
res.end();
return true;
}
return false;
}
import type { RivetPlugin, Middleware } from '../types';
export const LoggingPlugin: RivetPlugin = {
name: 'logging',
version: '1.0.0',
install(app) {
app.UseMiddleware((req, res, next) => {
const start = Date.now();
const method = req.method;
const url = req.url;
console.log(`${method} ${url}`);
// Use 'finish' event instead of overriding end
res.once('finish', () => {
const duration = Date.now() - start;
console.log(`${method} ${url} - ${duration}ms`);
});
next();
});
},
};
+1
-1
export { Rivet } from './rivet';
export type { RivetResponse } from './types';
export type { RivetResponse, RivetPlugin } from './types';
//# sourceMappingURL=index.d.ts.map

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

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}

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

import type { RivetResponse, RouteHandlers } from './types';
import type { RivetResponse, RouteHandlers, CorsOptions, RivetPlugin, Middleware } from './types';
import type { IncomingMessage } from 'http';
export declare class Rivet {
private plugins;
private middlewares;
private server;

@@ -12,3 +14,7 @@ routes: {

constructor();
private corsOptions;
cors(options: CorsOptions): this;
start(port: number, callback?: () => void): void;
UseMiddleware(middleware: Middleware): this;
use(plugin: RivetPlugin): this;
private ParsePath;

@@ -18,4 +24,5 @@ get(path: string, handler: Function): void;

OnRequest(req: IncomingMessage, res: RivetResponse): Promise<void>;
HandleRoute(req: IncomingMessage, res: RivetResponse): Promise<void>;
static(prefix: string, directory: string): void;
}
//# sourceMappingURL=rivet.d.ts.map

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

{"version":3,"file":"rivet.d.ts","sourceRoot":"","sources":["../src/rivet.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI5D,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,MAAM,CAAC;AAkDpE,qBAAa,KAAK;IACd,OAAO,CAAC,MAAM,CAAuB;IACrC,MAAM,EAAE;QACJ,GAAG,EAAE,aAAa,CAAC;QACnB,IAAI,EAAE,aAAa,CAAC;QACpB,GAAG,EAAE,aAAa,CAAC;QACnB,MAAM,EAAE,aAAa,CAAC;KACzB,CAAC;;IAaF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAYhD,OAAO,CAAC,SAAS;IAkBjB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAU1C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAUrC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyExE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAgBlD"}
{"version":3,"file":"rivet.d.ts","sourceRoot":"","sources":["../src/rivet.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKlG,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,MAAM,CAAC;AAkDpE,qBAAa,KAAK;IACd,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,MAAM,CAAuB;IACrC,MAAM,EAAE;QACJ,GAAG,EAAE,aAAa,CAAC;QACnB,IAAI,EAAE,aAAa,CAAC;QACpB,GAAG,EAAE,aAAa,CAAC;QACnB,MAAM,EAAE,aAAa,CAAC;KACzB,CAAC;;IAYF,OAAO,CAAC,WAAW,CAAmB;IAGtC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAMhC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAYhD,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAM3C,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAO9B,OAAO,CAAC,SAAS;IAkBjB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAU1C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAUrC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlE,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA8E1E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAgBlD"}

@@ -13,2 +13,3 @@ "use strict";

const response_1 = require("./response");
const cors_1 = require("./cors");
const static_1 = require("./static");

@@ -61,3 +62,6 @@ // Parses the request body

constructor() {
this.plugins = [];
this.middlewares = [];
this.server = null;
this.corsOptions = {};
// Route function handlers are defined in here

@@ -71,2 +75,7 @@ this.routes = {

}
// Allows editing of CORS options before the server is started, or while its running
cors(options) {
this.corsOptions = { ...this.corsOptions, ...options };
return this;
}
// Starts the HTTP server and serves on the provided port

@@ -82,2 +91,13 @@ start(port, callback) {

}
// Registers new middleware to run every request
UseMiddleware(middleware) {
this.middlewares.push(middleware);
return this;
}
// Registers a plugin
use(plugin) {
plugin.install(this); // Call the install function
this.plugins.push(plugin);
return this;
}
// Parses a path and returns the regex and parameters

@@ -114,4 +134,24 @@ ParsePath(path) {

}
// Called when an request happends on the server
// Called when the server recives an request
async OnRequest(req, res) {
// Run all the middleware
let index = 0;
const next = async () => {
if (index < this.middlewares.length) {
const middleware = this.middlewares[index++];
await middleware(req, res, next);
}
else {
await this.HandleRoute(req, res);
}
};
await next();
}
// Called when after middleware runs
async HandleRoute(req, res) {
// Always apply CORS headers
(0, cors_1.AddCORSHeader)(res, this.corsOptions);
// Handle preflight
if ((0, cors_1.HandlePreflight)(req, res))
return;
const method = req.method; // Get the HTTP method

@@ -118,0 +158,0 @@ const url = req.url?.split('?')[0] || '/'; // Get the URL and strip the query params

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

{"version":3,"file":"rivet.js","sourceRoot":"","sources":["../src/rivet.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"rivet.js","sourceRoot":"","sources":["../src/rivet.ts"],"names":[],"mappings":"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"}

@@ -1,2 +0,3 @@

import { ServerResponse } from 'node:http';
import { ServerResponse, IncomingMessage } from 'node:http';
import type { Rivet } from './rivet';
export type Route = {

@@ -15,2 +16,14 @@ handler: Function;

};
export interface CorsOptions {
origin?: string | string[];
methods?: string[];
headers?: string[];
credentials?: boolean;
}
export interface RivetPlugin {
name: string;
version?: string;
install(app: Rivet): void | Promise<void>;
}
export type Middleware = (req: IncomingMessage, res: RivetResponse, next: () => void) => void;
//# sourceMappingURL=types.d.ts.map

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

{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,MAAM,KAAK,GAAG;IAChB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;CACxB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9D,CAAC"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,MAAM,MAAM,KAAK,GAAG;IAChB,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;CACxB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1B,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC"}
{
"name": "@igosprojects/rivet",
"version": "1.0.3",
"version": "1.0.4",
"description": "Rivet is a small server framework for NodeJS",

@@ -21,4 +21,6 @@ "main": "./dist/index.js",

},
"keywords": [],
"author": "",
"keywords": [
"rivet"
],
"author": "EyeDev",
"license": "MIT",

@@ -25,0 +27,0 @@ "packageManager": "pnpm@10.33.0",

@@ -7,2 +7,2 @@ /*

export { Rivet } from './rivet';
export type { RivetResponse } from './types';
export type { RivetResponse, RivetPlugin } from './types';

@@ -7,5 +7,5 @@ /*

import http from 'http';
import https from 'https';
import type { RivetResponse, RouteHandlers } from './types';
import type { RivetResponse, RouteHandlers, CorsOptions, RivetPlugin, Middleware } from './types';
import { InjectResponseHelpers } from './response';
import { AddCORSHeader, HandlePreflight } from './cors';
import { ServeStatic } from './static';

@@ -64,2 +64,5 @@

export class Rivet {
private plugins: RivetPlugin[] = [];
private middlewares: Middleware[] = [];
private server: Server | null = null;

@@ -83,2 +86,10 @@ routes: {

private corsOptions: CorsOptions = {};
// Allows editing of CORS options before the server is started, or while its running
cors(options: CorsOptions): this {
this.corsOptions = { ...this.corsOptions, ...options };
return this;
}
// Starts the HTTP server and serves on the provided port

@@ -96,2 +107,15 @@ start(port: number, callback?: () => void): void {

// Registers new middleware to run every request
UseMiddleware(middleware: Middleware): this {
this.middlewares.push(middleware);
return this;
}
// Registers a plugin
use(plugin: RivetPlugin): this {
plugin.install(this); // Call the install function
this.plugins.push(plugin);
return this;
}
// Parses a path and returns the regex and parameters

@@ -135,4 +159,26 @@ private ParsePath(path: string): { regex: RegExp; paramNames: string[] } {

// Called when an request happends on the server
// Called when the server recives an request
async OnRequest(req: IncomingMessage, res: RivetResponse): Promise<void> {
// Run all the middleware
let index = 0;
const next = async () => {
if (index < this.middlewares.length) {
const middleware = this.middlewares[index++];
await middleware(req, res, next);
} else {
await this.HandleRoute(req, res);
}
};
await next();
}
// Called when after middleware runs
async HandleRoute(req: IncomingMessage, res: RivetResponse): Promise<void> {
// Always apply CORS headers
AddCORSHeader(res, this.corsOptions);
// Handle preflight
if (HandlePreflight(req, res)) return;
const method = req.method as keyof typeof this.routes; // Get the HTTP method

@@ -171,3 +217,2 @@ const url = req.url?.split('?')[0] || '/'; // Get the URL and strip the query params

if (!route) {
for (const [pattern, r] of Object.entries(methodRoutes)) {

@@ -174,0 +219,0 @@ if (pattern.endsWith('*')) continue; // Check if "/*" or such

@@ -6,3 +6,4 @@ /*

import { ServerResponse } from 'node:http';
import { ServerResponse, IncomingMessage } from 'node:http';
import type { Rivet } from './rivet';

@@ -27,1 +28,16 @@ // New route type, replaced old simple one

};
export interface CorsOptions {
origin?: string | string[];
methods?: string[];
headers?: string[];
credentials?: boolean;
}
export interface RivetPlugin {
name: string;
version?: string;
install(app: Rivet): void | Promise<void>;
}
export type Middleware = (req: IncomingMessage, res: RivetResponse, next: () => void) => void;