alemonjs 2.1.50 → 2.1.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app/event-processor-callHandler.js +3 -2
- package/lib/app/hook-event-context.d.ts +2 -1
- package/lib/app/hook-event-context.js +7 -4
- package/lib/app/hook-use/common.d.ts +2 -2
- package/lib/app/hook-use/common.js +1 -0
- package/lib/app/hook-use/event.d.ts +16 -3
- package/lib/app/hook-use/event.js +15 -2
- package/lib/app/hook-use/index.js +1 -1
- package/lib/app/index.js +3 -3
- package/lib/app/message-format.d.ts +1 -13
- package/lib/app/message-format.js +1 -25
- package/lib/index.js +3 -3
- package/package.json +2 -2
|
@@ -20,10 +20,11 @@ const createCallHandler = valueEvent => {
|
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
try {
|
|
23
|
-
const
|
|
23
|
+
const nextFn = (...cns) => {
|
|
24
24
|
isNext = true;
|
|
25
25
|
nextEvent(...cns);
|
|
26
|
-
}
|
|
26
|
+
};
|
|
27
|
+
const res = await withEventContext(valueEvent, nextFn, () => currents[index](valueEvent, nextFn));
|
|
27
28
|
if (res !== true) {
|
|
28
29
|
isClose = true;
|
|
29
30
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { EventKeys, Events } from '../types';
|
|
2
|
-
export declare const withEventContext: <T extends EventKeys, R>(event: Events[T], runner: () => R) => R;
|
|
2
|
+
export declare const withEventContext: <T extends EventKeys, R>(event: Events[T], next: (...args: boolean[]) => void, runner: () => R) => R;
|
|
3
3
|
export declare const getCurrentEvent: <T extends EventKeys>() => Events[T] | undefined;
|
|
4
|
+
export declare const getCurrentNext: () => ((...args: boolean[]) => void) | undefined;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
2
|
|
|
3
3
|
const eventStore = new AsyncLocalStorage();
|
|
4
|
-
const withEventContext = (event, runner) => {
|
|
5
|
-
return eventStore.run(event, runner);
|
|
4
|
+
const withEventContext = (event, next, runner) => {
|
|
5
|
+
return eventStore.run({ event, next }, runner);
|
|
6
6
|
};
|
|
7
7
|
const getCurrentEvent = () => {
|
|
8
|
-
return eventStore.getStore();
|
|
8
|
+
return eventStore.getStore()?.event;
|
|
9
|
+
};
|
|
10
|
+
const getCurrentNext = () => {
|
|
11
|
+
return eventStore.getStore()?.next;
|
|
9
12
|
};
|
|
10
13
|
|
|
11
|
-
export { getCurrentEvent, withEventContext };
|
|
14
|
+
export { getCurrentEvent, getCurrentNext, withEventContext };
|
|
@@ -5,9 +5,9 @@ import { createResult, Result } from '../../core/utils';
|
|
|
5
5
|
import { sendAction } from '../../cbp/processor/actions';
|
|
6
6
|
import { sendAPI } from '../../cbp/processor/api';
|
|
7
7
|
import { Format } from '../message-format';
|
|
8
|
-
import { getCurrentEvent } from '../hook-event-context';
|
|
8
|
+
import { getCurrentEvent, getCurrentNext } from '../hook-event-context';
|
|
9
9
|
export type { DataEnums, EventKeys, Events, User, GuildInfo, ChannelInfo, MemberInfo, RoleInfo, PaginationParams, PaginatedResult, Result };
|
|
10
|
-
export { ResultCode, ChildrenApp, createResult, sendAction, sendAPI, Format, getCurrentEvent };
|
|
10
|
+
export { ResultCode, ChildrenApp, createResult, sendAction, sendAPI, Format, getCurrentEvent, getCurrentNext };
|
|
11
11
|
export type Options = {
|
|
12
12
|
UserId?: string;
|
|
13
13
|
UserKey?: string;
|
|
@@ -5,6 +5,7 @@ export { sendAction } from '../../cbp/processor/actions.js';
|
|
|
5
5
|
export { sendAPI } from '../../cbp/processor/api.js';
|
|
6
6
|
export { Format } from '../message-format.js';
|
|
7
7
|
import { getCurrentEvent } from '../hook-event-context.js';
|
|
8
|
+
export { getCurrentNext } from '../hook-event-context.js';
|
|
8
9
|
|
|
9
10
|
const getEventOrThrow = (event) => {
|
|
10
11
|
const currentEvent = event ?? getCurrentEvent();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventKeys, Events } from 'types';
|
|
1
|
+
import { EventKeys, Events } from '../../types';
|
|
2
2
|
type UseEventOptions<T extends EventKeys> = {
|
|
3
3
|
selects: T | T[];
|
|
4
4
|
regular?: RegExp;
|
|
@@ -15,6 +15,19 @@ type UseEventResult<T extends EventKeys> = {
|
|
|
15
15
|
exact: boolean;
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
|
-
export declare function useEvent<T extends EventKeys>(options?: UseEventOptions<T>): readonly [UseEventResult<T
|
|
19
|
-
export declare function useEvent<T extends EventKeys>(event?: Events[T], options?: UseEventOptions<T>): readonly [UseEventResult<T
|
|
18
|
+
export declare function useEvent<T extends EventKeys>(options?: UseEventOptions<T>): readonly [UseEventResult<T>, (...args: boolean[]) => void];
|
|
19
|
+
export declare function useEvent<T extends EventKeys>(event?: Events[T], options?: UseEventOptions<T>): readonly [UseEventResult<T>, (...args: boolean[]) => void];
|
|
20
|
+
export declare function createEvent<T extends EventKeys>(options: {
|
|
21
|
+
event: any;
|
|
22
|
+
selects: T | T[];
|
|
23
|
+
regular?: RegExp;
|
|
24
|
+
prefix?: string;
|
|
25
|
+
exact?: string;
|
|
26
|
+
}): Events[T] & {
|
|
27
|
+
value: Events[T]["value"];
|
|
28
|
+
selects: boolean;
|
|
29
|
+
regular: boolean;
|
|
30
|
+
prefix: boolean;
|
|
31
|
+
exact: boolean;
|
|
32
|
+
};
|
|
20
33
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { getEventOrThrow } from './common.js';
|
|
2
|
+
import { getCurrentNext } from '../hook-event-context.js';
|
|
2
3
|
|
|
3
4
|
const isOptions = (v) => {
|
|
4
5
|
return typeof v === 'object' && 'selects' in v;
|
|
@@ -32,7 +33,19 @@ function useEvent(eventOrOptions, options) {
|
|
|
32
33
|
return eventValue.value;
|
|
33
34
|
}
|
|
34
35
|
});
|
|
35
|
-
|
|
36
|
+
const next = getCurrentNext() ?? (() => { });
|
|
37
|
+
return [r, next];
|
|
38
|
+
}
|
|
39
|
+
function createEvent(options) {
|
|
40
|
+
const { event, selects, regular, prefix, exact } = options;
|
|
41
|
+
const [eventRef] = useEvent(event, { selects, regular, prefix, exact });
|
|
42
|
+
const o = eventRef.match;
|
|
43
|
+
const e = eventRef.current;
|
|
44
|
+
return {
|
|
45
|
+
...e,
|
|
46
|
+
...o,
|
|
47
|
+
value: eventRef.value
|
|
48
|
+
};
|
|
36
49
|
}
|
|
37
50
|
|
|
38
|
-
export { useEvent };
|
|
51
|
+
export { createEvent, useEvent };
|
|
@@ -14,4 +14,4 @@ export { useRequest } from './request.js';
|
|
|
14
14
|
export { useRole } from './role.js';
|
|
15
15
|
export { useUser } from './user.js';
|
|
16
16
|
export { useObserver, useSubscribe } from './subscribe.js';
|
|
17
|
-
export { useEvent } from './event.js';
|
|
17
|
+
export { createEvent, useEvent } from './event.js';
|
package/lib/app/index.js
CHANGED
|
@@ -31,9 +31,9 @@ export { useRequest } from './hook-use/request.js';
|
|
|
31
31
|
export { useRole } from './hook-use/role.js';
|
|
32
32
|
export { useUser } from './hook-use/user.js';
|
|
33
33
|
export { useObserver, useSubscribe } from './hook-use/subscribe.js';
|
|
34
|
-
export { useEvent } from './hook-use/event.js';
|
|
35
|
-
export { getCurrentEvent, withEventContext } from './hook-event-context.js';
|
|
34
|
+
export { createEvent, useEvent } from './hook-use/event.js';
|
|
35
|
+
export { getCurrentEvent, getCurrentNext, withEventContext } from './hook-event-context.js';
|
|
36
36
|
export { createEventValue, createSelects, onSelects, onState, unChildren, unState, useState } from './event-utils.js';
|
|
37
37
|
export { MessageDirect, createDataFormat, format, getMessageIntent, sendToChannel, sendToUser } from './message-api.js';
|
|
38
|
-
export { Format, FormatButtonGroup, FormatMarkDown
|
|
38
|
+
export { Format, FormatButtonGroup, FormatMarkDown } from './message-format.js';
|
|
39
39
|
export { Attachment, Audio, BT, Button, Image, ImageFile, ImageURL, Link, MD, Markdown, MarkdownOriginal, Mention, Text, Video } from './message-format-old.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataButtonGroup, DataMarkDown, DataEnums
|
|
1
|
+
import { DataButtonGroup, DataMarkDown, DataEnums } from '../types';
|
|
2
2
|
import { Text, Image, Link, ImageFile, ImageURL, Mention, BT, MD, MarkdownOriginal, Attachment, Audio, Video } from './message-format-old.js';
|
|
3
3
|
export * from './message-format-old.js';
|
|
4
4
|
export declare class FormatButtonGroup {
|
|
@@ -56,15 +56,3 @@ export declare class Format {
|
|
|
56
56
|
addImageURL(...args: Parameters<typeof ImageURL>): this;
|
|
57
57
|
clear(): this;
|
|
58
58
|
}
|
|
59
|
-
export declare function createEvent<T extends EventKeys>(options: {
|
|
60
|
-
event: any;
|
|
61
|
-
selects: T | T[];
|
|
62
|
-
regular?: RegExp;
|
|
63
|
-
prefix?: string;
|
|
64
|
-
exact?: string;
|
|
65
|
-
}): Events[T] & {
|
|
66
|
-
selects: boolean;
|
|
67
|
-
regular: boolean;
|
|
68
|
-
prefix: boolean;
|
|
69
|
-
exact: boolean;
|
|
70
|
-
};
|
|
@@ -206,29 +206,5 @@ class Format {
|
|
|
206
206
|
return this;
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
function createEvent(options) {
|
|
210
|
-
const { event, selects, regular, prefix, exact } = options;
|
|
211
|
-
const { name, MessageText } = event || {};
|
|
212
|
-
const selectsArr = Array.isArray(selects) ? selects : [selects];
|
|
213
|
-
const o = {
|
|
214
|
-
selects: false,
|
|
215
|
-
regular: false,
|
|
216
|
-
prefix: false,
|
|
217
|
-
exact: false
|
|
218
|
-
};
|
|
219
|
-
if (selectsArr.includes(name)) {
|
|
220
|
-
o.selects = true;
|
|
221
|
-
}
|
|
222
|
-
if (exact && MessageText && MessageText === exact) {
|
|
223
|
-
o.exact = true;
|
|
224
|
-
}
|
|
225
|
-
if (prefix && MessageText?.startsWith(prefix)) {
|
|
226
|
-
o.prefix = true;
|
|
227
|
-
}
|
|
228
|
-
if (regular && MessageText && new RegExp(regular).test(MessageText)) {
|
|
229
|
-
o.regular = true;
|
|
230
|
-
}
|
|
231
|
-
return { ...event, ...o };
|
|
232
|
-
}
|
|
233
209
|
|
|
234
|
-
export { Attachment, Audio, BT, Format, FormatButtonGroup, FormatMarkDown, Image, ImageFile, ImageURL, Link, MD, MarkdownOriginal, Mention, Text, Video
|
|
210
|
+
export { Attachment, Audio, BT, Format, FormatButtonGroup, FormatMarkDown, Image, ImageFile, ImageURL, Link, MD, MarkdownOriginal, Mention, Text, Video };
|
package/lib/index.js
CHANGED
|
@@ -38,10 +38,10 @@ export { useRequest } from './app/hook-use/request.js';
|
|
|
38
38
|
export { useRole } from './app/hook-use/role.js';
|
|
39
39
|
export { useUser } from './app/hook-use/user.js';
|
|
40
40
|
export { useObserver, useSubscribe } from './app/hook-use/subscribe.js';
|
|
41
|
-
export { useEvent } from './app/hook-use/event.js';
|
|
42
|
-
export { getCurrentEvent, withEventContext } from './app/hook-event-context.js';
|
|
41
|
+
export { createEvent, useEvent } from './app/hook-use/event.js';
|
|
42
|
+
export { getCurrentEvent, getCurrentNext, withEventContext } from './app/hook-event-context.js';
|
|
43
43
|
export { createEventValue, createSelects, onSelects, onState, unChildren, unState, useState } from './app/event-utils.js';
|
|
44
44
|
export { MessageDirect, createDataFormat, format, getMessageIntent, sendToChannel, sendToUser } from './app/message-api.js';
|
|
45
|
-
export { Format, FormatButtonGroup, FormatMarkDown
|
|
45
|
+
export { Format, FormatButtonGroup, FormatMarkDown } from './app/message-format.js';
|
|
46
46
|
export { start } from './main.js';
|
|
47
47
|
export { Attachment, Audio, BT, Button, Image, ImageFile, ImageURL, Link, MD, Markdown, MarkdownOriginal, Mention, Text, Video } from './app/message-format-old.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alemonjs",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.52",
|
|
4
4
|
"description": "bot script",
|
|
5
5
|
"author": "lemonade",
|
|
6
6
|
"license": "MIT",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"type": "git",
|
|
70
70
|
"url": "https://github.com/lemonade-lab/alemonjs.git"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "90cafaf98cefa01152764922f58e543f0c513811"
|
|
73
73
|
}
|