1
- import { is , keys , omit , path , map , zipObj , reverse , head , tail , init , last , propOr , findIndex , mergeRight , concat } from 'ramda' ;
1
+ import { is , keys , omit , path , map , reverse , head , tail , init , last , propOr , findIndex , mergeRight , concat } from 'ramda' ;
2
2
import NP from 'number-precision' ;
3
3
import Prando from 'prando' ;
4
4
@@ -2731,6 +2731,25 @@ var subInWD = function (localWD, words) {
2731
2731
var resolveWord = consReslover ( localWD ) ;
2732
2732
return map ( resolveWord , words ) ;
2733
2733
} ;
2734
+ var deepZipObj = function ( n , s ) {
2735
+ if ( ! n . length || ! s . length ) {
2736
+ return { } ;
2737
+ }
2738
+ var name = n . pop ( ) ;
2739
+ if ( is ( String , name ) ) {
2740
+ var value = s . pop ( ) ;
2741
+ var def = { } ;
2742
+ def [ name ] = value ;
2743
+ return __assign ( __assign ( { } , deepZipObj ( n , s ) ) , def ) ;
2744
+ }
2745
+ if ( is ( Array , name ) ) {
2746
+ var value = s . pop ( ) ;
2747
+ if ( is ( Array , name ) ) {
2748
+ return __assign ( __assign ( { } , deepZipObj ( n , s ) ) , deepZipObj ( name , value ) ) ;
2749
+ }
2750
+ }
2751
+ return null ;
2752
+ } ;
2734
2753
var coreWords = {
2735
2754
'words' : {
2736
2755
compose : function ( s ) {
@@ -3392,15 +3411,17 @@ var coreWords = {
3392
3411
return [ s , pl ] ;
3393
3412
}
3394
3413
} ,
3395
- // binds names to stack values within one phrase of words
3414
+ // binds names to stack values within a phrase of words
3396
3415
'crouch' : {
3397
3416
dt : '[[[S+]F][F]]' ,
3398
3417
compose : function ( s , pl ) {
3399
3418
var words = toPLOrNull ( s === null || s === void 0 ? void 0 : s . pop ( ) ) ;
3400
3419
var argList = toArrOfStrOrNull ( s === null || s === void 0 ? void 0 : s . pop ( ) ) ;
3401
3420
if ( words !== null && argList ) {
3402
3421
var values = map ( function ( ) { return s === null || s === void 0 ? void 0 : s . pop ( ) ; } , argList ) ;
3403
- var localWD = zipObj ( reverse ( argList ) , values ) ;
3422
+ // const localWD: { [index: string]: Word } =
3423
+ // r.zipObj(r.flatten(r.reverse(argList)), r.flatten(values));
3424
+ var localWD = deepZipObj ( reverse ( argList ) , values ) ;
3404
3425
var newWords = toPLOrNull ( subInWD ( localWD , words ) ) ;
3405
3426
if ( newWords ) {
3406
3427
s . push ( newWords ) ;
@@ -3416,7 +3437,9 @@ var coreWords = {
3416
3437
var argList = toArrOfStrOrNull ( s === null || s === void 0 ? void 0 : s . pop ( ) ) ;
3417
3438
if ( words !== null && argList ) {
3418
3439
var values = map ( function ( ) { return s === null || s === void 0 ? void 0 : s . pop ( ) ; } , argList ) ;
3419
- var localWD = zipObj ( reverse ( argList ) , values ) ;
3440
+ // const localWD: { [index: string]: Word } =
3441
+ // r.zipObj(r.flatten(r.reverse(argList)), r.flatten(values));
3442
+ var localWD = deepZipObj ( reverse ( argList ) , values ) ;
3420
3443
var newWords = toPLOrNull ( subInWD ( localWD , words ) ) ;
3421
3444
if ( newWords ) {
3422
3445
pl = newWords . concat ( pl ) ;
0 commit comments