Commit 8a4b3444 authored by nanahira's avatar nanahira

adapt

parent e8576e22
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.1", "eslint-plugin-prettier": "^3.4.1",
"express": "^4.17.1", "express": "^4.17.1",
"koishi": "^4.0.0-alpha.12", "koishi": "^4.0.0-beta.0",
"prettier": "^2.4.1", "prettier": "^2.4.1",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"rxjs": "^7.4.0", "rxjs": "^7.4.0",
...@@ -219,12 +219,12 @@ ...@@ -219,12 +219,12 @@
"dev": true "dev": true
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.0.0-alpha.11", "version": "4.0.0-beta.0",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-alpha.11.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-beta.0.tgz",
"integrity": "sha512-nN9NJi83/vcfX0w20C1CulBMImhAgrts7YwYPivHDKORq7zq+c76fVPVx5IoTsmavqGpaQ75hHDlua70ZOl7BA==", "integrity": "sha512-G40ePYqygU5BUxW62CuqrHF9cK8qfX3Vjcc0k4r92rnGAN6qyxhQY8LMx7ZMBpZmk91x0J+FY7C6KuSIu7smJQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^5.0.0-alpha.7", "@koishijs/utils": "^5.0.0-beta.0",
"fastest-levenshtein": "^1.0.12" "fastest-levenshtein": "^1.0.12"
}, },
"engines": { "engines": {
...@@ -232,21 +232,21 @@ ...@@ -232,21 +232,21 @@
} }
}, },
"node_modules/@koishijs/plugin-cache-lru": { "node_modules/@koishijs/plugin-cache-lru": {
"version": "1.0.0-alpha.2", "version": "1.0.0-beta.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-cache-lru/-/plugin-cache-lru-1.0.0-alpha.2.tgz", "resolved": "https://registry.npmjs.org/@koishijs/plugin-cache-lru/-/plugin-cache-lru-1.0.0-beta.0.tgz",
"integrity": "sha512-OthEMPDLEvFeJ7KPj8Wv/FlZUzAhDUMxb8rSZhZdLlLfSavK7q0HcjiTxCdLgmv7Er7Qg5Zb14YFH6ym9XIe3Q==", "integrity": "sha512-YhsF2FeBs8/LhGy3VO9pe5JkLAXJ6O40fyoppqLbM99B5ywUavJ4UG/0WidiyQrYZQoz0oB0YWFKEt/Xkn/e/g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.0.0-alpha.12" "koishi": "^4.0.0-beta.0"
} }
}, },
"node_modules/@koishijs/utils": { "node_modules/@koishijs/utils": {
"version": "5.0.0-alpha.7", "version": "5.0.0-beta.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-5.0.0-alpha.7.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-5.0.0-beta.0.tgz",
"integrity": "sha512-+1kwdQVq5raRZT/5vgWtBPj1PidtDHXmvP2ksIFikW7qSquddpgopQN4l0IfbjJGOz+Bb8oYGcyqLjQf+FpQRQ==", "integrity": "sha512-/FsfumbtI1rMRqZ2djzAgdVGFg3KFrF6ATvqhgsDf3y3EMWY7bs/y9VkpNNMPf+wk//+kBSALk5+xp7XcszqNQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"supports-color": "^8.1.0" "supports-color": "^8.1.0"
...@@ -2532,15 +2532,15 @@ ...@@ -2532,15 +2532,15 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.0.0-alpha.12", "version": "4.0.0-beta.0",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-alpha.12.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-beta.0.tgz",
"integrity": "sha512-MT2avgFNrjScgAZhTVbmxZHQ38y6Vs3ibJ2nDuopfl04D9+GTRSoeUiBIxJXOFjauUkLGpJRaSrlX8uOatHFOA==", "integrity": "sha512-WtQ2oMREo/ZJKDceSDhz4X15EHJM9O9yXzDZaihchdRJUa95xkt5rVN1RwtRlLdBcahLbZdHyfgmArEuyR8kUw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@koishijs/core": "^4.0.0-alpha.11", "@koishijs/core": "^4.0.0-beta.0",
"@koishijs/plugin-cache-lru": "^1.0.0-alpha.2", "@koishijs/plugin-cache-lru": "^1.0.0-beta.0",
"@koishijs/utils": "^5.0.0-alpha.7", "@koishijs/utils": "^5.0.0-beta.0",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^7.4.7", "@types/ws": "^7.4.7",
...@@ -3933,28 +3933,28 @@ ...@@ -3933,28 +3933,28 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.0.0-alpha.11", "version": "4.0.0-beta.0",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-alpha.11.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-beta.0.tgz",
"integrity": "sha512-nN9NJi83/vcfX0w20C1CulBMImhAgrts7YwYPivHDKORq7zq+c76fVPVx5IoTsmavqGpaQ75hHDlua70ZOl7BA==", "integrity": "sha512-G40ePYqygU5BUxW62CuqrHF9cK8qfX3Vjcc0k4r92rnGAN6qyxhQY8LMx7ZMBpZmk91x0J+FY7C6KuSIu7smJQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@koishijs/utils": "^5.0.0-alpha.7", "@koishijs/utils": "^5.0.0-beta.0",
"fastest-levenshtein": "^1.0.12" "fastest-levenshtein": "^1.0.12"
} }
}, },
"@koishijs/plugin-cache-lru": { "@koishijs/plugin-cache-lru": {
"version": "1.0.0-alpha.2", "version": "1.0.0-beta.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-cache-lru/-/plugin-cache-lru-1.0.0-alpha.2.tgz", "resolved": "https://registry.npmjs.org/@koishijs/plugin-cache-lru/-/plugin-cache-lru-1.0.0-beta.0.tgz",
"integrity": "sha512-OthEMPDLEvFeJ7KPj8Wv/FlZUzAhDUMxb8rSZhZdLlLfSavK7q0HcjiTxCdLgmv7Er7Qg5Zb14YFH6ym9XIe3Q==", "integrity": "sha512-YhsF2FeBs8/LhGy3VO9pe5JkLAXJ6O40fyoppqLbM99B5ywUavJ4UG/0WidiyQrYZQoz0oB0YWFKEt/Xkn/e/g==",
"dev": true, "dev": true,
"requires": { "requires": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
} }
}, },
"@koishijs/utils": { "@koishijs/utils": {
"version": "5.0.0-alpha.7", "version": "5.0.0-beta.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-5.0.0-alpha.7.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-5.0.0-beta.0.tgz",
"integrity": "sha512-+1kwdQVq5raRZT/5vgWtBPj1PidtDHXmvP2ksIFikW7qSquddpgopQN4l0IfbjJGOz+Bb8oYGcyqLjQf+FpQRQ==", "integrity": "sha512-/FsfumbtI1rMRqZ2djzAgdVGFg3KFrF6ATvqhgsDf3y3EMWY7bs/y9VkpNNMPf+wk//+kBSALk5+xp7XcszqNQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"supports-color": "^8.1.0" "supports-color": "^8.1.0"
...@@ -5687,15 +5687,15 @@ ...@@ -5687,15 +5687,15 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.0.0-alpha.12", "version": "4.0.0-beta.0",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-alpha.12.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-beta.0.tgz",
"integrity": "sha512-MT2avgFNrjScgAZhTVbmxZHQ38y6Vs3ibJ2nDuopfl04D9+GTRSoeUiBIxJXOFjauUkLGpJRaSrlX8uOatHFOA==", "integrity": "sha512-WtQ2oMREo/ZJKDceSDhz4X15EHJM9O9yXzDZaihchdRJUa95xkt5rVN1RwtRlLdBcahLbZdHyfgmArEuyR8kUw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@koishijs/core": "^4.0.0-alpha.11", "@koishijs/core": "^4.0.0-beta.0",
"@koishijs/plugin-cache-lru": "^1.0.0-alpha.2", "@koishijs/plugin-cache-lru": "^1.0.0-beta.0",
"@koishijs/utils": "^5.0.0-alpha.7", "@koishijs/utils": "^5.0.0-beta.0",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^7.4.7", "@types/ws": "^7.4.7",
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
"peerDependencies": { "peerDependencies": {
"@nestjs/common": "^8.0.0", "@nestjs/common": "^8.0.0",
"@nestjs/core": "^8.0.0", "@nestjs/core": "^8.0.0",
"koishi": "^4.0.0-alpha.12", "koishi": "^4.0.0-beta.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"rxjs": "^7.4.0" "rxjs": "^7.4.0"
}, },
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^3.4.1", "eslint-plugin-prettier": "^3.4.1",
"express": "^4.17.1", "express": "^4.17.1",
"koishi": "^4.0.0-alpha.12", "koishi": "^4.0.0-beta.0",
"prettier": "^2.4.1", "prettier": "^2.4.1",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"rxjs": "^7.4.0", "rxjs": "^7.4.0",
......
...@@ -23,7 +23,8 @@ import { Filter, ReplacedContext } from './utility/replaced-context'; ...@@ -23,7 +23,8 @@ import { Filter, ReplacedContext } from './utility/replaced-context';
@Injectable() @Injectable()
export class KoishiService export class KoishiService
extends App extends App
implements OnModuleInit, OnApplicationBootstrap, OnModuleDestroy { implements OnModuleInit, OnApplicationBootstrap, OnModuleDestroy
{
private readonly globalInterceptors: KoishiCommandInterceptorRegistration[]; private readonly globalInterceptors: KoishiCommandInterceptorRegistration[];
constructor( constructor(
@Inject(KOISHI_MODULE_OPTIONS) @Inject(KOISHI_MODULE_OPTIONS)
......
...@@ -209,7 +209,7 @@ export class KoishiMetascanService { ...@@ -209,7 +209,7 @@ export class KoishiMetascanService {
} }
break; break;
default: default:
throw new Error(`Unknown operaton type ${regData.type}`); throw new Error(`Unknown operation type ${regData.type}`);
} }
} }
......
...@@ -10,7 +10,8 @@ import { IncomingMessage } from 'http'; ...@@ -10,7 +10,8 @@ import { IncomingMessage } from 'http';
@WebSocketGateway() @WebSocketGateway()
export class KoishiWebsocketGateway export class KoishiWebsocketGateway
implements OnGatewayInit, OnGatewayConnection { implements OnGatewayInit, OnGatewayConnection
{
constructor(private readonly koishi: KoishiService) {} constructor(private readonly koishi: KoishiService) {}
@WebSocketServer() @WebSocketServer()
......
...@@ -54,7 +54,7 @@ export const InjectContextUser = (...values: string[]) => ...@@ -54,7 +54,7 @@ export const InjectContextUser = (...values: string[]) =>
export function TransformMetadata< export function TransformMetadata<
K extends MetadataKey, K extends MetadataKey,
VM extends Partial<MetadataGenericMap> = MetadataGenericMap VM extends Partial<MetadataGenericMap> = MetadataGenericMap,
>( >(
metadataKey: K, metadataKey: K,
metadataValueFun: (oldValue: VM[K]) => VM[K], metadataValueFun: (oldValue: VM[K]) => VM[K],
......
...@@ -8,6 +8,7 @@ import { ...@@ -8,6 +8,7 @@ import {
EventMap, EventMap,
FieldCollector, FieldCollector,
MaybeArray, MaybeArray,
Modules,
Plugin, Plugin,
Session, Session,
User, User,
...@@ -38,14 +39,21 @@ export interface ContextSelector { ...@@ -38,14 +39,21 @@ export interface ContextSelector {
useSelector?: OnContextFunction; useSelector?: OnContextFunction;
} }
export interface KoishiModulePlugin<T extends Plugin> extends ContextSelector { export type KoishiPluginOptions<T extends Plugin | keyof Modules> =
| boolean
| (T extends keyof Modules
? Plugin.ModuleConfig<Modules[T]>
: Plugin.Config<T>);
export interface KoishiModulePlugin<T extends Plugin | keyof Modules>
extends ContextSelector {
plugin: T; plugin: T;
options?: boolean | Plugin.Config<T>; options?: boolean | KoishiPluginOptions<T>;
} }
export function PluginDef<T extends Plugin>( export function PluginDef<T extends Plugin | keyof Modules>(
plugin: T, plugin: T,
options?: boolean | Plugin.Config<T>, options?: KoishiPluginOptions<T>,
select?: Selection, select?: Selection,
): KoishiModulePlugin<T> { ): KoishiModulePlugin<T> {
return { plugin, options, select }; return { plugin, options, select };
...@@ -103,7 +111,7 @@ export interface DoRegisterConfigDataMap { ...@@ -103,7 +111,7 @@ export interface DoRegisterConfigDataMap {
export interface MappingStruct< export interface MappingStruct<
T extends Record<string | number | symbol, any>, T extends Record<string | number | symbol, any>,
K extends keyof T K extends keyof T,
> { > {
type: K; type: K;
data?: T[K]; data?: T[K];
...@@ -111,7 +119,7 @@ export interface MappingStruct< ...@@ -111,7 +119,7 @@ export interface MappingStruct<
export function GenerateMappingStruct< export function GenerateMappingStruct<
T extends Record<string | number | symbol, any>, T extends Record<string | number | symbol, any>,
K extends keyof T K extends keyof T,
>(type: K, data?: T[K]): MappingStruct<T, K> { >(type: K, data?: T[K]): MappingStruct<T, K> {
return { return {
type, type,
...@@ -120,7 +128,7 @@ export function GenerateMappingStruct< ...@@ -120,7 +128,7 @@ export function GenerateMappingStruct<
} }
export type DoRegisterConfig< export type DoRegisterConfig<
K extends keyof DoRegisterConfigDataMap = keyof DoRegisterConfigDataMap K extends keyof DoRegisterConfigDataMap = keyof DoRegisterConfigDataMap,
> = MappingStruct<DoRegisterConfigDataMap, K>; > = MappingStruct<DoRegisterConfigDataMap, K>;
// Command stuff // Command stuff
...@@ -150,7 +158,7 @@ export interface CommandPutConfigMap { ...@@ -150,7 +158,7 @@ export interface CommandPutConfigMap {
} }
export type CommandPutConfig< export type CommandPutConfig<
K extends keyof CommandPutConfigMap = keyof CommandPutConfigMap K extends keyof CommandPutConfigMap = keyof CommandPutConfigMap,
> = MappingStruct<CommandPutConfigMap, K>; > = MappingStruct<CommandPutConfigMap, K>;
export type CommandDefinitionFun = (cmd: Command) => Command; export type CommandDefinitionFun = (cmd: Command) => Command;
...@@ -162,19 +170,17 @@ export type MetadataArrayValueMap = { ...@@ -162,19 +170,17 @@ export type MetadataArrayValueMap = {
export type MetadataGenericMap = MetadataArrayValueMap & MetadataMap; export type MetadataGenericMap = MetadataArrayValueMap & MetadataMap;
export type MetadataArrayValue< export type MetadataArrayValue<K extends keyof MetadataArrayValueMap> =
K extends keyof MetadataArrayValueMap MetadataArrayValueMap[K];
> = MetadataArrayValueMap[K];
export type MetadataKey = keyof MetadataArrayMap | keyof MetadataMap; export type MetadataKey = keyof MetadataArrayMap | keyof MetadataMap;
export type MetadataMapValue< export type MetadataMapValue<K extends MetadataKey> =
K extends MetadataKey K extends keyof MetadataArrayValueMap
> = K extends keyof MetadataArrayValueMap ? MetadataArrayValue<K>
? MetadataArrayValue<K> : K extends keyof MetadataMap
: K extends keyof MetadataMap ? MetadataMap[K]
? MetadataMap[K] : never;
: never;
// command interceptor // command interceptor
...@@ -182,7 +188,7 @@ export interface KoishiCommandInterceptor< ...@@ -182,7 +188,7 @@ export interface KoishiCommandInterceptor<
U extends User.Field = never, U extends User.Field = never,
G extends Channel.Field = never, G extends Channel.Field = never,
A extends any[] = any[], A extends any[] = any[],
O extends {} = {} O extends {} = {},
> { > {
intercept: Command.Action<U, G, A, O>; intercept: Command.Action<U, G, A, O>;
} }
...@@ -191,7 +197,7 @@ export type KoishiCommandInterceptorRegistration< ...@@ -191,7 +197,7 @@ export type KoishiCommandInterceptorRegistration<
U extends User.Field = never, U extends User.Field = never,
G extends Channel.Field = never, G extends Channel.Field = never,
A extends any[] = any[], A extends any[] = any[],
O extends {} = {} O extends {} = {},
> = > =
| KoishiCommandInterceptor<U, G, A, O> | KoishiCommandInterceptor<U, G, A, O>
| Type<KoishiCommandInterceptor<U, G, A, O>> | Type<KoishiCommandInterceptor<U, G, A, O>>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment