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

@zenweb/controller

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@zenweb/controller - npm Package Compare versions

Comparing version
6.0.0
to
6.1.0
+1
-3
dist/index.js

@@ -22,6 +22,4 @@ import { ControllerRegister } from './register.js';

}
setup.after(() => {
controllerRegister.addToRouter(setup.core.router);
});
controllerRegister.addToRouter(setup.core.router);
};
}
import { Router } from '@zenweb/router';
import { ControllerClass, ControllerItem } from './types.js';
/**
* 取得控制器路由对象
* 注册控制器路由
*/
export declare function getControllerRouter({ option, mappingList, target }: ControllerItem): Router;
export declare function registerControllerRouter(router: Router, { option, mappingList, target }: ControllerItem): Router;
/**

@@ -8,0 +8,0 @@ * 控制器注册器

@@ -7,45 +7,36 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {

};
/// <reference types="@zenweb/result" />
import { component } from '@zenweb/inject';
import { Router } from '@zenweb/router';
import { controllerDecorator, mappingDecorator } from './controller.js';
import { debug } from './utils.js';
/**
* 取得控制器路由对象
* 注册控制器路由
*/
export function getControllerRouter({ option, mappingList, target }) {
export function registerControllerRouter(router, { option, mappingList, target }) {
debug('@controller(%o) %o', option, target);
const router = new Router(option);
if (option.middleware) {
if (Array.isArray(option.middleware)) {
if (option.middleware.length) {
router.use(...option.middleware);
}
}
else {
router.use(option.middleware);
}
}
const controllerMiddlewares = option.middleware ? (Array.isArray(option.middleware) ? option.middleware : [option.middleware]) : [];
for (const item of mappingList) {
debug('@mapping(%o)', item);
const mappingMiddlewares = [
...item.middleware,
async (ctx) => {
const controller = await ctx.injector.getInstance(target);
const data = await ctx.injector.apply(controller, item);
if (typeof data !== 'undefined') {
if (ctx.success) {
await ctx.success(data);
router.register({
prefix: option.prefix,
path: item.path,
method: item.methods,
middleware: [
...controllerMiddlewares,
...item.middleware,
async (ctx, next) => {
const controller = await ctx.injector.getInstance(target);
const data = await ctx.injector.apply(controller, item);
if (typeof data !== 'undefined') {
if (ctx.success) {
await ctx.success(data);
}
else {
ctx.body = data;
}
}
else {
ctx.body = data;
}
}
},
];
if (item.methods.includes('ALL')) {
router.all(item.path, ...mappingMiddlewares);
}
else {
router.register(item.path, item.methods, ...mappingMiddlewares);
}
return next();
},
],
});
}

@@ -114,3 +105,3 @@ return router;

for (const item of this.controllers) {
router.add(getControllerRouter(item));
registerControllerRouter(router, item);
}

@@ -117,0 +108,0 @@ }

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

import { RouterOptions } from '@zenweb/router';
import { Middleware } from '@zenweb/core';

@@ -22,3 +21,10 @@ import { RouterMethod, RouterPath } from '@zenweb/router';

*/
export interface ControllerOption extends RouterOptions {
export interface ControllerOption {
/**
* 在控制器中的每个 \@mapping path 上添加前缀
*/
prefix?: string;
/**
* 在控制器中的每个 \@mapping 上添加前置中间件
*/
middleware?: Middleware | Middleware[];

@@ -25,0 +31,0 @@ }

{
"name": "@zenweb/controller",
"type": "module",
"version": "6.0.0",
"version": "6.1.0",
"description": "Zenweb Controller module",

@@ -43,3 +43,3 @@ "exports": "./dist/index.js",

"@zenweb/result": "^5.0.0",
"@zenweb/router": "^6.0.3",
"@zenweb/router": "^6.3.0",
"decorator-make": "^1.5.0",

@@ -46,0 +46,0 @@ "globby": "11.0.4"