Socket
Socket
Sign inDemoInstall

@bunt/app

Package Overview
Dependencies
Maintainers
1
Versions
123
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bunt/app - npm Package Compare versions

Comparing version 0.18.3 to 0.19.0

11

CHANGELOG.md

@@ -6,2 +6,13 @@ # Change Log

# [0.19.0](https://github.com/izatop/bunt/compare/v0.18.3...v0.19.0) (2021-05-26)
### Features
* update unit types ([6a7124c](https://github.com/izatop/bunt/commit/6a7124cb8074892a0d4ce4e86d551d34289b42ee))
## [0.18.3](https://github.com/izatop/bunt/compare/v0.18.2...v0.18.3) (2021-05-25)

@@ -8,0 +19,0 @@

21

dist/Application.d.ts

@@ -1,17 +0,16 @@

import { ApplyContext, Context, ContextArg, IContext, Unit } from "@bunt/unit";
import { ActionAny, ApplyContext, Context, ContextArg, Unit } from "@bunt/unit";
import { Logger } from "@bunt/util";
import { ActionResponse, IRequest, MatchRoute } from "./interfaces";
import { ActionResponse, IRequest } from "./interfaces";
import { IRoute } from "./Route";
export declare class Application<C extends IContext> {
export declare class Application<C extends Context> {
#private;
protected logger: Logger;
protected readonly unit: Unit<C>;
protected readonly route: IRoute[];
constructor(u: Unit<C>, routes?: MatchRoute<C, IRoute>[]);
get context(): C;
constructor(u: Unit<C>, routes?: IRoute<ActionAny<C>>[]);
get context(): ApplyContext<C>;
get size(): number;
static factory<C extends Context>(context: ContextArg<C>, routes?: MatchRoute<C, IRoute>[]): Promise<Application<ApplyContext<C>>>;
add<R extends IRoute>(route: MatchRoute<C, R>): this;
remove<R extends IRoute>(route: MatchRoute<C, R>): this;
static factory<C extends Context>(context: ContextArg<C>, routes?: IRoute<ActionAny<C>>[]): Promise<Application<C>>;
add(route: IRoute<ActionAny<C>>): this;
remove(route: IRoute<ActionAny<C>>): this;
run(request: IRequest): Promise<ActionResponse>;
getRoutes(): IRoute[];
getRoutes(): IRoute<ActionAny<C>>[];
}

@@ -8,2 +8,16 @@ "use strict";

};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to set private field on non-instance");
}
privateMap.set(receiver, value);
return value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to get private field on non-instance");
}
return privateMap.get(receiver);
};
var _unit, _routes;
Object.defineProperty(exports, "__esModule", { value: true });

@@ -16,4 +30,5 @@ exports.Application = void 0;

