fastevent 2.2.11 → 2.2.12

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.
@@ -8,12 +8,12 @@ type MergeUnion<T> = (T extends any ? (x: T) => void : never) extends (x: infer
8
8
  type Split$1<S extends string, Delimiter extends string = '/'> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split$1<Tail, Delimiter>] : [S];
9
9
  type MatchSegment<Input extends string, Pattern extends string> = Pattern extends '*' ? true : Pattern extends '**' ? true : Input extends Pattern ? true : false;
10
10
  type MatchPatternArray<InputArr extends string[], PatternArr extends string[]> = InputArr extends [infer InputHead extends string, ...infer InputTail extends string[]] ? PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputTail, PatternTail> extends true ? true : MatchPatternArray<InputTail, PatternArr> extends true ? true : MatchPatternArray<InputArr, PatternTail> extends true ? true : false : MatchSegment<InputHead, PatternHead> extends true ? MatchPatternArray<InputTail, PatternTail> : false : false : PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputArr, PatternTail> : false : true;
11
- type MatchPattern$1<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
11
+ type MatchPattern<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
12
12
  [K in Pattern]: any;
13
13
  } : never;
14
14
  type Fallback$1<T, F> = [T] extends [never] ? F : T extends undefined ? F : T;
15
15
  type MatchEventType<T extends string, Events extends Record<string, any>> = MergeUnion<Fallback$1<{
16
- [K in keyof Events]: MatchPattern$1<T, K & string> extends never ? never : {
16
+ [K in keyof Events]: MatchPattern<T, K & string> extends never ? never : {
17
17
  [P in K]: Events[K];
18
18
  };
19
19
  }[keyof Events] extends infer Result ? Result extends Record<string, any> ? Result : any : any, {
@@ -21,11 +21,12 @@ type MatchEventType<T extends string, Events extends Record<string, any>> = Merg
21
21
  }>>;
22
22
 
23
23
  type Split<S extends string, Delimiter extends string> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split<Tail, Delimiter>] : [S];
24
- type MatchPattern<KeyParts extends string[], PrefixParts extends string[]> = PrefixParts['length'] extends 0 ? true : KeyParts['length'] extends 0 ? false : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPattern<Slice<KeyParts, 1>, Slice<PrefixParts, 1>> : false;
24
+ type MatchPatternAndGetRemainder<KeyParts extends string[], PrefixParts extends string[], Result extends string[] = []> = PrefixParts['length'] extends 0 ? KeyParts['length'] extends 0 ? never : KeyParts : KeyParts['length'] extends 0 ? never : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPatternAndGetRemainder<Slice<KeyParts, 1>, Slice<PrefixParts, 1>, Result> : never;
25
25
  type Slice<T extends any[], Start extends number, Result extends any[] = []> = Start extends 0 ? T : T extends [infer First, ...infer Rest] ? Slice<Rest, Decrement<Start>, Result> : Result;
26
26
  type Decrement<N extends number> = N extends 0 ? 0 : N extends 1 ? 0 : N extends 2 ? 1 : N extends 3 ? 2 : N extends 4 ? 3 : N extends 5 ? 4 : N extends 6 ? 5 : N extends 7 ? 6 : N extends 8 ? 7 : N extends 9 ? 8 : number;
27
+ type Join<T extends string[], Delimiter extends string = '/'> = T extends [infer First extends string, ...infer Rest extends string[]] ? Rest['length'] extends 0 ? First : `${First}${Delimiter}${Join<Rest, Delimiter>}` : '';
27
28
  type ScopeEvents<Events extends Record<string, any>, Prefix extends string> = {
28
- [K in keyof Events as K extends string ? MatchPattern<Split<K, '/'>, Split<Prefix, '/'>> extends true ? K : never : never]: Events[K];
29
+ [K in keyof Events as K extends string ? MatchPatternAndGetRemainder<Split<K, '/'>, Split<Prefix, '/'>> extends infer Remainder ? Remainder extends string[] ? Join<Remainder, '/'> : never : never : never]: Events[K];
29
30
  };
30
31
 
