@real-router/preload-plugin 0.4.3 → 0.4.4

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/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@real-router/core/api`);const t={delay:65,networkAware:!0},n={capture:!0,passive:!0};function r(){let e=navigator.connection;return e?!!(e.saveData||e.effectiveType?.includes(`2g`)):!1}var i=class{#e;#t;#n;#r;#i;#a=new Map;#o=new Map;#s=null;#c=null;#l=null;#u=0;#d=null;#f=NaN;constructor(e,t,n,r){this.#e=e,this.#t=t,this.#n=n,this.#r=r;let i={...n};this.#i=t.extendRouter({getPreloadSettings:()=>i,getPreloadedState:e=>{let t=this.#o.get(e);return t&&this.#o.delete(e),t}})}getPlugin(){return{onStart:()=>{document.addEventListener(`mouseover`,this.#p,n),document.addEventListener(`touchstart`,this.#m,n),document.addEventListener(`touchmove`,this.#h,n)},onStop:()=>{this.#C()},teardown:()=>{this.#C(),this.#i()}}}#p=e=>{if(this.#b(e))return;let t=this.#g(e.target);if(t===this.#s)return;this.#x(),this.#s=t;let n=this.#_(t);n&&(this.#c=setTimeout(()=>{this.#c=null,n.fn(n.params).catch(()=>{})},this.#n.delay))};#m=e=>{this.#d=e.target,this.#f=e.timeStamp,this.#S();let t=this.#g(e.target),n=this.#_(t);!n||e.touches.length===0||(this.#u=e.touches[0].clientY,this.#l=setTimeout(()=>{this.#l=null,n.fn(n.params).catch(()=>{})},100))};#h=e=>{this.#l===null||e.touches.length===0||Math.abs(e.touches[0].clientY-this.#u)>10&&this.#S()};#g(e){return e instanceof Element?e.closest(`a[href]`):null}#_(e){if(e&&!(`noPreload`in e.dataset)&&!(this.#n.networkAware&&r()))return this.#v(e)}#v(e){let t=this.#e.matchUrl?.(e.href);if(!t)return;this.#y(e.href,t);let n=this.#t.getRouteConfig(t.name),r=typeof n?.preload==`function`?n.preload:void 0;if(!r){this.#a.delete(t.name);return}let i=this.#a.get(t.name);if(i?.factory===r)return{fn:i.fn,params:t.params};let a;try{a=r(this.#e,this.#r)}catch{return}return this.#a.set(t.name,{fn:a,factory:r}),{fn:a,params:t.params}}#y(e,t){if(this.#o.has(e))this.#o.delete(e);else if(this.#o.size>=32)for(let e of this.#o.keys()){this.#o.delete(e);break}this.#o.set(e,t)}#b(e){let t=e.timeStamp-this.#f;return t>=0&&t<2500&&e.target===this.#d}#x(){this.#c!==null&&(clearTimeout(this.#c),this.#c=null),this.#s=null}#S(){this.#l!==null&&(clearTimeout(this.#l),this.#l=null)}#C(){document.removeEventListener(`mouseover`,this.#p,n),document.removeEventListener(`touchstart`,this.#m,n),document.removeEventListener(`touchmove`,this.#h,n),this.#x(),this.#S(),this.#d=null,this.#f=NaN,this.#o.clear()}};function a(n){let r={...t,...n};return(!Number.isFinite(r.delay)||r.delay<0)&&(r.delay=0),function(t,n){return typeof document>`u`?{}:new i(t,(0,e.getPluginApi)(t),r,n).getPlugin()}}exports.preloadPluginFactory=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@real-router/core/api");const t={delay:65,networkAware:!0},n={capture:!0,passive:!0};function r(){let e=navigator.connection;return e?!!(e.saveData||e.effectiveType?.includes(`2g`)):!1}var i=class{#e;#t;#n;#r;#i;#a=new Map;#o=new Map;#s=null;#c=null;#l=null;#u=0;#d=null;#f=NaN;constructor(e,t,n,r){this.#e=e,this.#t=t,this.#n=n,this.#r=r;let i={...n};this.#i=t.extendRouter({getPreloadSettings:()=>i,getPreloadedState:e=>{let t=this.#o.get(e);return t&&this.#o.delete(e),t}})}getPlugin(){return{onStart:()=>{document.addEventListener(`mouseover`,this.#p,n),document.addEventListener(`touchstart`,this.#m,n),document.addEventListener(`touchmove`,this.#h,n)},onStop:()=>{this.#C()},teardown:()=>{this.#C(),this.#i()}}}#p=e=>{if(this.#b(e))return;let t=this.#g(e.target);if(t===this.#s)return;this.#x(),this.#s=t;let n=this.#_(t);n&&(this.#c=setTimeout(()=>{this.#c=null,n.fn(n.params).catch(()=>{})},this.#n.delay))};#m=e=>{this.#d=e.target,this.#f=e.timeStamp,this.#S();let t=this.#g(e.target),n=this.#_(t);!n||e.touches.length===0||(this.#u=e.touches[0].clientY,this.#l=setTimeout(()=>{this.#l=null,n.fn(n.params).catch(()=>{})},100))};#h=e=>{this.#l===null||e.touches.length===0||Math.abs(e.touches[0].clientY-this.#u)>10&&this.#S()};#g(e){return e instanceof Element?e.closest(`a[href]`):null}#_(e){if(e&&!(`noPreload`in e.dataset)&&!(this.#n.networkAware&&r()))return this.#v(e)}#v(e){let t=this.#e.matchUrl?.(e.href);if(!t)return;this.#y(e.href,t);let n=this.#t.getRouteConfig(t.name),r=typeof n?.preload==`function`?n.preload:void 0;if(!r){this.#a.delete(t.name);return}let i=this.#a.get(t.name);if(i?.factory===r)return{fn:i.fn,params:t.params};let a;try{a=r(this.#e,this.#r)}catch{return}return this.#a.set(t.name,{fn:a,factory:r}),{fn:a,params:t.params}}#y(e,t){if(this.#o.has(e))this.#o.delete(e);else if(this.#o.size>=32)for(let e of this.#o.keys()){this.#o.delete(e);break}this.#o.set(e,t)}#b(e){let t=e.timeStamp-this.#f;return t>=0&&t<2500&&e.target===this.#d}#x(){this.#c!==null&&(clearTimeout(this.#c),this.#c=null),this.#s=null}#S(){this.#l!==null&&(clearTimeout(this.#l),this.#l=null)}#C(){document.removeEventListener(`mouseover`,this.#p,n),document.removeEventListener(`touchstart`,this.#m,n),document.removeEventListener(`touchmove`,this.#h,n),this.#x(),this.#S(),this.#d=null,this.#f=NaN,this.#o.clear()}};function a(n){let r={...t,...n};return(!Number.isFinite(r.delay)||r.delay<0)&&(r.delay=0),function(t,n){return typeof document>`u`?{}:new i(t,(0,e.getPluginApi)(t),r,n).getPlugin()}}exports.preloadPluginFactory=a;
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@real-router/preload-plugin",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "type": "commonjs",
5
5
  "description": "Preload plugin — trigger data preloading on navigation intent (hover, touch)",
6
6
  "main": "./dist/cjs/index.js",
@@ -45,11 +45,11 @@
45
45
  },
46
46
  "sideEffects": false,
47
47
  "dependencies": {
48
- "@real-router/core": "^0.54.1",
48
+ "@real-router/core": "^0.55.0",
49
49
  "@real-router/types": "^0.35.0"
50
50
  },
51
51
  "devDependencies": {
52
- "jsdom": "28.1.0"
52
+ "jsdom": "29.1.1"
53
53
  },
54
54
  "scripts": {
55
55
  "test": "vitest",