@-0/browser
Advanced tools
Comparing version 0.3.28 to 0.3.29
@@ -7,6 +7,7 @@ import { CMD_SUB$, CMD_ARGS, CMD_WORK, STATE_DATA, STATE_PATH } from "@-0/keys"; | ||
[CMD_SUB$]: sub$, | ||
[CMD_ARGS]: x => x, | ||
[CMD_WORK]: args => { | ||
const path = args[STATE_PATH]; | ||
const data = args[STATE_DATA]; | ||
[CMD_ARGS]: ({ [STATE_PATH]: path, [STATE_DATA]: data }) => ({ | ||
[STATE_PATH]: path, | ||
[STATE_DATA]: data, | ||
}), | ||
[CMD_WORK]: ({ [STATE_PATH]: path, [STATE_DATA]: data }) => { | ||
const props = { | ||
@@ -18,5 +19,5 @@ [STATE_PATH]: path, | ||
return set$$tate(path, data, store); | ||
console.warn(Err_missing_props("_SET_STATE", props)); | ||
console.warn(Err_missing_props(sub$, props)); | ||
}, | ||
}); | ||
export const SET_STATE = createSetStateCMD(); |
import { Command, Router, RouterCFG } from "@-0/keys"; | ||
export declare const registerRouterDOM: (CFG: Router | RouterCFG) => Command; | ||
export declare const registerRouterDOM: (CFG: Router | RouterCFG, store?: import("@thi.ng/atom").Atom<{ | ||
$$_PATH: any[]; | ||
$$_LOAD: boolean; | ||
$$_VIEW: any; | ||
$$_ROOT: any; | ||
}>) => [Command, Command]; |
@@ -6,5 +6,6 @@ import { DOM_NODE, URL_FULL, CMD_SUB$, CMD_ARGS, CMD_SRC$, CMD_WORK, URL_PATH, } from "@-0/keys"; | ||
import { DOMnavigated$ } from "../core"; | ||
export const registerRouterDOM = (CFG) => { | ||
import { $store$ } from "../store"; | ||
export const registerRouterDOM = (CFG, store = $store$) => { | ||
console.log("DOM Router Registered"); | ||
const routing_task = __DOM_URL__ROUTE(CFG); | ||
const [ROUTE_HOT, SET_STATE] = __DOM_URL__ROUTE(CFG, store); | ||
const { [CMD_SUB$]: sub$, [CMD_ARGS]: args } = registerCMD({ | ||
@@ -25,10 +26,7 @@ [CMD_SRC$]: DOMnavigated$, | ||
if (url) | ||
return run$.next(routing_task(props)); | ||
return run$.next(ROUTE_HOT(props)); | ||
console.warn(Err_missing_props("_NAVIGATE (from registerRouterDOM)", props)); | ||
}, | ||
}); | ||
return { | ||
[CMD_SUB$]: sub$, | ||
[CMD_ARGS]: args, | ||
}; | ||
return [{ [CMD_SUB$]: sub$, [CMD_ARGS]: args }, SET_STATE]; | ||
}; |
@@ -1,3 +0,13 @@ | ||
import { RouterCFG, Router, HOTask } from "@-0/keys"; | ||
export declare const __URL__ROUTE: (CFG: Router | RouterCFG) => HOTask; | ||
export declare const __DOM_URL__ROUTE: (CFG: Router | RouterCFG) => HOTask; | ||
import { RouterCFG, Router, HOTask, Command } from "@-0/keys"; | ||
export declare const __URL__ROUTE: (CFG: Router | RouterCFG, store?: import("@thi.ng/atom").Atom<{ | ||
$$_PATH: any[]; | ||
$$_LOAD: boolean; | ||
$$_VIEW: any; | ||
$$_ROOT: any; | ||
}>) => [HOTask, Command]; | ||
export declare const __DOM_URL__ROUTE: (CFG: Router | RouterCFG, store?: import("@thi.ng/atom").Atom<{ | ||
$$_PATH: any[]; | ||
$$_LOAD: boolean; | ||
$$_VIEW: any; | ||
$$_ROOT: any; | ||
}>) => [HOTask, Command]; |
import { isPlainObject } from "@thi.ng/checks"; | ||
import { _HREF_PUSHSTATE_DOM, SET_STATE, _NOTIFY_PRERENDER_DOM, _SET_LINK_ATTRS_DOM } from "../commands"; | ||
import { $$_VIEW, $$_LOAD, $$_PATH, DOM_NODE, URL_FULL, URL_DATA, URL_PATH, URL_PAGE, RTR_PREP, RTR_POST, RTR_PRFX, CFG_RUTR, CMD_ARGS, CMD_RESO, CMD_ERRO, DOM_BODY, STATE_DATA, STATE_PATH, } from "@-0/keys"; | ||
import { _HREF_PUSHSTATE_DOM, _NOTIFY_PRERENDER_DOM, _SET_LINK_ATTRS_DOM, createSetStateCMD, } from "../commands"; | ||
import { $$_VIEW, $$_LOAD, $$_PATH, DOM_NODE, URL_FULL, URL_DATA, URL_PATH, URL_PAGE, RTR_PREP, RTR_POST, RTR_PRFX, CFG_RUTR, CMD_ARGS, CMD_RESO, CMD_ERRO, DOM_BODY, STATE_DATA, STATE_PATH, CMD_SUB$, } from "@-0/keys"; | ||
import { URL2obj } from "@-0/utils"; | ||
const _SET_ROUTE_PATH = Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: _acc => ({ | ||
[STATE_DATA]: _acc[URL_PATH], | ||
[STATE_PATH]: [$$_PATH], | ||
}) }); | ||
import { $store$ } from "../store"; | ||
import { out$ } from "@-0/spool"; | ||
const route_error = (_acc, _err, _out) => console.warn("Error in URL__ROUTE:", _err); | ||
const e_s = `Prerequisite property: { ${CMD_ARGS}: { ${URL_FULL}: NOT FOUND 🔥 } }`; | ||
export const __URL__ROUTE = (CFG) => { | ||
export const __URL__ROUTE = (CFG, store = $store$) => { | ||
const rtr = CFG[CFG_RUTR] || null; | ||
@@ -22,3 +20,16 @@ const pre = CFG[RTR_PREP] || null; | ||
const prefix = pfx ? new RegExp(escaped(pfx), "g") : null; | ||
const subtask = (ACC) => [ | ||
const SET_STATE = out$.topics.has("_SET_STATE") | ||
? { | ||
[CMD_SUB$]: "_SET_STATE", | ||
[CMD_ARGS]: ({ [STATE_PATH]: path, [STATE_DATA]: data }) => ({ | ||
[STATE_PATH]: path, | ||
[STATE_DATA]: data, | ||
}), | ||
} | ||
: createSetStateCMD(store); | ||
const _SET_ROUTE_PATH = Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: _acc => ({ | ||
[STATE_DATA]: _acc[URL_PATH], | ||
[STATE_PATH]: [$$_PATH], | ||
}) }); | ||
const ROUTE_SUBTASK = (ACC) => [ | ||
..._PREP, | ||
@@ -37,12 +48,12 @@ { | ||
]; | ||
return subtask; | ||
return [ROUTE_SUBTASK, SET_STATE]; | ||
}; | ||
const _SET_ROUTE_LOADING_TRUE = Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: { [STATE_PATH]: [$$_LOAD], [STATE_DATA]: true } }); | ||
const _SET_ROUTE_LOADING_FALSE = Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: { [STATE_PATH]: [$$_LOAD], [STATE_DATA]: false } }); | ||
export const __DOM_URL__ROUTE = (CFG) => { | ||
const match = __URL__ROUTE(CFG); | ||
const subtask = (ACC) => [ | ||
export const __DOM_URL__ROUTE = (CFG, store = $store$) => { | ||
const [route_subtask, SET_STATE] = __URL__ROUTE(CFG, store); | ||
const _SET_ROUTE_LOADING_TRUE = Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: { [STATE_PATH]: [$$_LOAD], [STATE_DATA]: true } }); | ||
const _SET_ROUTE_LOADING_FALSE = Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: { [STATE_PATH]: [$$_LOAD], [STATE_DATA]: false } }); | ||
const ROUTE_HOT = (ACC) => [ | ||
_SET_ROUTE_LOADING_TRUE, | ||
Object.assign(Object.assign({}, _HREF_PUSHSTATE_DOM), { [CMD_ARGS]: { [URL_FULL]: ACC[URL_FULL], [DOM_NODE]: ACC[DOM_NODE] } }), | ||
ACC => match({ [URL_FULL]: ACC[URL_FULL] }), | ||
ACC => route_subtask({ [URL_FULL]: ACC[URL_FULL] }), | ||
Object.assign(Object.assign({}, SET_STATE), { [CMD_ARGS]: acc => ({ | ||
@@ -64,3 +75,3 @@ [STATE_PATH]: [$$_VIEW], | ||
]; | ||
return subtask; | ||
return [ROUTE_HOT, SET_STATE]; | ||
}; |
@@ -5,3 +5,3 @@ { | ||
"license": "MIT", | ||
"version": "0.3.28", | ||
"version": "0.3.29", | ||
"description": "Browser helpers for -0 state management, routing and the interaction between", | ||
@@ -35,5 +35,5 @@ "main": "./lib/index.js", | ||
"dependencies": { | ||
"@-0/keys": "^0.3.29", | ||
"@-0/utils": "^0.3.29", | ||
"@-0/spool": "^0.3.25", | ||
"@-0/keys": "^0.3.30", | ||
"@-0/utils": "^0.3.30", | ||
"@-0/spool": "^0.3.26", | ||
"@thi.ng/paths": "^4.2.13", | ||
@@ -40,0 +40,0 @@ "@thi.ng/rstream": "^6.0.20" |
47583
558
Updated@-0/keys@^0.3.30
Updated@-0/spool@^0.3.26
Updated@-0/utils@^0.3.30