31
32
  interface FastEventMeta {
@@ -8,12 +8,12 @@ type MergeUnion<T> = (T extends any ? (x: T) => void : never) extends (x: infer
8
8
  type Split$1<S extends string, Delimiter extends string = '/'> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split$1<Tail, Delimiter>] : [S];
9
9
  type MatchSegment<Input extends string, Pattern extends string> = Pattern extends '*' ? true : Pattern extends '**' ? true : Input extends Pattern ? true : false;
10
10
  type MatchPatternArray<InputArr extends string[], PatternArr extends string[]> = InputArr extends [infer InputHead extends string, ...infer InputTail extends string[]] ? PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputTail, PatternTail> extends true ? true : MatchPatternArray<InputTail, PatternArr> extends true ? true : MatchPatternArray<InputArr, PatternTail> extends true ? true : false : MatchSegment<InputHead, PatternHead> extends true ? MatchPatternArray<InputTail, PatternTail> : false : false : PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputArr, PatternTail> : false : true;
11
- type MatchPattern$1<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
11
+ type MatchPattern<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
12
12
  [K in Pattern]: any;
13
13
  } : never;
14
14
  type Fallback$1<T, F> = [T] extends [never] ? F : T extends undefined ? F : T;
15
15
  type MatchEventType<T extends string, Events extends Record<string, any>> = MergeUnion<Fallback$1<{
16
- [K in keyof Events]: MatchPattern$1<T, K & string> extends never ? never : {
16
+ [K in keyof Events]: MatchPattern<T, K & string> extends never ? never : {
17
17
  [P in K]: Events[K];
18
18
  };
19
19
  }[keyof Events] extends infer Result ? Result extends Record<string, any> ? Result : any : any, {
@@ -21,11 +21,12 @@ type MatchEventType<T extends string, Events extends Record<string, any>> = Merg
21
21
  }>>;
22
22
 
23
23
  type Split<S extends string, Delimiter extends string> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split<Tail, Delimiter>] : [S];
24
- type MatchPattern<KeyParts extends string[], PrefixParts extends string[]> = PrefixParts['length'] extends 0 ? true : KeyParts['length'] extends 0 ? false : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPattern<Slice<KeyParts, 1>, Slice<PrefixParts, 1>> : false;
24
+ type MatchPatternAndGetRemainder<KeyParts extends string[], PrefixParts extends string[], Result extends string[] = []> = PrefixParts['length'] extends 0 ? KeyParts['length'] extends 0 ? never : KeyParts : KeyParts['length'] extends 0 ? never : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPatternAndGetRemainder<Slice<KeyParts, 1>, Slice<PrefixParts, 1>, Result> : never;
25
25
  type Slice<T extends any[], Start extends number, Result extends any[] = []> = Start extends 0 ? T : T extends [infer First, ...infer Rest] ? Slice<Rest, Decrement<Start>, Result> : Result;
26
26
  type Decrement<N extends number> = N extends 0 ? 0 : N extends 1 ? 0 : N extends 2 ? 1 : N extends 3 ? 2 : N extends 4 ? 3 : N extends 5 ? 4 : N extends 6 ? 5 : N extends 7 ? 6 : N extends 8 ? 7 : N extends 9 ? 8 : number;
27
+ type Join<T extends string[], Delimiter extends string = '/'> = T extends [infer First extends string, ...infer Rest extends string[]] ? Rest['length'] extends 0 ? First : `${First}${Delimiter}${Join<Rest, Delimiter>}` : '';
27
28
  type ScopeEvents<Events extends Record<string, any>, Prefix extends string> = {
28
- [K in keyof Events as K extends string ? MatchPattern<Split<K, '/'>, Split<Prefix, '/'>> extends true ? K : never : never]: Events[K];
29
+ [K in keyof Events as K extends string ? MatchPatternAndGetRemainder<Split<K, '/'>, Split<Prefix, '/'>> extends infer Remainder ? Remainder extends string[] ? Join<Remainder, '/'> : never : never : never]: Events[K];
29
30
  };
30
31
 
