New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@hyperstackjs/hypernight

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hyperstackjs/hypernight - npm Package Compare versions

Comparing version
1.0.33
to
1.0.34
+1
dist/decorators/class.d.ts.map
{"version":3,"file":"class.d.ts","sourceRoot":"","sources":["../../src/decorators/class.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,EAAkB,UAAU,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;AAGxE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAIvD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAInE;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,GACpC,cAAc,CAQhB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,WAAW,GAAG,WAAW,EAAE,GACpC,cAAc,CAIhB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,IAAI,CAUN;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,IAAI,CAUN;AAED,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,WAAW,GAAG,WAAW,EAAE,GAC5C,IAAI,CAqBN"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
{"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../src/decorators/method.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,aAAa,EAA+B,MAAM,SAAS,CAAA;AAGzE,wBAAgB,GAAG,CACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,QAAQ,CACtB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,IAAI,CAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,MAAM,CACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,GAAG,CACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,IAAI,CAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,IAAI,CAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,KAAK,CACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,UAAU,CACxB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,KAAK,CACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,IAAI,CAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,MAAM,CACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,KAAK,CACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,IAAI,CAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,KAAK,CACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,GAAG,CACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,MAAM,CACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,MAAM,CACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,SAAS,CACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,KAAK,CACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,MAAM,CACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AAED,wBAAgB,WAAW,CACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GACrB,eAAe,GAAG,iBAAiB,CAErC;AA+BD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,EAChB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,IAAI,CAoBN"}
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/decorators/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAGV,eAAe,IAAI,gBAAgB,EACnC,UAAU,IAAI,WAAW,EAC1B,MAAM,SAAS,CAAA;AAGhB,wBAAgB,UAAU,CACxB,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE,GACtC,eAAe,GAAG,iBAAiB,CAIrC;AAGD,wBAAgB,eAAe,CAC7B,eAAe,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACrD,eAAe,GAAG,iBAAiB,CAIrC;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,WAAW,GAAG,WAAW,EAAE,GACtC,cAAc,CAIhB;AAED,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACrD,cAAc,CAQhB;AAGD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,EAChB,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,GACvC,IAAI,CAkBN;AAGD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,EAChB,gBAAgB,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GACtD,IAAI,CAkBN"}
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/decorators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,OAAO,EACP,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE3D,oBAAY,UAAU,GAAG,cAAc,CAAA;AACvC,oBAAY,eAAe,GAAG,mBAAmB,CAAA;AACjD,oBAAY,eAAe,GAAG,CAAC,gBAAgB,EAAE,GAAG,KAAK,cAAc,CAAA;AACvE,oBAAY,UAAU,GAAG,GAAG,CAAA;AAC5B,oBAAY,SAAS,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,OAAO,CAAA;AAE5D,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,UAAU,EAAE,CAAA;IACzB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAA;IAC/B,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,OAAO,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED,eAAO,MAAM,gBAAgB,eAA+B,CAAA;AAE5D,oBAAY,aAAa,GAAG,QAAQ,GAAG,KAAK,CAAA;AAC5C,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,CAAA;IAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,aAAa;IACpB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B"}
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/decorators/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/E,wBAAgB,OAAO,CACrB,OAAO,EAAE,eAAe,GACvB,eAAe,GAAG,iBAAiB,CAIrC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAIrE;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,EAChB,OAAO,EAAE,eAAe,GACvB,IAAI,CAQN"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA"}
{"version":3,"file":"Server.d.ts","sourceRoot":"","sources":["../src/Server.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAIzB,OAAO,KAAK,EACV,WAAW,EAIX,cAAc,EAEf,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EACV,UAAU,EAKV,SAAS,EACV,MAAM,oBAAoB,CAAA;AAQ3B,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAmC;gBAEtD,QAAQ,CAAC,EAAE,OAAO;IAM9B,IAAW,GAAG,IAAI,WAAW,CAE5B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAEpC;IAED;;;;;;;;OAQG;IACI,cAAc,CACnB,WAAW,EAAE,UAAU,GAAG,UAAU,EAAE,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,gBAAgB,CAAC,EAAE,cAAc,GAChC,IAAI;IAyBP,OAAO,CAAC,mBAAmB;IAa3B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CAwGlB"}
+16
-483

@@ -1,485 +0,18 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
All: () => All,
Checkout: () => Checkout,
ChildControllers: () => ChildControllers,
Children: () => Children,
ClassErrorMiddleware: () => ClassErrorMiddleware,
ClassMiddleware: () => ClassMiddleware,
ClassOptions: () => ClassOptions,
ClassWrapper: () => ClassWrapper,
Controller: () => Controller,
Copy: () => Copy,
Delete: () => Delete,
ErrorMiddleware: () => ErrorMiddleware,
Get: () => Get,
Head: () => Head,
Lock: () => Lock,
MSearch: () => MSearch,
Merge: () => Merge,
Middleware: () => Middleware,
Mkactivity: () => Mkactivity,
Mkcol: () => Mkcol,
Move: () => Move,
Notify: () => Notify,
Options: () => Options,
Patch: () => Patch,
Post: () => Post,
Purge: () => Purge,
Put: () => Put,
Report: () => Report,
Search: () => Search,
Server: () => Server,
Subscribe: () => Subscribe,
Trace: () => Trace,
Unlock: () => Unlock,
Unsubscribe: () => Unsubscribe,
Wrapper: () => Wrapper,
addBasePathToClassMetadata: () => addBasePathToClassMetadata,
addChildControllersToClassMetadata: () => addChildControllersToClassMetadata,
addClassOptionsToClassMetadata: () => addClassOptionsToClassMetadata,
addErrorMiddlewareToMetadata: () => addErrorMiddlewareToMetadata,
addHttpVerbToMethodMetadata: () => addHttpVerbToMethodMetadata,
addMiddlewareToMetadata: () => addMiddlewareToMetadata,
addWrapperToMetadata: () => addWrapperToMetadata
});
module.exports = __toCommonJS(src_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/class.ts
function Controller(path) {
return (target) => {
addBasePathToClassMetadata(target.prototype, `/${path}`);
};
}
function ClassOptions(options) {
return (target) => {
addClassOptionsToClassMetadata(target.prototype, options);
};
}
function Children(children) {
console.log("Warning: @Children decorator is deprecated. Use ChildControllers instead.");
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
function ChildControllers(children) {
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
function addBasePathToClassMetadata(target, basePath) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.basePath = basePath;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
function addClassOptionsToClassMetadata(target, options) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.options = options;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
function addChildControllersToClassMetadata(target, childControllers) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.childControllers) {
metadata.childControllers = [];
}
let newArr;
if (childControllers instanceof Array) {
newArr = childControllers.slice();
} else {
newArr = [childControllers];
}
newArr.push(...metadata.childControllers);
metadata.childControllers = newArr;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
// src/decorators/method.ts
function All(path) {
return helperForRoutes("all", path);
}
function Checkout(path) {
return helperForRoutes("checkout" /* CHECKOUT */, path);
}
function Copy(path) {
return helperForRoutes("copy" /* COPY */, path);
}
function Delete(path) {
return helperForRoutes("delete" /* DELETE */, path);
}
function Get(path) {
return helperForRoutes("get" /* GET */, path);
}
function Head(path) {
return helperForRoutes("head" /* HEAD */, path);
}
function Lock(path) {
return helperForRoutes("lock" /* LOCK */, path);
}
function Merge(path) {
return helperForRoutes("merge" /* MERGE */, path);
}
function Mkactivity(path) {
return helperForRoutes("mkactivity" /* MKACTIVITY */, path);
}
function Mkcol(path) {
return helperForRoutes("mkcol" /* MKCOL */, path);
}
function Move(path) {
return helperForRoutes("move" /* MOVE */, path);
}
function MSearch(path) {
return helperForRoutes("m-search" /* MSEARCH */, path);
}
function Notify(path) {
return helperForRoutes("notify" /* NOTIFY */, path);
}
function Options(path) {
return helperForRoutes("options" /* OPTIONS */, path);
}
function Patch(path) {
return helperForRoutes("patch" /* PATCH */, path);
}
function Post(path) {
return helperForRoutes("post" /* POST */, path);
}
function Purge(path) {
return helperForRoutes("purge" /* PURGE */, path);
}
function Put(path) {
return helperForRoutes("put" /* PUT */, path);
}
function Report(path) {
return helperForRoutes("report" /* REPORT */, path);
}
function Search(path) {
return helperForRoutes("search" /* SEARCH */, path);
}
function Subscribe(path) {
return helperForRoutes("subscribe" /* SUBSCRIBE */, path);
}
function Trace(path) {
return helperForRoutes("trace" /* TRACE */, path);
}
function Unlock(path) {
return helperForRoutes("unlock" /* UNLOCK */, path);
}
function Unsubscribe(path) {
return helperForRoutes("unsubscribe" /* UNSUBSCRIBE */, path);
}
function helperForRoutes(httpVerb, path) {
return (target, propertyKey) => {
let newPath;
if (path === void 0) {
newPath = "";
} else if (path instanceof RegExp) {
newPath = addForwardSlashToFrontOfRegex(path);
} else {
newPath = `/${path}`;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
addHttpVerbToMethodMetadata(target, propertyKey, httpVerb, newPath);
};
}
function addForwardSlashToFrontOfRegex(regex) {
if (regex.toString().charAt(1) === "^") {
return RegExp(`/${regex.toString().slice(2).replace(/\/$/, "")}`);
} else {
return new RegExp(`/.*${regex.toString().slice(1).replace(/\/$/, "")}`);
}
}
function addHttpVerbToMethodMetadata(target, metadataKey, httpDecorator, path) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.httpRoutes) {
metadata.httpRoutes = [];
}
const newArr = [
{
httpDecorator,
path
}
];
newArr.push(...metadata.httpRoutes);
metadata.httpRoutes = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/decorators/middleware.ts
function Middleware(middleware) {
return (target, propertyKey) => {
addMiddlewareToMetadata(target, propertyKey, middleware);
};
}
function ErrorMiddleware(errorMiddleware) {
return (target, propertyKey) => {
addErrorMiddlewareToMetadata(target, propertyKey, errorMiddleware);
};
}
function ClassMiddleware(middleware) {
return (target) => {
addMiddlewareToMetadata(target.prototype, classMetadataKey, middleware);
};
}
function ClassErrorMiddleware(errorMiddleware) {
return (target) => {
addErrorMiddlewareToMetadata(target.prototype, classMetadataKey, errorMiddleware);
};
}
function addMiddlewareToMetadata(target, metadataKey, middlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.middlewares) {
metadata.middlewares = [];
}
let newArr;
if (middlewares instanceof Array) {
newArr = middlewares.slice();
} else {
newArr = [middlewares];
}
newArr.push(...metadata.middlewares);
metadata.middlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
function addErrorMiddlewareToMetadata(target, metadataKey, errorMiddlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.errorMiddlewares) {
metadata.errorMiddlewares = [];
}
let newArr;
if (errorMiddlewares instanceof Array) {
newArr = errorMiddlewares.slice();
} else {
newArr = [errorMiddlewares];
}
newArr.push(...metadata.errorMiddlewares);
metadata.errorMiddlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/decorators/wrapper.ts
function Wrapper(wrapper) {
return (target, propertyKey) => {
addWrapperToMetadata(target, propertyKey, wrapper);
};
}
function ClassWrapper(wrapper) {
return (target) => {
addWrapperToMetadata(target.prototype, classMetadataKey, wrapper);
};
}
function addWrapperToMetadata(target, metadataKey, wrapper) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.wrapper = wrapper;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/Server.ts
var import_reflect_metadata = require("reflect-metadata");
var _Server = class {
constructor(showLogs) {
this._showLogs = false;
const express = require("express");
this._app = express();
this._showLogs = showLogs || false;
}
get app() {
return this._app;
}
get showLogs() {
return this._showLogs;
}
set showLogs(showLogs) {
this._showLogs = showLogs;
}
addControllers(controllers, routerLib, globalMiddleware) {
controllers = Array.isArray(controllers) ? controllers : [controllers];
const { Router } = require("express");
const routerLibrary = routerLib || Router;
controllers.forEach((controller) => {
if (controller) {
const routerAndPath = this.getRouter(routerLibrary, controller);
if (routerAndPath) {
if (globalMiddleware) {
this.app.use(routerAndPath.basePath, globalMiddleware, routerAndPath.router);
} else {
this.app.use(routerAndPath.basePath, routerAndPath.router);
}
}
}
});
}
wrapErrorMiddleware(errorMiddleware, requestHandler) {
return (req, res, next) => {
try {
requestHandler(req, res, next);
} catch (error) {
errorMiddleware(error, req, res, next);
}
};
}
getRouter(routerLibrary, controller) {
const prototype = Object.getPrototypeOf(controller);
const classMetadata = Reflect.getOwnMetadata(classMetadataKey, prototype);
if (!classMetadata) {
return null;
}
const {
basePath,
childControllers: children,
errorMiddlewares: classErrorMiddleware,
middlewares: classMiddleware,
options,
wrapper: classWrapper
} = classMetadata;
if (!basePath) {
return null;
}
const router = routerLibrary(options);
if (this.showLogs) {
console.log(`${_Server.LOG_STR} "${controller.constructor.name}"`);
}
if (classMiddleware) {
router.use(classMiddleware);
}
let members = Object.getOwnPropertyNames(controller);
members = members.concat(Object.getOwnPropertyNames(prototype));
members.forEach((member) => {
const methodMetadata = Reflect.getOwnMetadata(member, prototype);
if (methodMetadata) {
const {
httpRoutes,
middlewares,
errorMiddlewares,
wrapper
} = methodMetadata;
let callBack = (...args) => {
return controller[member](...args);
};
if (classWrapper) {
callBack = classWrapper(callBack);
}
if (wrapper) {
callBack = wrapper(callBack);
}
if (errorMiddlewares) {
errorMiddlewares.forEach((errorMiddleware) => {
callBack = this.wrapErrorMiddleware(errorMiddleware, callBack);
});
}
if (httpRoutes) {
httpRoutes.forEach((route) => {
const { httpDecorator, path } = route;
if (middlewares) {
router[httpDecorator](path, middlewares, callBack);
} else {
router[httpDecorator](path, callBack);
}
});
}
}
});
if (children) {
children.forEach((child) => {
const childRouterAndPath = this.getRouter(routerLibrary, child);
if (childRouterAndPath) {
router.use(childRouterAndPath.basePath, childRouterAndPath.router);
}
});
}
if (classErrorMiddleware) {
router.use(classErrorMiddleware);
}
return {
basePath,
router
};
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var Server = _Server;
Server.LOG_STR = "Setting up controller:";
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
All,
Checkout,
ChildControllers,
Children,
ClassErrorMiddleware,
ClassMiddleware,
ClassOptions,
ClassWrapper,
Controller,
Copy,
Delete,
ErrorMiddleware,
Get,
Head,
Lock,
MSearch,
Merge,
Middleware,
Mkactivity,
Mkcol,
Move,
Notify,
Options,
Patch,
Post,
Purge,
Put,
Report,
Search,
Server,
Subscribe,
Trace,
Unlock,
Unsubscribe,
Wrapper,
addBasePathToClassMetadata,
addChildControllersToClassMetadata,
addClassOptionsToClassMetadata,
addErrorMiddlewareToMetadata,
addHttpVerbToMethodMetadata,
addMiddlewareToMetadata,
addWrapperToMetadata
});
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./decorators"), exports);
__exportStar(require("./Server"), exports);

@@ -1,13 +0,11 @@

import { RouterOptions } from 'express';
import { Controller as Controller$1 } from './types.js';
import 'express-serve-static-core';
declare function Controller(path: string): ClassDecorator;
declare function ClassOptions(options: RouterOptions): ClassDecorator;
declare function Children(children: Controller$1 | Controller$1[]): ClassDecorator;
declare function ChildControllers(children: Controller$1 | Controller$1[]): ClassDecorator;
declare function addBasePathToClassMetadata(target: Object, basePath: string): void;
declare function addClassOptionsToClassMetadata(target: Object, options: RouterOptions): void;
declare function addChildControllersToClassMetadata(target: Object, childControllers: Controller$1 | Controller$1[]): void;
export { ChildControllers, Children, ClassOptions, Controller, addBasePathToClassMetadata, addChildControllersToClassMetadata, addClassOptionsToClassMetadata };
import 'reflect-metadata';
import type { RouterOptions } from 'express';
import type { Controller as TController } from './types';
export declare function Controller(path: string): ClassDecorator;
export declare function ClassOptions(options: RouterOptions): ClassDecorator;
export declare function Children(children: TController | TController[]): ClassDecorator;
export declare function ChildControllers(children: TController | TController[]): ClassDecorator;
export declare function addBasePathToClassMetadata(target: Object, basePath: string): void;
export declare function addClassOptionsToClassMetadata(target: Object, options: RouterOptions): void;
export declare function addChildControllersToClassMetadata(target: Object, childControllers: TController | TController[]): void;
//# sourceMappingURL=class.d.ts.map

@@ -1,100 +0,69 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/decorators/class.ts
var class_exports = {};
__export(class_exports, {
ChildControllers: () => ChildControllers,
Children: () => Children,
ClassOptions: () => ClassOptions,
Controller: () => Controller,
addBasePathToClassMetadata: () => addBasePathToClassMetadata,
addChildControllersToClassMetadata: () => addChildControllersToClassMetadata,
addClassOptionsToClassMetadata: () => addClassOptionsToClassMetadata
});
module.exports = __toCommonJS(class_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/class.ts
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addChildControllersToClassMetadata = exports.addClassOptionsToClassMetadata = exports.addBasePathToClassMetadata = exports.ChildControllers = exports.Children = exports.ClassOptions = exports.Controller = void 0;
require("reflect-metadata");
const types_1 = require("./types");
function Controller(path) {
return (target) => {
addBasePathToClassMetadata(target.prototype, `/${path}`);
};
return (target) => {
addBasePathToClassMetadata(target.prototype, `/${path}`);
};
}
exports.Controller = Controller;
function ClassOptions(options) {
return (target) => {
addClassOptionsToClassMetadata(target.prototype, options);
};
return (target) => {
addClassOptionsToClassMetadata(target.prototype, options);
};
}
exports.ClassOptions = ClassOptions;
function Children(children) {
console.log("Warning: @Children decorator is deprecated. Use ChildControllers instead.");
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
// eslint-disable-next-line no-console
console.log('Warning: @Children decorator is deprecated. Use ChildControllers instead.');
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
exports.Children = Children;
function ChildControllers(children) {
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
exports.ChildControllers = ChildControllers;
function addBasePathToClassMetadata(target, basePath) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.basePath = basePath;
Reflect.defineMetadata(classMetadataKey, metadata, target);
let metadata = Reflect.getOwnMetadata(types_1.classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.basePath = basePath;
Reflect.defineMetadata(types_1.classMetadataKey, metadata, target);
}
exports.addBasePathToClassMetadata = addBasePathToClassMetadata;
function addClassOptionsToClassMetadata(target, options) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.options = options;
Reflect.defineMetadata(classMetadataKey, metadata, target);
let metadata = Reflect.getOwnMetadata(types_1.classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.options = options;
Reflect.defineMetadata(types_1.classMetadataKey, metadata, target);
}
exports.addClassOptionsToClassMetadata = addClassOptionsToClassMetadata;
function addChildControllersToClassMetadata(target, childControllers) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.childControllers) {
metadata.childControllers = [];
}
let newArr;
if (childControllers instanceof Array) {
newArr = childControllers.slice();
} else {
newArr = [childControllers];
}
newArr.push(...metadata.childControllers);
metadata.childControllers = newArr;
Reflect.defineMetadata(classMetadataKey, metadata, target);
let metadata = Reflect.getOwnMetadata(types_1.classMetadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.childControllers) {
metadata.childControllers = [];
}
let newArr;
if (childControllers instanceof Array) {
newArr = childControllers.slice();
}
else {
newArr = [childControllers];
}
newArr.push(...metadata.childControllers);
metadata.childControllers = newArr;
Reflect.defineMetadata(types_1.classMetadataKey, metadata, target);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ChildControllers,
Children,
ClassOptions,
Controller,
addBasePathToClassMetadata,
addChildControllersToClassMetadata,
addClassOptionsToClassMetadata
});
exports.addChildControllersToClassMetadata = addChildControllersToClassMetadata;

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

export { ChildControllers, Children, ClassOptions, Controller, addBasePathToClassMetadata, addChildControllersToClassMetadata, addClassOptionsToClassMetadata } from './class.js';
export { All, Checkout, Copy, Delete, Get, Head, Lock, MSearch, Merge, Mkactivity, Mkcol, Move, Notify, Options, Patch, Post, Purge, Put, Report, Search, Subscribe, Trace, Unlock, Unsubscribe, addHttpVerbToMethodMetadata } from './method.js';
export { ClassErrorMiddleware, ClassMiddleware, ErrorMiddleware, Middleware, addErrorMiddlewareToMetadata, addMiddlewareToMetadata } from './middleware.js';
export { ClassWrapper, Wrapper, addWrapperToMetadata } from './wrapper.js';
import 'express';
import './types.js';
import 'express-serve-static-core';
export * from './class';
export * from './method';
export * from './middleware';
export * from './wrapper';
//# sourceMappingURL=index.d.ts.map

@@ -1,358 +0,20 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/decorators/index.ts
var decorators_exports = {};
__export(decorators_exports, {
All: () => All,
Checkout: () => Checkout,
ChildControllers: () => ChildControllers,
Children: () => Children,
ClassErrorMiddleware: () => ClassErrorMiddleware,
ClassMiddleware: () => ClassMiddleware,
ClassOptions: () => ClassOptions,
ClassWrapper: () => ClassWrapper,
Controller: () => Controller,
Copy: () => Copy,
Delete: () => Delete,
ErrorMiddleware: () => ErrorMiddleware,
Get: () => Get,
Head: () => Head,
Lock: () => Lock,
MSearch: () => MSearch,
Merge: () => Merge,
Middleware: () => Middleware,
Mkactivity: () => Mkactivity,
Mkcol: () => Mkcol,
Move: () => Move,
Notify: () => Notify,
Options: () => Options,
Patch: () => Patch,
Post: () => Post,
Purge: () => Purge,
Put: () => Put,
Report: () => Report,
Search: () => Search,
Subscribe: () => Subscribe,
Trace: () => Trace,
Unlock: () => Unlock,
Unsubscribe: () => Unsubscribe,
Wrapper: () => Wrapper,
addBasePathToClassMetadata: () => addBasePathToClassMetadata,
addChildControllersToClassMetadata: () => addChildControllersToClassMetadata,
addClassOptionsToClassMetadata: () => addClassOptionsToClassMetadata,
addErrorMiddlewareToMetadata: () => addErrorMiddlewareToMetadata,
addHttpVerbToMethodMetadata: () => addHttpVerbToMethodMetadata,
addMiddlewareToMetadata: () => addMiddlewareToMetadata,
addWrapperToMetadata: () => addWrapperToMetadata
});
module.exports = __toCommonJS(decorators_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/class.ts
function Controller(path) {
return (target) => {
addBasePathToClassMetadata(target.prototype, `/${path}`);
};
}
function ClassOptions(options) {
return (target) => {
addClassOptionsToClassMetadata(target.prototype, options);
};
}
function Children(children) {
console.log("Warning: @Children decorator is deprecated. Use ChildControllers instead.");
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
function ChildControllers(children) {
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
function addBasePathToClassMetadata(target, basePath) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.basePath = basePath;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
function addClassOptionsToClassMetadata(target, options) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.options = options;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
function addChildControllersToClassMetadata(target, childControllers) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.childControllers) {
metadata.childControllers = [];
}
let newArr;
if (childControllers instanceof Array) {
newArr = childControllers.slice();
} else {
newArr = [childControllers];
}
newArr.push(...metadata.childControllers);
metadata.childControllers = newArr;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
// src/decorators/method.ts
function All(path) {
return helperForRoutes("all", path);
}
function Checkout(path) {
return helperForRoutes("checkout" /* CHECKOUT */, path);
}
function Copy(path) {
return helperForRoutes("copy" /* COPY */, path);
}
function Delete(path) {
return helperForRoutes("delete" /* DELETE */, path);
}
function Get(path) {
return helperForRoutes("get" /* GET */, path);
}
function Head(path) {
return helperForRoutes("head" /* HEAD */, path);
}
function Lock(path) {
return helperForRoutes("lock" /* LOCK */, path);
}
function Merge(path) {
return helperForRoutes("merge" /* MERGE */, path);
}
function Mkactivity(path) {
return helperForRoutes("mkactivity" /* MKACTIVITY */, path);
}
function Mkcol(path) {
return helperForRoutes("mkcol" /* MKCOL */, path);
}
function Move(path) {
return helperForRoutes("move" /* MOVE */, path);
}
function MSearch(path) {
return helperForRoutes("m-search" /* MSEARCH */, path);
}
function Notify(path) {
return helperForRoutes("notify" /* NOTIFY */, path);
}
function Options(path) {
return helperForRoutes("options" /* OPTIONS */, path);
}
function Patch(path) {
return helperForRoutes("patch" /* PATCH */, path);
}
function Post(path) {
return helperForRoutes("post" /* POST */, path);
}
function Purge(path) {
return helperForRoutes("purge" /* PURGE */, path);
}
function Put(path) {
return helperForRoutes("put" /* PUT */, path);
}
function Report(path) {
return helperForRoutes("report" /* REPORT */, path);
}
function Search(path) {
return helperForRoutes("search" /* SEARCH */, path);
}
function Subscribe(path) {
return helperForRoutes("subscribe" /* SUBSCRIBE */, path);
}
function Trace(path) {
return helperForRoutes("trace" /* TRACE */, path);
}
function Unlock(path) {
return helperForRoutes("unlock" /* UNLOCK */, path);
}
function Unsubscribe(path) {
return helperForRoutes("unsubscribe" /* UNSUBSCRIBE */, path);
}
function helperForRoutes(httpVerb, path) {
return (target, propertyKey) => {
let newPath;
if (path === void 0) {
newPath = "";
} else if (path instanceof RegExp) {
newPath = addForwardSlashToFrontOfRegex(path);
} else {
newPath = `/${path}`;
}
addHttpVerbToMethodMetadata(target, propertyKey, httpVerb, newPath);
};
}
function addForwardSlashToFrontOfRegex(regex) {
if (regex.toString().charAt(1) === "^") {
return RegExp(`/${regex.toString().slice(2).replace(/\/$/, "")}`);
} else {
return new RegExp(`/.*${regex.toString().slice(1).replace(/\/$/, "")}`);
}
}
function addHttpVerbToMethodMetadata(target, metadataKey, httpDecorator, path) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.httpRoutes) {
metadata.httpRoutes = [];
}
const newArr = [
{
httpDecorator,
path
}
];
newArr.push(...metadata.httpRoutes);
metadata.httpRoutes = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/decorators/middleware.ts
function Middleware(middleware) {
return (target, propertyKey) => {
addMiddlewareToMetadata(target, propertyKey, middleware);
};
}
function ErrorMiddleware(errorMiddleware) {
return (target, propertyKey) => {
addErrorMiddlewareToMetadata(target, propertyKey, errorMiddleware);
};
}
function ClassMiddleware(middleware) {
return (target) => {
addMiddlewareToMetadata(target.prototype, classMetadataKey, middleware);
};
}
function ClassErrorMiddleware(errorMiddleware) {
return (target) => {
addErrorMiddlewareToMetadata(target.prototype, classMetadataKey, errorMiddleware);
};
}
function addMiddlewareToMetadata(target, metadataKey, middlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.middlewares) {
metadata.middlewares = [];
}
let newArr;
if (middlewares instanceof Array) {
newArr = middlewares.slice();
} else {
newArr = [middlewares];
}
newArr.push(...metadata.middlewares);
metadata.middlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
function addErrorMiddlewareToMetadata(target, metadataKey, errorMiddlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.errorMiddlewares) {
metadata.errorMiddlewares = [];
}
let newArr;
if (errorMiddlewares instanceof Array) {
newArr = errorMiddlewares.slice();
} else {
newArr = [errorMiddlewares];
}
newArr.push(...metadata.errorMiddlewares);
metadata.errorMiddlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/decorators/wrapper.ts
function Wrapper(wrapper) {
return (target, propertyKey) => {
addWrapperToMetadata(target, propertyKey, wrapper);
};
}
function ClassWrapper(wrapper) {
return (target) => {
addWrapperToMetadata(target.prototype, classMetadataKey, wrapper);
};
}
function addWrapperToMetadata(target, metadataKey, wrapper) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.wrapper = wrapper;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
All,
Checkout,
ChildControllers,
Children,
ClassErrorMiddleware,
ClassMiddleware,
ClassOptions,
ClassWrapper,
Controller,
Copy,
Delete,
ErrorMiddleware,
Get,
Head,
Lock,
MSearch,
Merge,
Middleware,
Mkactivity,
Mkcol,
Move,
Notify,
Options,
Patch,
Post,
Purge,
Put,
Report,
Search,
Subscribe,
Trace,
Unlock,
Unsubscribe,
Wrapper,
addBasePathToClassMetadata,
addChildControllersToClassMetadata,
addClassOptionsToClassMetadata,
addErrorMiddlewareToMetadata,
addHttpVerbToMethodMetadata,
addMiddlewareToMetadata,
addWrapperToMetadata
});
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./class"), exports);
__exportStar(require("./method"), exports);
__exportStar(require("./middleware"), exports);
__exportStar(require("./wrapper"), exports);

@@ -1,31 +0,28 @@

import { HttpDecorator } from './types.js';
import 'express';
import 'express-serve-static-core';
declare function All(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Checkout(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Copy(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Delete(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Get(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Head(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Lock(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Merge(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Mkactivity(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Mkcol(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Move(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function MSearch(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Notify(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Options(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Patch(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Post(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Purge(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Put(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Report(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Search(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Subscribe(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Trace(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Unlock(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function Unsubscribe(path?: string | RegExp): MethodDecorator & PropertyDecorator;
declare function addHttpVerbToMethodMetadata(target: Object, metadataKey: any, httpDecorator: HttpDecorator, path: string | RegExp): void;
export { All, Checkout, Copy, Delete, Get, Head, Lock, MSearch, Merge, Mkactivity, Mkcol, Move, Notify, Options, Patch, Post, Purge, Put, Report, Search, Subscribe, Trace, Unlock, Unsubscribe, addHttpVerbToMethodMetadata };
import 'reflect-metadata';
import type { HttpDecorator } from './types';
export declare function All(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Checkout(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Copy(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Delete(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Get(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Head(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Lock(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Merge(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Mkactivity(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Mkcol(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Move(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function MSearch(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Notify(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Options(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Patch(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Post(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Purge(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Put(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Report(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Search(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Subscribe(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Trace(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Unlock(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function Unsubscribe(path?: string | RegExp): MethodDecorator & PropertyDecorator;
export declare function addHttpVerbToMethodMetadata(target: Object, metadataKey: any, httpDecorator: HttpDecorator, path: string | RegExp): void;
//# sourceMappingURL=method.d.ts.map

@@ -1,191 +0,147 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/decorators/method.ts
var method_exports = {};
__export(method_exports, {
All: () => All,
Checkout: () => Checkout,
Copy: () => Copy,
Delete: () => Delete,
Get: () => Get,
Head: () => Head,
Lock: () => Lock,
MSearch: () => MSearch,
Merge: () => Merge,
Mkactivity: () => Mkactivity,
Mkcol: () => Mkcol,
Move: () => Move,
Notify: () => Notify,
Options: () => Options,
Patch: () => Patch,
Post: () => Post,
Purge: () => Purge,
Put: () => Put,
Report: () => Report,
Search: () => Search,
Subscribe: () => Subscribe,
Trace: () => Trace,
Unlock: () => Unlock,
Unsubscribe: () => Unsubscribe,
addHttpVerbToMethodMetadata: () => addHttpVerbToMethodMetadata
});
module.exports = __toCommonJS(method_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/method.ts
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addHttpVerbToMethodMetadata = exports.Unsubscribe = exports.Unlock = exports.Trace = exports.Subscribe = exports.Search = exports.Report = exports.Put = exports.Purge = exports.Post = exports.Patch = exports.Options = exports.Notify = exports.MSearch = exports.Move = exports.Mkcol = exports.Mkactivity = exports.Merge = exports.Lock = exports.Head = exports.Get = exports.Delete = exports.Copy = exports.Checkout = exports.All = void 0;
require("reflect-metadata");
const types_1 = require("./types");
function All(path) {
return helperForRoutes("all", path);
return helperForRoutes('all', path);
}
exports.All = All;
function Checkout(path) {
return helperForRoutes("checkout" /* CHECKOUT */, path);
return helperForRoutes(types_1.HttpVerb.CHECKOUT, path);
}
exports.Checkout = Checkout;
function Copy(path) {
return helperForRoutes("copy" /* COPY */, path);
return helperForRoutes(types_1.HttpVerb.COPY, path);
}
exports.Copy = Copy;
function Delete(path) {
return helperForRoutes("delete" /* DELETE */, path);
return helperForRoutes(types_1.HttpVerb.DELETE, path);
}
exports.Delete = Delete;
function Get(path) {
return helperForRoutes("get" /* GET */, path);
return helperForRoutes(types_1.HttpVerb.GET, path);
}
exports.Get = Get;
function Head(path) {
return helperForRoutes("head" /* HEAD */, path);
return helperForRoutes(types_1.HttpVerb.HEAD, path);
}
exports.Head = Head;
function Lock(path) {
return helperForRoutes("lock" /* LOCK */, path);
return helperForRoutes(types_1.HttpVerb.LOCK, path);
}
exports.Lock = Lock;
function Merge(path) {
return helperForRoutes("merge" /* MERGE */, path);
return helperForRoutes(types_1.HttpVerb.MERGE, path);
}
exports.Merge = Merge;
function Mkactivity(path) {
return helperForRoutes("mkactivity" /* MKACTIVITY */, path);
return helperForRoutes(types_1.HttpVerb.MKACTIVITY, path);
}
exports.Mkactivity = Mkactivity;
function Mkcol(path) {
return helperForRoutes("mkcol" /* MKCOL */, path);
return helperForRoutes(types_1.HttpVerb.MKCOL, path);
}
exports.Mkcol = Mkcol;
function Move(path) {
return helperForRoutes("move" /* MOVE */, path);
return helperForRoutes(types_1.HttpVerb.MOVE, path);
}
exports.Move = Move;
function MSearch(path) {
return helperForRoutes("m-search" /* MSEARCH */, path);
return helperForRoutes(types_1.HttpVerb.MSEARCH, path);
}
exports.MSearch = MSearch;
function Notify(path) {
return helperForRoutes("notify" /* NOTIFY */, path);
return helperForRoutes(types_1.HttpVerb.NOTIFY, path);
}
exports.Notify = Notify;
function Options(path) {
return helperForRoutes("options" /* OPTIONS */, path);
return helperForRoutes(types_1.HttpVerb.OPTIONS, path);
}
exports.Options = Options;
function Patch(path) {
return helperForRoutes("patch" /* PATCH */, path);
return helperForRoutes(types_1.HttpVerb.PATCH, path);
}
exports.Patch = Patch;
function Post(path) {
return helperForRoutes("post" /* POST */, path);
return helperForRoutes(types_1.HttpVerb.POST, path);
}
exports.Post = Post;
function Purge(path) {
return helperForRoutes("purge" /* PURGE */, path);
return helperForRoutes(types_1.HttpVerb.PURGE, path);
}
exports.Purge = Purge;
function Put(path) {
return helperForRoutes("put" /* PUT */, path);
return helperForRoutes(types_1.HttpVerb.PUT, path);
}
exports.Put = Put;
function Report(path) {
return helperForRoutes("report" /* REPORT */, path);
return helperForRoutes(types_1.HttpVerb.REPORT, path);
}
exports.Report = Report;
function Search(path) {
return helperForRoutes("search" /* SEARCH */, path);
return helperForRoutes(types_1.HttpVerb.SEARCH, path);
}
exports.Search = Search;
function Subscribe(path) {
return helperForRoutes("subscribe" /* SUBSCRIBE */, path);
return helperForRoutes(types_1.HttpVerb.SUBSCRIBE, path);
}
exports.Subscribe = Subscribe;
function Trace(path) {
return helperForRoutes("trace" /* TRACE */, path);
return helperForRoutes(types_1.HttpVerb.TRACE, path);
}
exports.Trace = Trace;
function Unlock(path) {
return helperForRoutes("unlock" /* UNLOCK */, path);
return helperForRoutes(types_1.HttpVerb.UNLOCK, path);
}
exports.Unlock = Unlock;
function Unsubscribe(path) {
return helperForRoutes("unsubscribe" /* UNSUBSCRIBE */, path);
return helperForRoutes(types_1.HttpVerb.UNSUBSCRIBE, path);
}
exports.Unsubscribe = Unsubscribe;
function helperForRoutes(httpVerb, path) {
return (target, propertyKey) => {
let newPath;
if (path === void 0) {
newPath = "";
} else if (path instanceof RegExp) {
newPath = addForwardSlashToFrontOfRegex(path);
} else {
newPath = `/${path}`;
}
addHttpVerbToMethodMetadata(target, propertyKey, httpVerb, newPath);
};
return (target, propertyKey) => {
let newPath;
if (path === undefined) {
newPath = '';
}
else if (path instanceof RegExp) {
newPath = addForwardSlashToFrontOfRegex(path);
}
else {
// assert (path instanceof string)
newPath = `/${path}`;
}
addHttpVerbToMethodMetadata(target, propertyKey, httpVerb, newPath);
};
}
function addForwardSlashToFrontOfRegex(regex) {
if (regex.toString().charAt(1) === "^") {
return RegExp(`/${regex.toString().slice(2).replace(/\/$/, "")}`);
} else {
return new RegExp(`/.*${regex.toString().slice(1).replace(/\/$/, "")}`);
}
if (regex.toString().charAt(1) === '^') {
// /^api$/ -> //api$/
return RegExp(`/${regex.toString().slice(2).replace(/\/$/, '')}`);
}
else {
// /api/ -> //.*api/
return new RegExp(`/.*${regex.toString().slice(1).replace(/\/$/, '')}`);
}
}
// tslint:disable-next-line:max-line-length
function addHttpVerbToMethodMetadata(target, metadataKey, httpDecorator, path) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.httpRoutes) {
metadata.httpRoutes = [];
}
const newArr = [
{
httpDecorator,
path
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
];
newArr.push(...metadata.httpRoutes);
metadata.httpRoutes = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
if (!metadata.httpRoutes) {
metadata.httpRoutes = [];
}
const newArr = [
{
httpDecorator,
path,
},
];
newArr.push(...metadata.httpRoutes);
metadata.httpRoutes = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
All,
Checkout,
Copy,
Delete,
Get,
Head,
Lock,
MSearch,
Merge,
Mkactivity,
Mkcol,
Move,
Notify,
Options,
Patch,
Post,
Purge,
Put,
Report,
Search,
Subscribe,
Trace,
Unlock,
Unsubscribe,
addHttpVerbToMethodMetadata
});
exports.addHttpVerbToMethodMetadata = addHttpVerbToMethodMetadata;

@@ -1,12 +0,9 @@

import { Middleware as Middleware$1, ErrorMiddleware as ErrorMiddleware$1 } from './types.js';
import 'express';
import 'express-serve-static-core';
declare function Middleware(middleware: Middleware$1 | Middleware$1[]): MethodDecorator & PropertyDecorator;
declare function ErrorMiddleware(errorMiddleware: ErrorMiddleware$1 | ErrorMiddleware$1[]): MethodDecorator & PropertyDecorator;
declare function ClassMiddleware(middleware: Middleware$1 | Middleware$1[]): ClassDecorator;
declare function ClassErrorMiddleware(errorMiddleware: ErrorMiddleware$1 | ErrorMiddleware$1[]): ClassDecorator;
declare function addMiddlewareToMetadata(target: Object, metadataKey: any, middlewares: Middleware$1 | Middleware$1[]): void;
declare function addErrorMiddlewareToMetadata(target: Object, metadataKey: any, errorMiddlewares: ErrorMiddleware$1 | ErrorMiddleware$1[]): void;
export { ClassErrorMiddleware, ClassMiddleware, ErrorMiddleware, Middleware, addErrorMiddlewareToMetadata, addMiddlewareToMetadata };
import 'reflect-metadata';
import type { ErrorMiddleware as TErrorMiddleware, Middleware as TMiddleware } from './types';
export declare function Middleware(middleware: TMiddleware | TMiddleware[]): MethodDecorator & PropertyDecorator;
export declare function ErrorMiddleware(errorMiddleware: TErrorMiddleware | TErrorMiddleware[]): MethodDecorator & PropertyDecorator;
export declare function ClassMiddleware(middleware: TMiddleware | TMiddleware[]): ClassDecorator;
export declare function ClassErrorMiddleware(errorMiddleware: TErrorMiddleware | TErrorMiddleware[]): ClassDecorator;
export declare function addMiddlewareToMetadata(target: Object, metadataKey: any, middlewares: TMiddleware | TMiddleware[]): void;
export declare function addErrorMiddlewareToMetadata(target: Object, metadataKey: any, errorMiddlewares: TErrorMiddleware | TErrorMiddleware[]): void;
//# sourceMappingURL=middleware.d.ts.map

@@ -1,99 +0,72 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/decorators/middleware.ts
var middleware_exports = {};
__export(middleware_exports, {
ClassErrorMiddleware: () => ClassErrorMiddleware,
ClassMiddleware: () => ClassMiddleware,
ErrorMiddleware: () => ErrorMiddleware,
Middleware: () => Middleware,
addErrorMiddlewareToMetadata: () => addErrorMiddlewareToMetadata,
addMiddlewareToMetadata: () => addMiddlewareToMetadata
});
module.exports = __toCommonJS(middleware_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/middleware.ts
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addErrorMiddlewareToMetadata = exports.addMiddlewareToMetadata = exports.ClassErrorMiddleware = exports.ClassMiddleware = exports.ErrorMiddleware = exports.Middleware = void 0;
require("reflect-metadata");
const types_1 = require("./types");
function Middleware(middleware) {
return (target, propertyKey) => {
addMiddlewareToMetadata(target, propertyKey, middleware);
};
return (target, propertyKey) => {
addMiddlewareToMetadata(target, propertyKey, middleware);
};
}
exports.Middleware = Middleware;
// tslint:disable-next-line:max-line-length
function ErrorMiddleware(errorMiddleware) {
return (target, propertyKey) => {
addErrorMiddlewareToMetadata(target, propertyKey, errorMiddleware);
};
return (target, propertyKey) => {
addErrorMiddlewareToMetadata(target, propertyKey, errorMiddleware);
};
}
exports.ErrorMiddleware = ErrorMiddleware;
function ClassMiddleware(middleware) {
return (target) => {
addMiddlewareToMetadata(target.prototype, classMetadataKey, middleware);
};
return (target) => {
addMiddlewareToMetadata(target.prototype, types_1.classMetadataKey, middleware);
};
}
exports.ClassMiddleware = ClassMiddleware;
function ClassErrorMiddleware(errorMiddleware) {
return (target) => {
addErrorMiddlewareToMetadata(target.prototype, classMetadataKey, errorMiddleware);
};
return (target) => {
addErrorMiddlewareToMetadata(target.prototype, types_1.classMetadataKey, errorMiddleware);
};
}
exports.ClassErrorMiddleware = ClassErrorMiddleware;
// tslint:disable-next-line:max-line-length
function addMiddlewareToMetadata(target, metadataKey, middlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.middlewares) {
metadata.middlewares = [];
}
let newArr;
if (middlewares instanceof Array) {
newArr = middlewares.slice();
} else {
newArr = [middlewares];
}
newArr.push(...metadata.middlewares);
metadata.middlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.middlewares) {
metadata.middlewares = [];
}
let newArr;
if (middlewares instanceof Array) {
newArr = middlewares.slice();
}
else {
newArr = [middlewares];
}
newArr.push(...metadata.middlewares);
metadata.middlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
exports.addMiddlewareToMetadata = addMiddlewareToMetadata;
// tslint:disable-next-line:max-line-length
function addErrorMiddlewareToMetadata(target, metadataKey, errorMiddlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.errorMiddlewares) {
metadata.errorMiddlewares = [];
}
let newArr;
if (errorMiddlewares instanceof Array) {
newArr = errorMiddlewares.slice();
} else {
newArr = [errorMiddlewares];
}
newArr.push(...metadata.errorMiddlewares);
metadata.errorMiddlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.errorMiddlewares) {
metadata.errorMiddlewares = [];
}
let newArr;
if (errorMiddlewares instanceof Array) {
newArr = errorMiddlewares.slice();
}
else {
newArr = [errorMiddlewares];
}
newArr.push(...metadata.errorMiddlewares);
metadata.errorMiddlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ClassErrorMiddleware,
ClassMiddleware,
ErrorMiddleware,
Middleware,
addErrorMiddlewareToMetadata,
addMiddlewareToMetadata
});
exports.addErrorMiddlewareToMetadata = addErrorMiddlewareToMetadata;

@@ -1,10 +0,9 @@

import { RequestHandler, ErrorRequestHandler, RouterOptions, IRouter } from 'express';
import { PathParams } from 'express-serve-static-core';
declare type Middleware = RequestHandler;
declare type ErrorMiddleware = ErrorRequestHandler;
declare type WrapperFunction = (methodOrProperty: any) => RequestHandler;
declare type Controller = any;
declare type RouterLib = (options?: RouterOptions) => IRouter;
interface IMethodMetadata {
import type { ErrorRequestHandler, IRouter, RequestHandler, RouterOptions } from 'express';
import type { PathParams } from 'express-serve-static-core';
export declare type Middleware = RequestHandler;
export declare type ErrorMiddleware = ErrorRequestHandler;
export declare type WrapperFunction = (methodOrProperty: any) => RequestHandler;
export declare type Controller = any;
export declare type RouterLib = (options?: RouterOptions) => IRouter;
export interface IMethodMetadata {
httpRoutes?: IHttpRoute[];

@@ -15,3 +14,3 @@ errorMiddlewares?: ErrorMiddleware[];

}
interface IClassMetadata {
export interface IClassMetadata {
basePath?: PathParams;

@@ -24,9 +23,9 @@ childControllers?: Controller[];

}
declare const classMetadataKey: unique symbol;
declare type HttpDecorator = HttpVerb | 'all';
interface IHttpRoute {
export declare const classMetadataKey: unique symbol;
export declare type HttpDecorator = HttpVerb | 'all';
export interface IHttpRoute {
httpDecorator: HttpDecorator;
path: string | RegExp;
}
declare enum HttpVerb {
export declare enum HttpVerb {
CHECKOUT = "checkout",

@@ -56,3 +55,2 @@ COPY = "copy",

}
export { Controller, ErrorMiddleware, HttpDecorator, HttpVerb, IClassMetadata, IHttpRoute, IMethodMetadata, Middleware, RouterLib, WrapperFunction, classMetadataKey };
//# sourceMappingURL=types.d.ts.map

@@ -1,57 +0,30 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/decorators/types.ts
var types_exports = {};
__export(types_exports, {
HttpVerb: () => HttpVerb,
classMetadataKey: () => classMetadataKey
});
module.exports = __toCommonJS(types_exports);
var classMetadataKey = Symbol("Class Metadata Key");
var HttpVerb = /* @__PURE__ */ ((HttpVerb2) => {
HttpVerb2["CHECKOUT"] = "checkout";
HttpVerb2["COPY"] = "copy";
HttpVerb2["DELETE"] = "delete";
HttpVerb2["GET"] = "get";
HttpVerb2["HEAD"] = "head";
HttpVerb2["LOCK"] = "lock";
HttpVerb2["MERGE"] = "merge";
HttpVerb2["MKACTIVITY"] = "mkactivity";
HttpVerb2["MKCOL"] = "mkcol";
HttpVerb2["MOVE"] = "move";
HttpVerb2["MSEARCH"] = "m-search";
HttpVerb2["NOTIFY"] = "notify";
HttpVerb2["OPTIONS"] = "options";
HttpVerb2["PATCH"] = "patch";
HttpVerb2["POST"] = "post";
HttpVerb2["PURGE"] = "purge";
HttpVerb2["PUT"] = "put";
HttpVerb2["REPORT"] = "report";
HttpVerb2["SEARCH"] = "search";
HttpVerb2["SUBSCRIBE"] = "subscribe";
HttpVerb2["TRACE"] = "trace";
HttpVerb2["UNLOCK"] = "unlock";
HttpVerb2["UNSUBSCRIBE"] = "unsubscribe";
return HttpVerb2;
})(HttpVerb || {});
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
HttpVerb,
classMetadataKey
});
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpVerb = exports.classMetadataKey = void 0;
exports.classMetadataKey = Symbol('Class Metadata Key');
var HttpVerb;
(function (HttpVerb) {
HttpVerb["CHECKOUT"] = "checkout";
HttpVerb["COPY"] = "copy";
HttpVerb["DELETE"] = "delete";
HttpVerb["GET"] = "get";
HttpVerb["HEAD"] = "head";
HttpVerb["LOCK"] = "lock";
HttpVerb["MERGE"] = "merge";
HttpVerb["MKACTIVITY"] = "mkactivity";
HttpVerb["MKCOL"] = "mkcol";
HttpVerb["MOVE"] = "move";
HttpVerb["MSEARCH"] = "m-search";
HttpVerb["NOTIFY"] = "notify";
HttpVerb["OPTIONS"] = "options";
HttpVerb["PATCH"] = "patch";
HttpVerb["POST"] = "post";
HttpVerb["PURGE"] = "purge";
HttpVerb["PUT"] = "put";
HttpVerb["REPORT"] = "report";
HttpVerb["SEARCH"] = "search";
HttpVerb["SUBSCRIBE"] = "subscribe";
HttpVerb["TRACE"] = "trace";
HttpVerb["UNLOCK"] = "unlock";
HttpVerb["UNSUBSCRIBE"] = "unsubscribe";
})(HttpVerb = exports.HttpVerb || (exports.HttpVerb = {}));

@@ -1,9 +0,6 @@

import { WrapperFunction } from './types.js';
import 'express';
import 'express-serve-static-core';
declare function Wrapper(wrapper: WrapperFunction): MethodDecorator & PropertyDecorator;
declare function ClassWrapper(wrapper: WrapperFunction): ClassDecorator;
declare function addWrapperToMetadata(target: Object, metadataKey: any, wrapper: WrapperFunction): void;
export { ClassWrapper, Wrapper, addWrapperToMetadata };
import 'reflect-metadata';
import type { WrapperFunction } from './types';
export declare function Wrapper(wrapper: WrapperFunction): MethodDecorator & PropertyDecorator;
export declare function ClassWrapper(wrapper: WrapperFunction): ClassDecorator;
export declare function addWrapperToMetadata(target: Object, metadataKey: any, wrapper: WrapperFunction): void;
//# sourceMappingURL=wrapper.d.ts.map

@@ -1,55 +0,26 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/decorators/wrapper.ts
var wrapper_exports = {};
__export(wrapper_exports, {
ClassWrapper: () => ClassWrapper,
Wrapper: () => Wrapper,
addWrapperToMetadata: () => addWrapperToMetadata
});
module.exports = __toCommonJS(wrapper_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/wrapper.ts
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.addWrapperToMetadata = exports.ClassWrapper = exports.Wrapper = void 0;
require("reflect-metadata");
const types_1 = require("./types");
function Wrapper(wrapper) {
return (target, propertyKey) => {
addWrapperToMetadata(target, propertyKey, wrapper);
};
return (target, propertyKey) => {
addWrapperToMetadata(target, propertyKey, wrapper);
};
}
exports.Wrapper = Wrapper;
function ClassWrapper(wrapper) {
return (target) => {
addWrapperToMetadata(target.prototype, classMetadataKey, wrapper);
};
return (target) => {
addWrapperToMetadata(target.prototype, types_1.classMetadataKey, wrapper);
};
}
exports.ClassWrapper = ClassWrapper;
function addWrapperToMetadata(target, metadataKey, wrapper) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.wrapper = wrapper;
Reflect.defineMetadata(metadataKey, metadata, target);
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.wrapper = wrapper;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
ClassWrapper,
Wrapper,
addWrapperToMetadata
});
exports.addWrapperToMetadata = addWrapperToMetadata;

@@ -1,8 +0,3 @@

export { ChildControllers, Children, ClassOptions, Controller, addBasePathToClassMetadata, addChildControllersToClassMetadata, addClassOptionsToClassMetadata } from './decorators/class.js';
export { All, Checkout, Copy, Delete, Get, Head, Lock, MSearch, Merge, Mkactivity, Mkcol, Move, Notify, Options, Patch, Post, Purge, Put, Report, Search, Subscribe, Trace, Unlock, Unsubscribe, addHttpVerbToMethodMetadata } from './decorators/method.js';
export { ClassErrorMiddleware, ClassMiddleware, ErrorMiddleware, Middleware, addErrorMiddlewareToMetadata, addMiddlewareToMetadata } from './decorators/middleware.js';
export { ClassWrapper, Wrapper, addWrapperToMetadata } from './decorators/wrapper.js';
export { Server } from './Server.js';
import 'express';
import './decorators/types.js';
import 'express-serve-static-core';
export * from './decorators';
export * from './Server';
//# sourceMappingURL=index.d.ts.map

@@ -1,485 +0,18 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
All: () => All,
Checkout: () => Checkout,
ChildControllers: () => ChildControllers,
Children: () => Children,
ClassErrorMiddleware: () => ClassErrorMiddleware,
ClassMiddleware: () => ClassMiddleware,
ClassOptions: () => ClassOptions,
ClassWrapper: () => ClassWrapper,
Controller: () => Controller,
Copy: () => Copy,
Delete: () => Delete,
ErrorMiddleware: () => ErrorMiddleware,
Get: () => Get,
Head: () => Head,
Lock: () => Lock,
MSearch: () => MSearch,
Merge: () => Merge,
Middleware: () => Middleware,
Mkactivity: () => Mkactivity,
Mkcol: () => Mkcol,
Move: () => Move,
Notify: () => Notify,
Options: () => Options,
Patch: () => Patch,
Post: () => Post,
Purge: () => Purge,
Put: () => Put,
Report: () => Report,
Search: () => Search,
Server: () => Server,
Subscribe: () => Subscribe,
Trace: () => Trace,
Unlock: () => Unlock,
Unsubscribe: () => Unsubscribe,
Wrapper: () => Wrapper,
addBasePathToClassMetadata: () => addBasePathToClassMetadata,
addChildControllersToClassMetadata: () => addChildControllersToClassMetadata,
addClassOptionsToClassMetadata: () => addClassOptionsToClassMetadata,
addErrorMiddlewareToMetadata: () => addErrorMiddlewareToMetadata,
addHttpVerbToMethodMetadata: () => addHttpVerbToMethodMetadata,
addMiddlewareToMetadata: () => addMiddlewareToMetadata,
addWrapperToMetadata: () => addWrapperToMetadata
});
module.exports = __toCommonJS(src_exports);
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/decorators/class.ts
function Controller(path) {
return (target) => {
addBasePathToClassMetadata(target.prototype, `/${path}`);
};
}
function ClassOptions(options) {
return (target) => {
addClassOptionsToClassMetadata(target.prototype, options);
};
}
function Children(children) {
console.log("Warning: @Children decorator is deprecated. Use ChildControllers instead.");
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
function ChildControllers(children) {
return (target) => {
addChildControllersToClassMetadata(target.prototype, children);
};
}
function addBasePathToClassMetadata(target, basePath) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.basePath = basePath;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
function addClassOptionsToClassMetadata(target, options) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.options = options;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
function addChildControllersToClassMetadata(target, childControllers) {
let metadata = Reflect.getOwnMetadata(classMetadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.childControllers) {
metadata.childControllers = [];
}
let newArr;
if (childControllers instanceof Array) {
newArr = childControllers.slice();
} else {
newArr = [childControllers];
}
newArr.push(...metadata.childControllers);
metadata.childControllers = newArr;
Reflect.defineMetadata(classMetadataKey, metadata, target);
}
// src/decorators/method.ts
function All(path) {
return helperForRoutes("all", path);
}
function Checkout(path) {
return helperForRoutes("checkout" /* CHECKOUT */, path);
}
function Copy(path) {
return helperForRoutes("copy" /* COPY */, path);
}
function Delete(path) {
return helperForRoutes("delete" /* DELETE */, path);
}
function Get(path) {
return helperForRoutes("get" /* GET */, path);
}
function Head(path) {
return helperForRoutes("head" /* HEAD */, path);
}
function Lock(path) {
return helperForRoutes("lock" /* LOCK */, path);
}
function Merge(path) {
return helperForRoutes("merge" /* MERGE */, path);
}
function Mkactivity(path) {
return helperForRoutes("mkactivity" /* MKACTIVITY */, path);
}
function Mkcol(path) {
return helperForRoutes("mkcol" /* MKCOL */, path);
}
function Move(path) {
return helperForRoutes("move" /* MOVE */, path);
}
function MSearch(path) {
return helperForRoutes("m-search" /* MSEARCH */, path);
}
function Notify(path) {
return helperForRoutes("notify" /* NOTIFY */, path);
}
function Options(path) {
return helperForRoutes("options" /* OPTIONS */, path);
}
function Patch(path) {
return helperForRoutes("patch" /* PATCH */, path);
}
function Post(path) {
return helperForRoutes("post" /* POST */, path);
}
function Purge(path) {
return helperForRoutes("purge" /* PURGE */, path);
}
function Put(path) {
return helperForRoutes("put" /* PUT */, path);
}
function Report(path) {
return helperForRoutes("report" /* REPORT */, path);
}
function Search(path) {
return helperForRoutes("search" /* SEARCH */, path);
}
function Subscribe(path) {
return helperForRoutes("subscribe" /* SUBSCRIBE */, path);
}
function Trace(path) {
return helperForRoutes("trace" /* TRACE */, path);
}
function Unlock(path) {
return helperForRoutes("unlock" /* UNLOCK */, path);
}
function Unsubscribe(path) {
return helperForRoutes("unsubscribe" /* UNSUBSCRIBE */, path);
}
function helperForRoutes(httpVerb, path) {
return (target, propertyKey) => {
let newPath;
if (path === void 0) {
newPath = "";
} else if (path instanceof RegExp) {
newPath = addForwardSlashToFrontOfRegex(path);
} else {
newPath = `/${path}`;
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
addHttpVerbToMethodMetadata(target, propertyKey, httpVerb, newPath);
};
}
function addForwardSlashToFrontOfRegex(regex) {
if (regex.toString().charAt(1) === "^") {
return RegExp(`/${regex.toString().slice(2).replace(/\/$/, "")}`);
} else {
return new RegExp(`/.*${regex.toString().slice(1).replace(/\/$/, "")}`);
}
}
function addHttpVerbToMethodMetadata(target, metadataKey, httpDecorator, path) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.httpRoutes) {
metadata.httpRoutes = [];
}
const newArr = [
{
httpDecorator,
path
}
];
newArr.push(...metadata.httpRoutes);
metadata.httpRoutes = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/decorators/middleware.ts
function Middleware(middleware) {
return (target, propertyKey) => {
addMiddlewareToMetadata(target, propertyKey, middleware);
};
}
function ErrorMiddleware(errorMiddleware) {
return (target, propertyKey) => {
addErrorMiddlewareToMetadata(target, propertyKey, errorMiddleware);
};
}
function ClassMiddleware(middleware) {
return (target) => {
addMiddlewareToMetadata(target.prototype, classMetadataKey, middleware);
};
}
function ClassErrorMiddleware(errorMiddleware) {
return (target) => {
addErrorMiddlewareToMetadata(target.prototype, classMetadataKey, errorMiddleware);
};
}
function addMiddlewareToMetadata(target, metadataKey, middlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.middlewares) {
metadata.middlewares = [];
}
let newArr;
if (middlewares instanceof Array) {
newArr = middlewares.slice();
} else {
newArr = [middlewares];
}
newArr.push(...metadata.middlewares);
metadata.middlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
function addErrorMiddlewareToMetadata(target, metadataKey, errorMiddlewares) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
if (!metadata.errorMiddlewares) {
metadata.errorMiddlewares = [];
}
let newArr;
if (errorMiddlewares instanceof Array) {
newArr = errorMiddlewares.slice();
} else {
newArr = [errorMiddlewares];
}
newArr.push(...metadata.errorMiddlewares);
metadata.errorMiddlewares = newArr;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/decorators/wrapper.ts
function Wrapper(wrapper) {
return (target, propertyKey) => {
addWrapperToMetadata(target, propertyKey, wrapper);
};
}
function ClassWrapper(wrapper) {
return (target) => {
addWrapperToMetadata(target.prototype, classMetadataKey, wrapper);
};
}
function addWrapperToMetadata(target, metadataKey, wrapper) {
let metadata = Reflect.getOwnMetadata(metadataKey, target);
if (!metadata) {
metadata = {};
}
metadata.wrapper = wrapper;
Reflect.defineMetadata(metadataKey, metadata, target);
}
// src/Server.ts
var import_reflect_metadata = require("reflect-metadata");
var _Server = class {
constructor(showLogs) {
this._showLogs = false;
const express = require("express");
this._app = express();
this._showLogs = showLogs || false;
}
get app() {
return this._app;
}
get showLogs() {
return this._showLogs;
}
set showLogs(showLogs) {
this._showLogs = showLogs;
}
addControllers(controllers, routerLib, globalMiddleware) {
controllers = Array.isArray(controllers) ? controllers : [controllers];
const { Router } = require("express");
const routerLibrary = routerLib || Router;
controllers.forEach((controller) => {
if (controller) {
const routerAndPath = this.getRouter(routerLibrary, controller);
if (routerAndPath) {
if (globalMiddleware) {
this.app.use(routerAndPath.basePath, globalMiddleware, routerAndPath.router);
} else {
this.app.use(routerAndPath.basePath, routerAndPath.router);
}
}
}
});
}
wrapErrorMiddleware(errorMiddleware, requestHandler) {
return (req, res, next) => {
try {
requestHandler(req, res, next);
} catch (error) {
errorMiddleware(error, req, res, next);
}
};
}
getRouter(routerLibrary, controller) {
const prototype = Object.getPrototypeOf(controller);
const classMetadata = Reflect.getOwnMetadata(classMetadataKey, prototype);
if (!classMetadata) {
return null;
}
const {
basePath,
childControllers: children,
errorMiddlewares: classErrorMiddleware,
middlewares: classMiddleware,
options,
wrapper: classWrapper
} = classMetadata;
if (!basePath) {
return null;
}
const router = routerLibrary(options);
if (this.showLogs) {
console.log(`${_Server.LOG_STR} "${controller.constructor.name}"`);
}
if (classMiddleware) {
router.use(classMiddleware);
}
let members = Object.getOwnPropertyNames(controller);
members = members.concat(Object.getOwnPropertyNames(prototype));
members.forEach((member) => {
const methodMetadata = Reflect.getOwnMetadata(member, prototype);
if (methodMetadata) {
const {
httpRoutes,
middlewares,
errorMiddlewares,
wrapper
} = methodMetadata;
let callBack = (...args) => {
return controller[member](...args);
};
if (classWrapper) {
callBack = classWrapper(callBack);
}
if (wrapper) {
callBack = wrapper(callBack);
}
if (errorMiddlewares) {
errorMiddlewares.forEach((errorMiddleware) => {
callBack = this.wrapErrorMiddleware(errorMiddleware, callBack);
});
}
if (httpRoutes) {
httpRoutes.forEach((route) => {
const { httpDecorator, path } = route;
if (middlewares) {
router[httpDecorator](path, middlewares, callBack);
} else {
router[httpDecorator](path, callBack);
}
});
}
}
});
if (children) {
children.forEach((child) => {
const childRouterAndPath = this.getRouter(routerLibrary, child);
if (childRouterAndPath) {
router.use(childRouterAndPath.basePath, childRouterAndPath.router);
}
});
}
if (classErrorMiddleware) {
router.use(classErrorMiddleware);
}
return {
basePath,
router
};
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var Server = _Server;
Server.LOG_STR = "Setting up controller:";
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
All,
Checkout,
ChildControllers,
Children,
ClassErrorMiddleware,
ClassMiddleware,
ClassOptions,
ClassWrapper,
Controller,
Copy,
Delete,
ErrorMiddleware,
Get,
Head,
Lock,
MSearch,
Merge,
Middleware,
Mkactivity,
Mkcol,
Move,
Notify,
Options,
Patch,
Post,
Purge,
Put,
Report,
Search,
Server,
Subscribe,
Trace,
Unlock,
Unsubscribe,
Wrapper,
addBasePathToClassMetadata,
addChildControllersToClassMetadata,
addClassOptionsToClassMetadata,
addErrorMiddlewareToMetadata,
addHttpVerbToMethodMetadata,
addMiddlewareToMetadata,
addWrapperToMetadata
});
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./decorators"), exports);
__exportStar(require("./Server"), exports);

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

import { Application, RequestHandler } from 'express';
import { Controller, RouterLib } from './decorators/types.js';
import 'express-serve-static-core';
declare class Server {
import 'reflect-metadata';
import type { Application, RequestHandler } from 'express';
import type { Controller, RouterLib } from './decorators/types';
export declare class Server {
private readonly _app;

@@ -32,3 +31,2 @@ private _showLogs;

}
export { Server };
//# sourceMappingURL=Server.d.ts.map

@@ -1,156 +0,141 @@

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/Server.ts
var Server_exports = {};
__export(Server_exports, {
Server: () => Server
});
module.exports = __toCommonJS(Server_exports);
var import_reflect_metadata = require("reflect-metadata");
// src/decorators/types.ts
var classMetadataKey = Symbol("Class Metadata Key");
// src/Server.ts
var _Server = class {
constructor(showLogs) {
this._showLogs = false;
const express = require("express");
this._app = express();
this._showLogs = showLogs || false;
}
get app() {
return this._app;
}
get showLogs() {
return this._showLogs;
}
set showLogs(showLogs) {
this._showLogs = showLogs;
}
addControllers(controllers, routerLib, globalMiddleware) {
controllers = Array.isArray(controllers) ? controllers : [controllers];
const { Router } = require("express");
const routerLibrary = routerLib || Router;
controllers.forEach((controller) => {
if (controller) {
const routerAndPath = this.getRouter(routerLibrary, controller);
if (routerAndPath) {
if (globalMiddleware) {
this.app.use(routerAndPath.basePath, globalMiddleware, routerAndPath.router);
} else {
this.app.use(routerAndPath.basePath, routerAndPath.router);
}
}
}
});
}
wrapErrorMiddleware(errorMiddleware, requestHandler) {
return (req, res, next) => {
try {
requestHandler(req, res, next);
} catch (error) {
errorMiddleware(error, req, res, next);
}
};
}
getRouter(routerLibrary, controller) {
const prototype = Object.getPrototypeOf(controller);
const classMetadata = Reflect.getOwnMetadata(classMetadataKey, prototype);
if (!classMetadata) {
return null;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Server = void 0;
require("reflect-metadata");
const types_1 = require("./decorators/types");
class Server {
constructor(showLogs) {
this._showLogs = false;
const express = require('express'); // eslint-disable-line @typescript-eslint/no-var-requires
this._app = express();
this._showLogs = showLogs || false;
}
const {
basePath,
childControllers: children,
errorMiddlewares: classErrorMiddleware,
middlewares: classMiddleware,
options,
wrapper: classWrapper
} = classMetadata;
if (!basePath) {
return null;
get app() {
return this._app;
}
const router = routerLibrary(options);
if (this.showLogs) {
console.log(`${_Server.LOG_STR} "${controller.constructor.name}"`);
get showLogs() {
return this._showLogs;
}
if (classMiddleware) {
router.use(classMiddleware);
set showLogs(showLogs) {
this._showLogs = showLogs;
}
let members = Object.getOwnPropertyNames(controller);
members = members.concat(Object.getOwnPropertyNames(prototype));
members.forEach((member) => {
const methodMetadata = Reflect.getOwnMetadata(member, prototype);
if (methodMetadata) {
const {
httpRoutes,
middlewares,
errorMiddlewares,
wrapper
} = methodMetadata;
let callBack = (...args) => {
return controller[member](...args);
/**
* If controllers === undefined, search the './controllers' directory. If it is a string,
* search that directory instead. If it is an instance-object or array instance-objects,
* don't pull in the controllers automatically.
*
* @param controllers
* @param routerLib
* @param globalMiddleware
*/
addControllers(controllers, routerLib, globalMiddleware) {
controllers = Array.isArray(controllers) ? controllers : [controllers];
const { Router } = require('express'); // eslint-disable-line @typescript-eslint/no-var-requires
const routerLibrary = routerLib || Router;
controllers.forEach((controller) => {
if (controller) {
const routerAndPath = this.getRouter(routerLibrary, controller);
if (routerAndPath) {
if (globalMiddleware) {
this.app.use(routerAndPath.basePath, globalMiddleware, routerAndPath.router);
}
else {
this.app.use(routerAndPath.basePath, routerAndPath.router);
}
}
}
});
}
wrapErrorMiddleware(errorMiddleware, requestHandler) {
return (req, res, next) => {
try {
requestHandler(req, res, next);
}
catch (error) {
errorMiddleware(error, req, res, next);
}
};
if (classWrapper) {
callBack = classWrapper(callBack);
}
/**
* Get a single router object for each controller. Router object extracts
* metadata for each class method and each property which is an array function.
* @param routerLibrary
* @param controller
*/
getRouter(routerLibrary, controller) {
const prototype = Object.getPrototypeOf(controller);
const classMetadata = Reflect.getOwnMetadata(types_1.classMetadataKey, prototype);
// If this object does not have any metadata, stop now
if (!classMetadata) {
return null;
}
if (wrapper) {
callBack = wrapper(callBack);
const { basePath, childControllers: children, errorMiddlewares: classErrorMiddleware, middlewares: classMiddleware, options, wrapper: classWrapper, } = classMetadata;
// If this basePath is undefined, stop now
if (!basePath) {
return null;
}
if (errorMiddlewares) {
errorMiddlewares.forEach((errorMiddleware) => {
callBack = this.wrapErrorMiddleware(errorMiddleware, callBack);
});
// Set options
const router = routerLibrary(options);
// Show logs
if (this.showLogs) {
console.log(`${Server.LOG_STR} "${controller.constructor.name}"`); // eslint-disable-line no-console
}
if (httpRoutes) {
httpRoutes.forEach((route) => {
const { httpDecorator, path } = route;
if (middlewares) {
router[httpDecorator](path, middlewares, callBack);
} else {
router[httpDecorator](path, callBack);
// Get middleware
if (classMiddleware) {
router.use(classMiddleware);
}
// Add paths/functions to router-object
let members = Object.getOwnPropertyNames(controller);
members = members.concat(Object.getOwnPropertyNames(prototype));
members.forEach((member) => {
const methodMetadata = Reflect.getOwnMetadata(member, prototype);
if (methodMetadata) {
const { httpRoutes, middlewares, errorMiddlewares, wrapper, } = methodMetadata;
let callBack = (...args) => {
return controller[member](...args);
};
if (classWrapper) {
callBack = classWrapper(callBack);
}
if (wrapper) {
callBack = wrapper(callBack);
}
if (errorMiddlewares) {
errorMiddlewares.forEach((errorMiddleware) => {
callBack = this.wrapErrorMiddleware(errorMiddleware, callBack);
});
}
if (httpRoutes) {
httpRoutes.forEach((route) => {
const { httpDecorator, path } = route;
if (middlewares) {
router[httpDecorator](path, middlewares, callBack);
}
else {
router[httpDecorator](path, callBack);
}
});
}
}
});
});
// Recursively add child controllers
if (children) {
children.forEach((child) => {
const childRouterAndPath = this.getRouter(routerLibrary, child);
if (childRouterAndPath) {
router.use(childRouterAndPath.basePath, childRouterAndPath.router);
}
});
}
}
});
if (children) {
children.forEach((child) => {
const childRouterAndPath = this.getRouter(routerLibrary, child);
if (childRouterAndPath) {
router.use(childRouterAndPath.basePath, childRouterAndPath.router);
// Get error middleware
if (classErrorMiddleware) {
router.use(classErrorMiddleware);
}
});
return {
basePath,
router,
};
}
if (classErrorMiddleware) {
router.use(classErrorMiddleware);
}
return {
basePath,
router
};
}
};
var Server = _Server;
Server.LOG_STR = "Setting up controller:";
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Server
});
}
exports.Server = Server;
Server.LOG_STR = 'Setting up controller:';
{
"name": "@hyperstackjs/hypernight",
"version": "1.0.33",
"version": "1.0.34",
"description": "An updated and tweaked fork of @overnight/core to be used in hyperstack",

@@ -45,4 +45,4 @@ "author": "Sean Maxwell & Hyperstackjs Authors",

"clean": "rimraf dist",
"build": "pnpm clean && tsup-node src/* --dts"
"build": "pnpm clean && tsc"
}
}