constructor(u, routes = []) {
this.route = [];
this.unit = u;
_unit.set(this, void 0);
_routes.set(this, []);
__classPrivateFieldSet(this, _unit, u);
if (routes.length > 0) {

@@ -24,6 +39,6 @@ routes.forEach((route) => this.add(route));

get context() {
return this.unit.context;
return __classPrivateFieldGet(this, _unit).context;
}
get size() {
return this.route.length;
return __classPrivateFieldGet(this, _routes).length;
}

@@ -35,13 +50,13 @@ static async factory(context, routes = []) {

this.logger.debug("add", route);
util_1.assert(!this.unit.has(route.action), `This route was already added`);
this.unit.add(route.action);
this.route.push(route);
util_1.assert(!__classPrivateFieldGet(this, _unit).has(route.action), `This route was already added`);
__classPrivateFieldGet(this, _unit).add(route.action);
__classPrivateFieldGet(this, _routes).push(route);
return this;
}
remove(route) {
if (this.unit.has(route.action)) {
if (__classPrivateFieldGet(this, _unit).has(route.action)) {
this.logger.debug("remove", route);
this.unit.remove(route.action);
const index = this.route.findIndex((item) => item === route);
this.route.splice(index, index + 1);
__classPrivateFieldGet(this, _unit).remove(route.action);
const index = __classPrivateFieldGet(this, _routes).findIndex((item) => item === route);
__classPrivateFieldGet(this, _routes).splice(index, index + 1);
}

@@ -51,6 +66,6 @@ return this;

async run(request) {
const route = this.route.find((route) => route.test(request.route));
const route = __classPrivateFieldGet(this, _routes).find((route) => route.test(request.route));
util_1.assert(route, () => new Route_1.RouteNotFound(request.route));
this.logger.debug("match", route);
const unit = this.unit;
const unit = __classPrivateFieldGet(this, _unit);
const state = {};

@@ -70,5 +85,6 @@ const matches = route.match(request.route);

getRoutes() {
return this.route;
return __classPrivateFieldGet(this, _routes);
}
}
_unit = new WeakMap(), _routes = new WeakMap();
__decorate([

@@ -75,0 +91,0 @@ util_1.logger

/// <reference types="node" />
import { Action, Context, MatchContext } from "@bunt/unit";
import { Promisify } from "@bunt/util";
import { Application } from "./Application";
import { IRoute } from "./Route";
export declare type ActionResponse = Error | {
stringify(): string;
} | NodeJS.ReadableStream | Buffer | string | number | boolean | null | undefined | void | any;
export declare type RouteAction = Action<any, any>;
export declare type MatchRoute<C extends Context, R> = R extends IRoute<infer A> ? A extends Action<infer AC, any, ActionResponse> ? MatchContext<C, AC> extends AC ? R : ["Action context doesn't match its parent context", C, AC] : ["Action doesn't satisfy its interface", A] : never;
export interface IKeyValueMap {

@@ -12,0 +8,0 @@ has(name: string): boolean;

@@ -1,9 +0,8 @@

import { ActionContext, ActionState } from "@bunt/unit";
import { RouteAction } from "../interfaces";
import { ActionAny, ActionState } from "@bunt/unit";
import { IRouteContext } from "../Route";
export declare type ResolverFn<A extends RouteAction> = (context: IRouteContext<ActionContext<A>>) => ActionState<A> | unknown;
export declare type ResolverType<A extends RouteAction> = ActionState<A> | ResolverFn<A>;
export declare type ResolverList<A extends RouteAction> = {
export declare type ResolverFn<A extends ActionAny> = (context: IRouteContext<A>) => ActionState<A> | unknown;
export declare type ResolverType<A extends ActionAny> = ActionState<A> | ResolverFn<A>;
export declare type ResolverList<A extends ActionAny> = {
[K in keyof ActionState<A>]-?: ResolverType<A>;
};
export declare type ResolverResolvers<A extends RouteAction> = ResolverFn<A> | ResolverList<A>;
export declare type ResolverResolvers<A extends ActionAny> = ResolverFn<A> | ResolverList<A>;
import { FieldSelectType } from "@bunt/input";
import { ActionContext, ActionState } from "@bunt/unit";
import { RouteAction } from "../interfaces";
import { ActionAny, ActionState } from "@bunt/unit";
import { IRouteContext } from "../Route";
import { Resolver } from "./Resolver";
export declare class Payload<A extends RouteAction> {
export declare class Payload<A extends ActionAny> {
readonly resolver: Resolver<A>;
readonly type: FieldSelectType<ActionState<A>>;
constructor(type: FieldSelectType<ActionState<A>>, resolver: Resolver<A>);
validate(context: IRouteContext<ActionContext<A>>): Promise<ActionState<A>>;
validate(context: IRouteContext<A>): Promise<ActionState<A>>;
}

@@ -1,9 +0,8 @@

import { ActionContext, ActionState } from "@bunt/unit";
import { RouteAction } from "../interfaces";
import { ActionAny, ActionState } from "@bunt/unit";
import { IRouteContext } from "../Route";
import { ResolverResolvers } from "./interfaces";
export declare class Resolver<A extends RouteAction> {
export declare class Resolver<A extends ActionAny> {
readonly resolvers: ResolverResolvers<A>;
constructor(resolvers: ResolverResolvers<A>);
resolve(context: IRouteContext<ActionContext<A>>): Promise<ActionState<A>>;
resolve(context: IRouteContext<A>): Promise<ActionState<A>>;
}

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

import { Action, ActionCtor, IContext } from "@bunt/unit";
import { IRequest, RouteAction } from "../interfaces";
import { ActionAny, ActionContext, ActionCtor, ApplyContext } from "@bunt/unit";
import { Ctor } from "@bunt/util";
import { IRequest } from "../interfaces";
import { Payload } from "../Payload";
import { Route } from "./Route";
import { RouteRule } from "./RouteRule";
export interface IRoute<A extends RouteAction = RouteAction> {
export interface IRoute<A extends ActionAny> {
readonly route: string;
readonly action: ActionCtor<A>;
readonly action: ActionCtor<any>;
readonly payload?: Payload<A>;

@@ -14,7 +15,7 @@ test(route: string): boolean;

export declare type RouteMatcherFactory = IRouteMatcher | ((route: string) => IRouteMatcher);
export declare type RouteRuleArg<A extends Action<any, any>> = A extends Action<any, infer S> ? S extends null ? string : RouteRule<A> : string;
export declare type RouteFactory = <A extends RouteAction>(action: ActionCtor<A>, rule: RouteRuleArg<A>) => Route<A>;
export interface IRouteContext<C extends IContext> {
context: C;
export declare type RouteRuleArg<A extends ActionAny> = A extends ActionAny<any, infer S> ? S extends null ? string : RouteRule<A> : string;
export declare type RouteFactory = <A extends ActionAny>(action: Ctor<A>, rule: RouteRuleArg<A>) => Route<A>;
export interface IRouteContext<A extends ActionAny> {
request: IRequest;
context: ApplyContext<ActionContext<A>>;
args: Map<string, string>;

@@ -21,0 +22,0 @@ }

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

import { ActionCtor } from "@bunt/unit";
import { ILogable } from "@bunt/util";
import { RouteAction } from "../interfaces";
import { ActionAny } from "@bunt/unit";
import { Ctor, ILogable } from "@bunt/util";
import { Payload } from "../Payload";
import { IRoute, RouteFactory, RouteMatcherFactory, RouteRuleArg } from "./interfaces";
export declare class Route<A extends RouteAction = RouteAction> implements IRoute<A>, ILogable<{
export declare class Route<A extends ActionAny> implements IRoute<A>, ILogable<{
route: string;

@@ -11,5 +10,5 @@ }> {

readonly route: string;
readonly action: ActionCtor<A>;
readonly action: Ctor<A>;
readonly payload?: Payload<A>;
constructor(matcher: RouteMatcherFactory, action: ActionCtor<A>, rule: RouteRuleArg<A>);
constructor(matcher: RouteMatcherFactory, action: Ctor<A>, rule: RouteRuleArg<A>);
static create(matcher: RouteMatcherFactory): RouteFactory;

@@ -16,0 +15,0 @@ getLogValue(): {

import { FieldSelectType } from "@bunt/input";
import { Action, ActionState } from "@bunt/unit";
import { ActionAny, ActionState } from "@bunt/unit";
import { Payload, Resolver } from "../Payload";
export declare class RouteRule<A extends Action<any, any>> extends Payload<A> {
export declare class RouteRule<A extends ActionAny> extends Payload<A> {
readonly route: string;
constructor(route: string, type: FieldSelectType<ActionState<A>>, resolver: Resolver<A>);
}
{
"name": "@bunt/app",
"version": "0.18.3",
"version": "0.19.0",
"keywords": [

@@ -29,9 +29,9 @@ "typescript"

"dependencies": {
"@bunt/input": "^0.18.2",
"@bunt/unit": "^0.18.3",
"@bunt/util": "^0.18.2",
"@bunt/input": "^0.19.0",
"@bunt/unit": "^0.19.0",
"@bunt/util": "^0.19.0",
"path-to-regexp": "^6.2.0"
},
"license": "MIT",
"gitHead": "55fa5286572395dbf967f7770a06cdeda179d7d9"
"gitHead": "8e62b6bb684e9b7cc47b50f0be41c04020e1f9e7"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc