New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

boring-router

Package Overview
Dependencies
Maintainers
5
Versions
108
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boring-router - npm Package Compare versions

Comparing version 0.5.4 to 0.5.6

16

bld/library/route-match/route-match.d.ts

@@ -45,2 +45,12 @@ import { IAutorunOptions, IReactionDisposer, IReactionOptions, IReactionPublic } from 'mobx';

export declare type RouteWillLeaveCallback = () => Promise<void> | void;
export declare type RouteEnterCallback = () => void;
export declare type RouteUpdateCallback = (data: RouteUpdateCallbackData) => void;
export interface RouteUpdateOptions {
traceDescendants: boolean;
}
export interface RouteUpdateEntry {
callback: RouteUpdateCallback;
options?: RouteUpdateOptions;
}
export declare type RouteLeaveCallback = () => void;
export declare type RouteAfterEnterCallback = () => void;

@@ -73,8 +83,11 @@ /**

willEnter?: RouteWillEnterCallback;
enter?: RouteEnterCallback;
afterEnter?: RouteAfterEnterCallback;
beforeUpdate?: RouteBeforeUpdateCallback<TRouteMatch>;
willUpdate?: RouteWillUpdateCallback<TRouteMatch>;
update?: RouteUpdateCallback;
afterUpdate?: RouteAfterUpdateCallback;
beforeLeave?: RouteBeforeLeaveCallback;
willLeave?: RouteWillLeaveCallback;
leave?: RouteLeaveCallback;
afterLeave?: RouteAfterLeaveCallback;

@@ -117,2 +130,5 @@ } & RouteServiceExtension<TRouteMatch>;

$willLeave(callback: RouteWillLeaveCallback): RouteHookRemovalCallback;
$enter(callback: RouteEnterCallback): RouteHookRemovalCallback;
$update(callback: RouteUpdateCallback, options?: RouteUpdateOptions): RouteHookRemovalCallback;
$leave(callback: RouteLeaveCallback): RouteHookRemovalCallback;
$afterEnter(callback: RouteAfterEnterCallback): RouteHookRemovalCallback;

@@ -119,0 +135,0 @@ $afterUpdate(callback: RouteAfterUpdateCallback, options?: RouteAfterUpdateOptions): RouteHookRemovalCallback;

116

bld/library/route-match/route-match.js

@@ -66,2 +66,23 @@ "use strict";

/** @internal */
Object.defineProperty(this, "_enterCallbackSet", {
enumerable: true,
configurable: true,
writable: true,
value: new Set()
});
/** @internal */
Object.defineProperty(this, "_updateEntrySet", {
enumerable: true,
configurable: true,
writable: true,
value: new Set()
});
/** @internal */
Object.defineProperty(this, "_leaveCallbackSet", {
enumerable: true,
configurable: true,
writable: true,
value: new Set()
});
/** @internal */
Object.defineProperty(this, "_afterEnterCallbackSet", {

@@ -134,5 +155,12 @@ enumerable: true,

let service = this.$matched ? this._service : undefined;
return service && key in service
? service[key]
: extension[key];
if (service && key in service) {
let value = service[key];
if (typeof value === 'function') {
value = value.bind(service);
}
return value;
}
else {
return extension[key];
}
},

@@ -192,2 +220,24 @@ });

}
$enter(callback) {
this._enterCallbackSet.add(callback);
return () => {
this._enterCallbackSet.delete(callback);
};
}
$update(callback, options) {
let updateEntry = {
callback,
options,
};
this._updateEntrySet.add(updateEntry);
return () => {
this._updateEntrySet.delete(updateEntry);
};
}
$leave(callback) {
this._leaveCallbackSet.add(callback);
return () => {
this._leaveCallbackSet.delete(callback);
};
}
$afterEnter(callback) {

@@ -494,2 +544,36 @@ this._afterEnterCallbackSet.add(callback);

/** @internal */
_enter() {
for (let callback of this._enterCallbackSet) {
(0, _utils_1.tolerate)(callback);
}
let service = this._getServiceSync();
if (service && service.enter) {
return (0, _utils_1.tolerate)(() => service.enter());
}
}
/** @internal */
_update(triggeredByDescendants) {
var _a;
for (let { options, callback } of this._updateEntrySet) {
if (triggeredByDescendants && !((_a = options === null || options === void 0 ? void 0 : options.traceDescendants) !== null && _a !== void 0 ? _a : false)) {
continue;
}
(0, _utils_1.tolerate)(callback, { descendants: triggeredByDescendants });
}
let service = this._getServiceSync();
if (service && service.update) {
return (0, _utils_1.tolerate)(() => service.update({ descendants: triggeredByDescendants }));
}
}
/** @internal */
_leave() {
for (let callback of this._leaveCallbackSet) {
(0, _utils_1.tolerate)(callback);
}
let service = this._getServiceSync();
if (service && service.leave) {
(0, _utils_1.tolerate)(() => service.leave());
}
}
/** @internal */
async _afterLeave() {

@@ -573,2 +657,28 @@ for (let callback of this._afterLeaveCallbackSet) {

}
/** @internal */
_getServiceSync() {
let service = this._service;
if (service) {
return service;
}
if (this._servicePromise) {
throw new Error(`Service of route ${this.$name} is not ready: either use synchronous service factory or make sure the service is ready earlier`);
}
let factory = this._serviceFactory;
if (!factory) {
return undefined;
}
let output = (0, _utils_1.tolerate)(factory, this);
if (output instanceof Promise) {
this._servicePromise = output.then(service => {
this._service = service;
return service;
});
throw new Error(`Service of route ${this.$name} is not ready: either use synchronous service factory or make sure the service is ready earlier`);
}
else {
this._service = output;
return output;
}
}
}

@@ -575,0 +685,0 @@ Object.defineProperty(RouteMatch, "SEGMENT", {

@@ -198,3 +198,3 @@ "use strict";

await Promise.all(interUpdateDataArray.map(data => this._willUpdate(data)));
this._update(generalGroups);
this._update(generalGroups, interUpdateDataArray);
this._snapshot = nextSnapshot;

@@ -367,3 +367,3 @@ await Promise.all(interUpdateDataArray.map(data => this._afterUpdate(data)));

/** @internal */
_update(generalGroups) {
_update(generalGroups, dataArray) {
let source = this._source;

@@ -383,2 +383,16 @@ let matchingSource = this._matchingSource;

}
for (let { reversedLeavingMatches, enteringAndUpdatingMatchSet, previousMatchSet, descendantUpdatingMatchSet, } of dataArray) {
for (let match of reversedLeavingMatches) {
match._leave();
}
for (let match of enteringAndUpdatingMatchSet) {
let update = previousMatchSet.has(match);
if (update) {
match._update(descendantUpdatingMatchSet.has(match));
}
else {
match._enter();
}
}
}
}

@@ -385,0 +399,0 @@ /** @internal */

5

package.json
{
"name": "boring-router",
"version": "0.5.4",
"version": "0.5.6",
"description": "A type-safe MobX router with parallel routing support.",

@@ -36,4 +36,3 @@ "license": "MIT",

"tslib": "^2.3.1"
},
"gitHead": "7dd3171add1618777dfbb69ad45c90997ccfa105"
}
}

@@ -111,2 +111,23 @@ import {

// enter //
export type RouteEnterCallback = () => void;
// update //
export type RouteUpdateCallback = (data: RouteUpdateCallbackData) => void;
export interface RouteUpdateOptions {
traceDescendants: boolean;
}
export interface RouteUpdateEntry {
callback: RouteUpdateCallback;
options?: RouteUpdateOptions;
}
// leave //
export type RouteLeaveCallback = () => void;
// after enter //

@@ -200,8 +221,11 @@

willEnter?: RouteWillEnterCallback;
enter?: RouteEnterCallback;
afterEnter?: RouteAfterEnterCallback;
beforeUpdate?: RouteBeforeUpdateCallback<TRouteMatch>;
willUpdate?: RouteWillUpdateCallback<TRouteMatch>;
update?: RouteUpdateCallback;
afterUpdate?: RouteAfterUpdateCallback;
beforeLeave?: RouteBeforeLeaveCallback;
willLeave?: RouteWillLeaveCallback;
leave?: RouteLeaveCallback;
afterLeave?: RouteAfterLeaveCallback;

@@ -295,2 +319,11 @@ } & RouteServiceExtension<TRouteMatch>;

/** @internal */
private _enterCallbackSet = new Set<RouteEnterCallback>();
/** @internal */
private _updateEntrySet = new Set<RouteUpdateEntry>();
/** @internal */
private _leaveCallbackSet = new Set<RouteLeaveCallback>();
/** @internal */
private _afterEnterCallbackSet = new Set<RouteAfterEnterCallback>();

@@ -340,5 +373,13 @@

return service && key in (service as any)
? (service as any)[key]
: (extension as any)[key];
if (service && key in service) {
let value = (service as any)[key];
if (typeof value === 'function') {
value = value.bind(service);
}
return value;
} else {
return (extension as any)[key];
}
},

