Socket
Socket
Sign inDemoInstall

@aomex/core

Package Overview
Dependencies
Maintainers
0
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aomex/core - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

11

CHANGELOG.md

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

# [1.3.0](https://github.com/aomex/aomex/compare/v1.2.0...v1.3.0) (2024-06-28)
### Features
* **core:** 删除中间件链条概念 ([12f42e6](https://github.com/aomex/aomex/commit/12f42e6ba15f3118b98f5ff31832121b1b2b9896))
# [1.2.0](https://github.com/aomex/aomex/compare/v1.1.0...v1.2.0) (2024-06-27)

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

53

dist/index.d.ts

@@ -199,2 +199,3 @@ import { OpenAPIV3 } from 'openapi-types';

type Fn<Ctx = any> = (ctx: Ctx, next: Next) => any;
type CollectArrayType<T> = T extends Middleware<infer R> ? R : unknown;
}

@@ -243,52 +244,2 @@ /**

type MiddleWareToken<P extends object = object> = MiddlewareChain<P> | Middleware<P>;
interface MiddlewareChainPlatform {
}
declare namespace MiddlewareChain {
type Infer<T> = T extends MiddlewareChain<infer R> ? R : never;
}
declare abstract class MiddlewareChain<Props extends object = object> {
protected readonly middlewareList: Middleware[];
protected _: Props;
protected static autoIncrementID: number;
/**
* 注册链条
*/
static register(platform: keyof MiddlewareChainPlatform, SubClass: new (...args: any[]) => MiddlewareChain): void;
protected createPoint(): string;
/**
* 分割链条成两段,并返回后面那一段
*/
protected split(point?: string | string[]): this;
protected readonly SubClass: new (middlewareList?: Middleware[]) => MiddlewareChain;
protected points: Record<string, number>;
constructor(middlewareList?: Middleware[]);
/**
* 挂载中间件和链条,支持传入`null`
*/
protected mount<P extends object>(token: MiddleWareToken<P> | null): MiddlewareChain<Props & P>;
}
declare const mdchain: MiddlewareChainPlatform;
declare module './middleware-chain' {
interface MiddlewareChainPlatform {
/**
* 没有特定上下文的纯链条,支持所有应用
*/
readonly mixin: MixinMiddlewareChain;
}
}
type MixinMiddlewareToken<P extends object = object> = MixinMiddlewareChain<P> | MixinMiddleware<P>;
declare class MixinMiddlewareChain<Props extends object = object> extends MiddlewareChain<Props> {
protected _mixin_chain_: 'mixin-chain';
mount: {
<P extends object>(token: MixinMiddlewareToken<P> | null): MixinMiddlewareChain<Props & P>;
};
}
/**
* 拍平中间件和链条,并返回中间件列表
*/
declare const flattenMiddlewareToken: (tokens?: MiddleWareToken | null | Array<MiddleWareToken | null>) => Middleware[];
declare namespace magistrate {

@@ -1067,2 +1018,2 @@ type Result<T> = Ok<T> | Fail;

export { AnyValidator, ArrayValidator, BaseNumberValidator, BaseStringValidator, BigIntValidator, BooleanValidator, BufferValidator, type CombinedServices, type ComposeFn, DateTimeValidator, EmailValidator, EnumValidator, HashValidator, I18n, I18nMessage, IntValidator, IpValidator, type MiddleWareToken, Middleware, MiddlewareChain, type MiddlewareChainPlatform, type MiddlewarePlatform, MixinMiddleware, MixinMiddlewareChain, type MixinMiddlewareToken, type Next, NumberValidator, ObjectValidator, OneOfValidator, Rule, Service, StreamValidator, StringValidator, type TransformedValidator, UlidValidator, UrlValidator, UuidValidator, Validator, ValidatorError, type ValidatorToken, combineServices, compose, flattenMiddlewareToken, i18n, magistrate, mdchain, middleware, rule, toValidator, validate };
export { AnyValidator, ArrayValidator, BaseNumberValidator, BaseStringValidator, BigIntValidator, BooleanValidator, BufferValidator, type CombinedServices, type ComposeFn, DateTimeValidator, EmailValidator, EnumValidator, HashValidator, I18n, I18nMessage, IntValidator, IpValidator, Middleware, type MiddlewarePlatform, MixinMiddleware, type Next, NumberValidator, ObjectValidator, OneOfValidator, Rule, Service, StreamValidator, StringValidator, type TransformedValidator, UlidValidator, UrlValidator, UuidValidator, Validator, ValidatorError, type ValidatorToken, combineServices, compose, i18n, magistrate, middleware, rule, toValidator, validate };

@@ -279,68 +279,2 @@ // src/i18n/i18n-message.ts

// src/middleware/middleware-chain.ts
import { toArray } from "@aomex/internal-tools";
// src/middleware/flatten-middleware-token.ts
var flattenMiddlewareToken = (tokens) => {
if (Array.isArray(tokens)) {
return tokens.reduce(
(carry, item) => carry.concat(flattenMiddlewareToken(item)),
[]
);
}
return tokens == null ? [] : "middlewareList" in tokens ? tokens["middlewareList"].slice() : [tokens];
};
// src/middleware/middleware-chain.ts
var MiddlewareChain = class _MiddlewareChain {
constructor(middlewareList = []) {
this.middlewareList = middlewareList;
this.SubClass = new.target;
}
_;
static autoIncrementID = 0;
/**
* 注册链条
*/
static register(platform, SubClass) {
Object.defineProperty(mdchain, platform, {
get() {
return new SubClass();
}
});
}
createPoint() {
const point = "point_" + ++_MiddlewareChain.autoIncrementID;
this.points[point] = this.middlewareList.length;
return point;
}
/**
* 分割链条成两段,并返回后面那一段
*/
split(point = []) {
const longestLengthOfPoint = toArray(point).map((p) => this.points[p]).filter(Boolean).sort((a, b) => b - a)[0];
if (!longestLengthOfPoint) return this;
const middlewareList = this.middlewareList.slice(longestLengthOfPoint);
return new this.SubClass(middlewareList);
}
SubClass;
points = {};
/**
* 挂载中间件和链条,支持传入`null`
*/
mount(token) {
const chain = new this.SubClass(
this.middlewareList.concat(flattenMiddlewareToken(token))
);
chain.points = this.points;
return chain;
}
};
var mdchain = {};
// src/middleware/mixin-middleware-chain.ts
var MixinMiddlewareChain = class extends MiddlewareChain {
};
MiddlewareChain.register("mixin", MixinMiddlewareChain);
// src/validator/base/magistrate.ts

@@ -1434,3 +1368,3 @@ var magistrate = {

// src/validator/api/rule.ts
import { toArray as toArray2 } from "@aomex/internal-tools";
import { toArray } from "@aomex/internal-tools";
var Rule = class {

@@ -1480,3 +1414,3 @@ static register(name, SubValidator) {

enum(ranges) {
return new EnumValidator(toArray2(ranges, true));
return new EnumValidator(toArray(ranges, true));
}

@@ -1500,3 +1434,3 @@ hash(algorithm) {

ip(version) {
return new IpValidator(toArray2(version));
return new IpValidator(toArray(version));
}

@@ -1548,3 +1482,3 @@ /**

uuid(versions2) {
return new UuidValidator(toArray2(versions2));
return new UuidValidator(toArray(versions2));
}

@@ -1624,5 +1558,3 @@ };

Middleware,
MiddlewareChain,
MixinMiddleware,
MixinMiddlewareChain,
NumberValidator,

@@ -1643,6 +1575,4 @@ ObjectValidator,

compose,
flattenMiddlewareToken,
i18n,
magistrate,
mdchain,
middleware,

@@ -1649,0 +1579,0 @@ rule,

{
"name": "@aomex/core",
"version": "1.2.0",
"version": "1.3.0",
"description": "aomex核心库",

@@ -39,5 +39,5 @@ "type": "module",

"openapi-types": "^12.1.3",
"@aomex/internal-tools": "^1.1.0"
"@aomex/internal-tools": "^1.3.0"
},
"scripts": {}
}

@@ -18,12 +18,2 @@ # @aomex/core

## middleware-chain
中间件组,上层应用可扩展
```typescript
import { mdchain } from '@aomex/core';
export const box = mdchain.mixin.mount(md);
```
## validator

@@ -30,0 +20,0 @@

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