31
32
  interface FastEventMeta {
package/dist/index.d.mts CHANGED
@@ -6,12 +6,12 @@ type MergeUnion<T> = (T extends any ? (x: T) => void : never) extends (x: infer
6
6
  type Split$1<S extends string, Delimiter extends string = '/'> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split$1<Tail, Delimiter>] : [S];
7
7
  type MatchSegment<Input extends string, Pattern extends string> = Pattern extends '*' ? true : Pattern extends '**' ? true : Input extends Pattern ? true : false;
8
8
  type MatchPatternArray<InputArr extends string[], PatternArr extends string[]> = InputArr extends [infer InputHead extends string, ...infer InputTail extends string[]] ? PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputTail, PatternTail> extends true ? true : MatchPatternArray<InputTail, PatternArr> extends true ? true : MatchPatternArray<InputArr, PatternTail> extends true ? true : false : MatchSegment<InputHead, PatternHead> extends true ? MatchPatternArray<InputTail, PatternTail> : false : false : PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputArr, PatternTail> : false : true;
9
- type MatchPattern$1<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
9
+ type MatchPattern<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
10
10
  [K in Pattern]: any;
11
11
  } : never;
12
12
  type Fallback$1<T, F> = [T] extends [never] ? F : T extends undefined ? F : T;
13
13
  type MatchEventType<T extends string, Events extends Record<string, any>> = MergeUnion<Fallback$1<{
14
- [K in keyof Events]: MatchPattern$1<T, K & string> extends never ? never : {
14
+ [K in keyof Events]: MatchPattern<T, K & string> extends never ? never : {
15
15
  [P in K]: Events[K];
16
16
  };
17
17
  }[keyof Events] extends infer Result ? Result extends Record<string, any> ? Result : any : any, {
@@ -19,11 +19,12 @@ type MatchEventType<T extends string, Events extends Record<string, any>> = Merg
19
19
  }>>;
20
20
 
21
21
  type Split<S extends string, Delimiter extends string> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split<Tail, Delimiter>] : [S];
22
- type MatchPattern<KeyParts extends string[], PrefixParts extends string[]> = PrefixParts['length'] extends 0 ? true : KeyParts['length'] extends 0 ? false : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPattern<Slice<KeyParts, 1>, Slice<PrefixParts, 1>> : false;
22
+ type MatchPatternAndGetRemainder<KeyParts extends string[], PrefixParts extends string[], Result extends string[] = []> = PrefixParts['length'] extends 0 ? KeyParts['length'] extends 0 ? never : KeyParts : KeyParts['length'] extends 0 ? never : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPatternAndGetRemainder<Slice<KeyParts, 1>, Slice<PrefixParts, 1>, Result> : never;
23
23
  type Slice<T extends any[], Start extends number, Result extends any[] = []> = Start extends 0 ? T : T extends [infer First, ...infer Rest] ? Slice<Rest, Decrement<Start>, Result> : Result;
24
24
  type Decrement<N extends number> = N extends 0 ? 0 : N extends 1 ? 0 : N extends 2 ? 1 : N extends 3 ? 2 : N extends 4 ? 3 : N extends 5 ? 4 : N extends 6 ? 5 : N extends 7 ? 6 : N extends 8 ? 7 : N extends 9 ? 8 : number;
25
+ type Join<T extends string[], Delimiter extends string = '/'> = T extends [infer First extends string, ...infer Rest extends string[]] ? Rest['length'] extends 0 ? First : `${First}${Delimiter}${Join<Rest, Delimiter>}` : '';
25
26
  type ScopeEvents<Events extends Record<string, any>, Prefix extends string> = {
26
- [K in keyof Events as K extends string ? MatchPattern<Split<K, '/'>, Split<Prefix, '/'>> extends true ? K : never : never]: Events[K];
27
+ [K in keyof Events as K extends string ? MatchPatternAndGetRemainder<Split<K, '/'>, Split<Prefix, '/'>> extends infer Remainder ? Remainder extends string[] ? Join<Remainder, '/'> : never : never : never]: Events[K];
27
28
  };
28
29
 
