Commit 4ae9a97b authored by nanahira's avatar nanahira

bump version and add @ws for websocket

parent 78206759
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,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",
"jest": "^27.4.3", "jest": "^27.4.3",
"koishi": "^4.0.0-rc.2", "koishi": "^4.0.0-rc.3",
"prettier": "^2.4.1", "prettier": "^2.4.1",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"supertest": "^6.1.6", "supertest": "^6.1.6",
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
"ws": "^8.2.3" "ws": "^8.2.3"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.0.0-rc.1" "koishi": "^4.0.0-rc.2"
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
...@@ -1026,9 +1026,9 @@ ...@@ -1026,9 +1026,9 @@
} }
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.0.0-rc.2", "version": "4.0.0-rc.3",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-rc.2.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-rc.3.tgz",
"integrity": "sha512-ohMDvkpQTUGi6xYA0OApI56c+E+lhvyIYNYLkDmC3VkU07EGWDmaEt7r9dv04LLy8pr+zx1rCkbkzPWy0BjnXw==", "integrity": "sha512-NaM0cqp126dnz6/COKIsuvDVuKE4Gb1yPQcoOof0PReVKF1qOL/MSoZGaAxEsHDpKd5CSaZfqz00aoeqhYkFCQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^5.0.0-rc.0", "@koishijs/utils": "^5.0.0-rc.0",
...@@ -4724,13 +4724,13 @@ ...@@ -4724,13 +4724,13 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.0.0-rc.2", "version": "4.0.0-rc.3",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-rc.2.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-rc.3.tgz",
"integrity": "sha512-3ovz8Tp4wdMv0pWHDoBr58d+JDpvFfhzDUn5nAIrF7Bd6u9I5gi0qejK+m+2hlfmz1JJCMh9bFnR6hDApAmplw==", "integrity": "sha512-zO5/jf0XrdGXx0ZtQJ7A5b2tjkctw5We+Uc0wjQP2eGYvVeykkg6O7XdY+qnpvz+VSXylNr2gIe4FYKWTDJGHw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@koishijs/core": "^4.0.0-rc.2", "@koishijs/core": "^4.0.0-rc.3",
"@koishijs/utils": "^5.0.0-rc.0", "@koishijs/utils": "^5.0.0-rc.0",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
...@@ -7544,9 +7544,9 @@ ...@@ -7544,9 +7544,9 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.0.0-rc.2", "version": "4.0.0-rc.3",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-rc.2.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.0.0-rc.3.tgz",
"integrity": "sha512-ohMDvkpQTUGi6xYA0OApI56c+E+lhvyIYNYLkDmC3VkU07EGWDmaEt7r9dv04LLy8pr+zx1rCkbkzPWy0BjnXw==", "integrity": "sha512-NaM0cqp126dnz6/COKIsuvDVuKE4Gb1yPQcoOof0PReVKF1qOL/MSoZGaAxEsHDpKd5CSaZfqz00aoeqhYkFCQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@koishijs/utils": "^5.0.0-rc.0", "@koishijs/utils": "^5.0.0-rc.0",
...@@ -10388,13 +10388,13 @@ ...@@ -10388,13 +10388,13 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.0.0-rc.2", "version": "4.0.0-rc.3",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-rc.2.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.0.0-rc.3.tgz",
"integrity": "sha512-3ovz8Tp4wdMv0pWHDoBr58d+JDpvFfhzDUn5nAIrF7Bd6u9I5gi0qejK+m+2hlfmz1JJCMh9bFnR6hDApAmplw==", "integrity": "sha512-zO5/jf0XrdGXx0ZtQJ7A5b2tjkctw5We+Uc0wjQP2eGYvVeykkg6O7XdY+qnpvz+VSXylNr2gIe4FYKWTDJGHw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@koishijs/core": "^4.0.0-rc.2", "@koishijs/core": "^4.0.0-rc.3",
"@koishijs/utils": "^5.0.0-rc.0", "@koishijs/utils": "^5.0.0-rc.0",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,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",
"jest": "^27.4.3", "jest": "^27.4.3",
"koishi": "^4.0.0-rc.2", "koishi": "^4.0.0-rc.3",
"prettier": "^2.4.1", "prettier": "^2.4.1",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"supertest": "^6.1.6", "supertest": "^6.1.6",
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
"ws": "^8.2.3" "ws": "^8.2.3"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.0.0-rc.2" "koishi": "^4.0.0-rc.3"
}, },
"dependencies": { "dependencies": {
"@types/koa": "^2.13.4", "@types/koa": "^2.13.4",
......
...@@ -30,6 +30,7 @@ import { ...@@ -30,6 +30,7 @@ import {
Command, Command,
Context, Context,
FieldCollector, FieldCollector,
MaybeArray,
Selection, Selection,
Session, Session,
} from 'koishi'; } from 'koishi';
...@@ -67,6 +68,8 @@ export const Options = (path: string) => ...@@ -67,6 +68,8 @@ export const Options = (path: string) =>
UseHttpRoute({ path, method: 'options' }); UseHttpRoute({ path, method: 'options' });
export const Head = (path: string) => UseHttpRoute({ path, method: 'head' }); export const Head = (path: string) => UseHttpRoute({ path, method: 'head' });
export const All = (path: string) => UseHttpRoute({ path, method: 'all' }); export const All = (path: string) => UseHttpRoute({ path, method: 'all' });
export const Ws = (path: MaybeArray<string | RegExp>) =>
DoRegister(GenerateMappingStruct('ws', path));
export function UseCommand<D extends string>( export function UseCommand<D extends string>(
def: D, def: D,
......
...@@ -4,6 +4,7 @@ import { ...@@ -4,6 +4,7 @@ import {
Context, Context,
EventMap, EventMap,
FieldCollector, FieldCollector,
MaybeArray,
Modules, Modules,
Plugin, Plugin,
Selection, Selection,
...@@ -82,6 +83,7 @@ export interface DoRegisterConfigDataMap { ...@@ -82,6 +83,7 @@ export interface DoRegisterConfigDataMap {
plugin: never; plugin: never;
command: CommandRegisterConfig; command: CommandRegisterConfig;
route: KoishiRouteDef; route: KoishiRouteDef;
ws: MaybeArray<string | RegExp>;
} }
export interface MappingStruct< export interface MappingStruct<
......
...@@ -307,6 +307,12 @@ export function DefinePlugin<T = any>( ...@@ -307,6 +307,12 @@ export function DefinePlugin<T = any>(
this[methodKey](ctx, next), this[methodKey](ctx, next),
); );
break; break;
case 'ws':
const { data: wsPath } = regData as DoRegisterConfig<'ws'>;
baseContext.router.ws(wsPath, (socket, req) =>
this[methodKey](socket, req),
);
break;
default: default:
throw new Error(`Unknown operation type ${regData.type}`); throw new Error(`Unknown operation type ${regData.type}`);
} }
......
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