@fraqjs/fraq 0.12.0 → 0.12.1
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/dist/index.d.mts +5 -3
- package/dist/index.mjs +13 -4
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -5547,6 +5547,7 @@ type RouteActivation =
|
|
|
5547
5547
|
type: 'prefix';
|
|
5548
5548
|
prefix: string;
|
|
5549
5549
|
};
|
|
5550
|
+
type RouteActivationInput = RouteActivation | readonly RouteActivation[];
|
|
5550
5551
|
type RouteDescriptor =
|
|
5551
5552
|
| {
|
|
5552
5553
|
type: 'command';
|
|
@@ -5560,7 +5561,7 @@ type RouteDescriptor =
|
|
|
5560
5561
|
path: readonly string[];
|
|
5561
5562
|
meta?: RouteMeta;
|
|
5562
5563
|
};
|
|
5563
|
-
type RouteActivationResolver = (route: RouteDescriptor, session: Session) =>
|
|
5564
|
+
type RouteActivationResolver = (route: RouteDescriptor, session: Session) => RouteActivationInput | undefined;
|
|
5564
5565
|
declare const defaultRouteActivationResolver: RouteActivationResolver;
|
|
5565
5566
|
type RouteEntry =
|
|
5566
5567
|
| {
|
|
@@ -5642,9 +5643,9 @@ declare class Router {
|
|
|
5642
5643
|
//#endregion
|
|
5643
5644
|
//#region src/core/activation.d.ts
|
|
5644
5645
|
type ContextRouteActivationByScene = Partial<
|
|
5645
|
-
Record<IncomingMessage['message_scene'] | 'default',
|
|
5646
|
+
Record<IncomingMessage['message_scene'] | 'default', RouteActivationInput>
|
|
5646
5647
|
>;
|
|
5647
|
-
type ContextRouteActivation =
|
|
5648
|
+
type ContextRouteActivation = RouteActivationInput | ContextRouteActivationByScene;
|
|
5648
5649
|
interface ContextRouteActivationMatcher {
|
|
5649
5650
|
type?: RouteDescriptor['type'] | readonly RouteDescriptor['type'][];
|
|
5650
5651
|
plugin?: string | readonly string[];
|
|
@@ -5956,6 +5957,7 @@ export {
|
|
|
5956
5957
|
Plugin,
|
|
5957
5958
|
RawPattern,
|
|
5958
5959
|
RouteActivation,
|
|
5960
|
+
RouteActivationInput,
|
|
5959
5961
|
RouteActivationResolver,
|
|
5960
5962
|
RouteBranch,
|
|
5961
5963
|
RouteDescriptor,
|
package/dist/index.mjs
CHANGED
|
@@ -316,7 +316,7 @@ var Router = class Router {
|
|
|
316
316
|
for (const branch of this.branchesFrom(session, [], { includeHidden: true })) {
|
|
317
317
|
const descriptor = this.describeBranch(branch);
|
|
318
318
|
const activations = this.activationResolver(descriptor, session) ?? DEFAULT_ACTIVATIONS;
|
|
319
|
-
for (const activation of activations) {
|
|
319
|
+
for (const activation of routeActivationInputs(activations)) {
|
|
320
320
|
const tokenizer = new Tokenizer(message.segments);
|
|
321
321
|
if (!this.consumeActivation(tokenizer, activation, session)) continue;
|
|
322
322
|
const match = this.matchBranch(branch, tokenizer, activation);
|
|
@@ -485,6 +485,12 @@ var Router = class Router {
|
|
|
485
485
|
return params;
|
|
486
486
|
}
|
|
487
487
|
};
|
|
488
|
+
function routeActivationInputs(activations) {
|
|
489
|
+
return isRouteActivationArray(activations) ? activations : [activations];
|
|
490
|
+
}
|
|
491
|
+
function isRouteActivationArray(activations) {
|
|
492
|
+
return Array.isArray(activations);
|
|
493
|
+
}
|
|
488
494
|
//#endregion
|
|
489
495
|
//#region src/core/activation.ts
|
|
490
496
|
function createContextRouteActivationResolver(routing, fallback = defaultRouteActivationResolver) {
|
|
@@ -516,11 +522,14 @@ function isContextRouteActivationRuleArray(rules) {
|
|
|
516
522
|
return Array.isArray(rules);
|
|
517
523
|
}
|
|
518
524
|
function resolveContextRouteActivation(activation, scene) {
|
|
519
|
-
if (
|
|
525
|
+
if (isRouteActivationInput(activation)) return activation;
|
|
520
526
|
return activation[scene] ?? activation.default;
|
|
521
527
|
}
|
|
522
|
-
function
|
|
523
|
-
return Array.isArray(activation);
|
|
528
|
+
function isRouteActivationInput(activation) {
|
|
529
|
+
return Array.isArray(activation) || isRouteActivation(activation);
|
|
530
|
+
}
|
|
531
|
+
function isRouteActivation(activation) {
|
|
532
|
+
return "type" in activation;
|
|
524
533
|
}
|
|
525
534
|
function matchesContextRouteActivationRule(route, session, rule) {
|
|
526
535
|
const match = rule.match;
|