29
30
  interface FastEventMeta {
package/dist/index.d.ts CHANGED
@@ -6,12 +6,12 @@ type MergeUnion<T> = (T extends any ? (x: T) => void : never) extends (x: infer
6
6
  type Split$1<S extends string, Delimiter extends string = '/'> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split$1<Tail, Delimiter>] : [S];
7
7
  type MatchSegment<Input extends string, Pattern extends string> = Pattern extends '*' ? true : Pattern extends '**' ? true : Input extends Pattern ? true : false;
8
8
  type MatchPatternArray<InputArr extends string[], PatternArr extends string[]> = InputArr extends [infer InputHead extends string, ...infer InputTail extends string[]] ? PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputTail, PatternTail> extends true ? true : MatchPatternArray<InputTail, PatternArr> extends true ? true : MatchPatternArray<InputArr, PatternTail> extends true ? true : false : MatchSegment<InputHead, PatternHead> extends true ? MatchPatternArray<InputTail, PatternTail> : false : false : PatternArr extends [infer PatternHead extends string, ...infer PatternTail extends string[]] ? PatternHead extends '**' ? MatchPatternArray<InputArr, PatternTail> : false : true;
9
- type MatchPattern$1<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
9
+ type MatchPattern<T extends string, Pattern extends string> = MatchPatternArray<Split$1<T>, Split$1<Pattern>> extends true ? {
10
10
  [K in Pattern]: any;
11
11
  } : never;
12
12
  type Fallback$1<T, F> = [T] extends [never] ? F : T extends undefined ? F : T;
13
13
  type MatchEventType<T extends string, Events extends Record<string, any>> = MergeUnion<Fallback$1<{
14
- [K in keyof Events]: MatchPattern$1<T, K & string> extends never ? never : {
14
+ [K in keyof Events]: MatchPattern<T, K & string> extends never ? never : {
15
15
  [P in K]: Events[K];
16
16
  };
17
17
  }[keyof Events] extends infer Result ? Result extends Record<string, any> ? Result : any : any, {
@@ -19,11 +19,12 @@ type MatchEventType<T extends string, Events extends Record<string, any>> = Merg
19
19
  }>>;
20
20
 
21
21
  type Split<S extends string, Delimiter extends string> = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split<Tail, Delimiter>] : [S];
22
- type MatchPattern<KeyParts extends string[], PrefixParts extends string[]> = PrefixParts['length'] extends 0 ? true : KeyParts['length'] extends 0 ? false : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPattern<Slice<KeyParts, 1>, Slice<PrefixParts, 1>> : false;
22
+ type MatchPatternAndGetRemainder<KeyParts extends string[], PrefixParts extends string[], Result extends string[] = []> = PrefixParts['length'] extends 0 ? KeyParts['length'] extends 0 ? never : KeyParts : KeyParts['length'] extends 0 ? never : KeyParts[0] extends PrefixParts[0] | '*' ? MatchPatternAndGetRemainder<Slice<KeyParts, 1>, Slice<PrefixParts, 1>, Result> : never;
23
23
  type Slice<T extends any[], Start extends number, Result extends any[] = []> = Start extends 0 ? T : T extends [infer First, ...infer Rest] ? Slice<Rest, Decrement<Start>, Result> : Result;
24
24
  type Decrement<N extends number> = N extends 0 ? 0 : N extends 1 ? 0 : N extends 2 ? 1 : N extends 3 ? 2 : N extends 4 ? 3 : N extends 5 ? 4 : N extends 6 ? 5 : N extends 7 ? 6 : N extends 8 ? 7 : N extends 9 ? 8 : number;
25
+ type Join<T extends string[], Delimiter extends string = '/'> = T extends [infer First extends string, ...infer Rest extends string[]] ? Rest['length'] extends 0 ? First : `${First}${Delimiter}${Join<Rest, Delimiter>}` : '';
25
26
  type ScopeEvents<Events extends Record<string, any>, Prefix extends string> = {
26
- [K in keyof Events as K extends string ? MatchPattern<Split<K, '/'>, Split<Prefix, '/'>> extends true ? K : never : never]: Events[K];
27
+ [K in keyof Events as K extends string ? MatchPatternAndGetRemainder<Split<K, '/'>, Split<Prefix, '/'>> extends infer Remainder ? Remainder extends string[] ? Join<Remainder, '/'> : never : never : never]: Events[K];
27
28
  };
28
29
 
29
30
  interface FastEventMeta {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fastevent",
3
- "version": "2.2.11",
3
+ "version": "2.2.12",
4
4
  "description": "The Ultimate Event Trigger Library – Fast, Feature-Rich, Battle-Tested!",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",