statebus 7.0.23 → 7.0.25
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/client-library.js +30 -2
- package/extras/tests.js +2 -2
- package/package.json +1 -1
- package/statebus.js +17 -13
package/client-library.js
CHANGED
|
@@ -575,7 +575,18 @@
|
|
|
575
575
|
// ================================================================
|
|
576
576
|
// React v12 Support
|
|
577
577
|
|
|
578
|
-
bus.libs.react12.
|
|
578
|
+
bus.libs.react12.reactive_dom = () => {
|
|
579
|
+
|
|
580
|
+
// The window.dom object lets the user define new react components as
|
|
581
|
+
// functions
|
|
582
|
+
window.dom = window.dom || new Proxy({}, {
|
|
583
|
+
get: function (o, k) { return o[k] },
|
|
584
|
+
set: function (o, k, v) {
|
|
585
|
+
o[k] = v
|
|
586
|
+
window[k] = make_component(k, v)
|
|
587
|
+
return true
|
|
588
|
+
}
|
|
589
|
+
})
|
|
579
590
|
|
|
580
591
|
function better_element(el) {
|
|
581
592
|
// To do:
|
|
@@ -661,7 +672,7 @@
|
|
|
661
672
|
|
|
662
673
|
make_better_input("INPUT", window.INPUT)
|
|
663
674
|
make_better_input("TEXTAREA", window.TEXTAREA)
|
|
664
|
-
make_syncarea()
|
|
675
|
+
// make_syncarea()
|
|
665
676
|
|
|
666
677
|
// Make IMG accept data from state:
|
|
667
678
|
var og_img = window.IMG
|
|
@@ -691,6 +702,23 @@
|
|
|
691
702
|
}
|
|
692
703
|
}
|
|
693
704
|
|
|
705
|
+
bus.libs.react12.coffreact = () => {
|
|
706
|
+
bus.libs.react12.reactive_dom()
|
|
707
|
+
load_coffee()
|
|
708
|
+
if (dom.BODY)
|
|
709
|
+
document.addEventListener(
|
|
710
|
+
'DOMContentLoaded',
|
|
711
|
+
() => {
|
|
712
|
+
React.render((window.Body || window.body || window.BODY)(), document.body)
|
|
713
|
+
},
|
|
714
|
+
false
|
|
715
|
+
)
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
|
|
719
|
+
// ================================================================
|
|
720
|
+
// React v17 Support
|
|
721
|
+
|
|
694
722
|
bus.libs.react17.reactive_dom = () => {
|
|
695
723
|
// The window.dom object lets the user define new react components as
|
|
696
724
|
// functions
|
package/extras/tests.js
CHANGED
|
@@ -325,7 +325,7 @@ test(function translate_fields (done) {
|
|
|
325
325
|
// Test 1
|
|
326
326
|
var tests = tests1
|
|
327
327
|
for (var i=0; i<tests.length; i++) {
|
|
328
|
-
var trans = bus.
|
|
328
|
+
var trans = bus.unescape_from_bus(tests[i][0])
|
|
329
329
|
assert(bus.deep_equals(trans, tests[i][1]),
|
|
330
330
|
'Bad translation1: ' + i + ' ' + JSON.stringify(trans))
|
|
331
331
|
}
|
|
@@ -333,7 +333,7 @@ test(function translate_fields (done) {
|
|
|
333
333
|
// Test 2
|
|
334
334
|
tests = tests2
|
|
335
335
|
for (var i=0; i<tests2.length; i++) {
|
|
336
|
-
var trans = bus.
|
|
336
|
+
var trans = bus.escape_to_bus(tests[i][0])
|
|
337
337
|
assert(bus.deep_equals(trans, tests[i][1]),
|
|
338
338
|
'Bad translation2: ' + i + ' ' + JSON.stringify(trans))
|
|
339
339
|
}
|
package/package.json
CHANGED
package/statebus.js
CHANGED
|
@@ -1343,11 +1343,11 @@
|
|
|
1343
1343
|
|
|
1344
1344
|
// Compute the new path
|
|
1345
1345
|
var new_path = path + '[' + JSON.stringify(k) + ']'
|
|
1346
|
-
return item_proxy(base, new_path, o[
|
|
1346
|
+
return item_proxy(base, new_path, o[escape_field_to_bus(k)])
|
|
1347
1347
|
},
|
|
1348
1348
|
set: function set(o, k, v) {
|
|
1349
|
-
var value = translate_fields(v, field =>
|
|
1350
|
-
o[
|
|
1349
|
+
var value = translate_fields(v, field => escape_field_to_bus(escape_field_to_nelson(field)))
|
|
1350
|
+
o[escape_field_to_bus(k)] = value
|
|
1351
1351
|
var new_path = path + '[' + JSON.stringify(k) + ']'
|
|
1352
1352
|
bus.set(
|
|
1353
1353
|
base,
|
|
@@ -1357,11 +1357,11 @@
|
|
|
1357
1357
|
return true
|
|
1358
1358
|
},
|
|
1359
1359
|
has: function has(o, k) {
|
|
1360
|
-
return o.hasOwnProperty(
|
|
1360
|
+
return o.hasOwnProperty(escape_field_to_bus(k))
|
|
1361
1361
|
},
|
|
1362
1362
|
deleteProperty: function del (o, k) {
|
|
1363
1363
|
var new_path = path + '[' + JSON.stringify(k) + ']'
|
|
1364
|
-
delete o[
|
|
1364
|
+
delete o[escape_field_to_bus(k)]
|
|
1365
1365
|
bus.set(
|
|
1366
1366
|
base,
|
|
1367
1367
|
// Forward the patch too
|
|
@@ -1372,7 +1372,7 @@
|
|
|
1372
1372
|
// For function proxies:
|
|
1373
1373
|
//
|
|
1374
1374
|
// apply: function apply (o, This, args) {
|
|
1375
|
-
// return translate_fields(o,
|
|
1375
|
+
// return translate_fields(o, unescape_field_from_bus)
|
|
1376
1376
|
// }
|
|
1377
1377
|
})}
|
|
1378
1378
|
|
|
@@ -1394,12 +1394,12 @@
|
|
|
1394
1394
|
set: function set(o, key, val) {
|
|
1395
1395
|
bus.set({
|
|
1396
1396
|
key: key,
|
|
1397
|
-
val: translate_fields(val, field =>
|
|
1397
|
+
val: translate_fields(val, field => escape_field_to_bus(escape_field_to_nelson(field)))
|
|
1398
1398
|
})
|
|
1399
1399
|
return true
|
|
1400
1400
|
},
|
|
1401
1401
|
deleteProperty: function del (o, k) {
|
|
1402
|
-
bus.delete(
|
|
1402
|
+
bus.delete(escape_field_to_bus(k))
|
|
1403
1403
|
return true // Report success to Proxy
|
|
1404
1404
|
},
|
|
1405
1405
|
// For function proxies:
|
|
@@ -1755,11 +1755,15 @@
|
|
|
1755
1755
|
// - nelSON escapes link -> _link
|
|
1756
1756
|
// - JSON
|
|
1757
1757
|
//
|
|
1758
|
-
var
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1758
|
+
var escape_field_to_bus = (field) => field.replace(/^(_*)key$/, '$1_key'),
|
|
1759
|
+
unescape_field_from_bus = (field) => field.replace(/^(_*)_key$/, '$1key'),
|
|
1760
|
+
escape_field_to_nelson = (field) => field.replace(/^(_*)link$/, '$1_link'),
|
|
1761
|
+
unescape_field_from_nelson = (field) => field.replace(/^(_*)link$/, '$1_link')
|
|
1762
|
+
|
|
1763
|
+
var escape_to_bus = (obj) => translate_fields(obj, escape_field_to_bus)
|
|
1764
|
+
unescape_from_bus = (obj) => translate_fields(obj, unescape_field_from_bus)
|
|
1765
|
+
escape_to_nelson = (obj) => translate_fields(obj, escape_field_to_nelson)
|
|
1766
|
+
unescape_from_nelson = (obj) => translate_fields(obj, unescape_field_from_nelson)
|
|
1763
1767
|
|
|
1764
1768
|
function key_id(string) { return string.match(/\/?[^\/]+\/(\d+)/)[1] }
|
|
1765
1769
|
function key_name(string) { return string.match(/\/?([^\/]+).*/)[1] }
|