@@ -423,2 +464,34 @@ });

$enter(callback: RouteEnterCallback): RouteHookRemovalCallback {
this._enterCallbackSet.add(callback);
return () => {
this._enterCallbackSet.delete(callback);
};
}
$update(
callback: RouteUpdateCallback,
options?: RouteUpdateOptions,
): RouteHookRemovalCallback {
let updateEntry: RouteUpdateEntry = {
callback,
options,
};
this._updateEntrySet.add(updateEntry);
return () => {
this._updateEntrySet.delete(updateEntry);
};
}
$leave(callback: RouteLeaveCallback): RouteHookRemovalCallback {
this._leaveCallbackSet.add(callback);
return () => {
this._leaveCallbackSet.delete(callback);
};
}
$afterEnter(callback: RouteAfterEnterCallback): RouteHookRemovalCallback {

@@ -851,2 +924,47 @@ this._afterEnterCallbackSet.add(callback);

/** @internal */
_enter(): void {
for (let callback of this._enterCallbackSet) {
tolerate(callback);
}
let service = this._getServiceSync();
if (service && service.enter) {
return tolerate(() => service!.enter!());
}
}
/** @internal */
_update(triggeredByDescendants: boolean): void {
for (let {options, callback} of this._updateEntrySet) {
if (triggeredByDescendants && !(options?.traceDescendants ?? false)) {
continue;
}
tolerate(callback, {descendants: triggeredByDescendants});
}
let service = this._getServiceSync();
if (service && service.update) {
return tolerate(() =>
service!.update!({descendants: triggeredByDescendants}),
);
}
}
/** @internal */
_leave(): void {
for (let callback of this._leaveCallbackSet) {
tolerate(callback);
}
let service = this._getServiceSync();
if (service && service.leave) {
tolerate(() => service!.leave!());
}
}
/** @internal */
async _afterLeave(): Promise<void> {

@@ -960,4 +1078,41 @@ for (let callback of this._afterLeaveCallbackSet) {

/** @internal */
private _getServiceSync(): IRouteService | undefined {
let service = this._service;
if (service) {
return service;
}
if (this._servicePromise) {
throw new Error(
`Service of route ${this.$name} is not ready: either use synchronous service factory or make sure the service is ready earlier`,
);
}
let factory = this._serviceFactory;
if (!factory) {
return undefined;
}
let output = tolerate(factory, this);
if (output instanceof Promise) {
this._servicePromise = output.then(service => {
this._service = service;
return service;
});
throw new Error(
`Service of route ${this.$name} is not ready: either use synchronous service factory or make sure the service is ready earlier`,
);
} else {
this._service = output;
return output;
}
}
static SEGMENT = /[^/]+/;
static REST = /.*/;
}

@@ -564,3 +564,3 @@ import hyphenate from 'hyphenate';

this._update(generalGroups);
this._update(generalGroups, interUpdateDataArray as InterUpdateData[]);

@@ -708,3 +708,6 @@ this._snapshot = nextSnapshot;

@action
private _update(generalGroups: (string | undefined)[]): void {
private _update(
generalGroups: (string | undefined)[],
dataArray: InterUpdateData[],
): void {
let source = this._source;

@@ -729,2 +732,23 @@ let matchingSource = this._matchingSource;

}
for (let {
reversedLeavingMatches,
enteringAndUpdatingMatchSet,
previousMatchSet,
descendantUpdatingMatchSet,
} of dataArray) {
for (let match of reversedLeavingMatches) {
match._leave();
}
for (let match of enteringAndUpdatingMatchSet) {
let update = previousMatchSet.has(match);
if (update) {
match._update(descendantUpdatingMatchSet.has(match));
} else {
match._enter();
}
}
}
}

@@ -731,0 +755,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc