1- import { BlockMode } from '../../ types/interfaces' ;
1+ import { BlockMode } from '../types/interfaces' ;
22
33export default ( line : string ) : [ 'request' | 'req' , BlockMode , string ?] => {
44 const matches = [ ] ;
55 const cases = {
6+ SPACES : 0 ,
67 SCOPE : 0 ,
78 CURVE_SCOPE : 0 ,
89 QUOTE : 0 ,
@@ -11,6 +12,9 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
1112 DOTS : 0 ,
1213 COMMAS : 0
1314 } ;
15+ const caseSum = ( ) : number =>
16+ Object . values ( cases ) . reduce ( ( acc , n ) => acc + n , 0 ) ;
17+ let pointer = 0 ;
1418
1519 let rebuild = '' ;
1620 for ( const char of line ) {
@@ -19,19 +23,25 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
1923 cases . SCOPE ++ ;
2024
2125 rebuild += char ;
26+
27+ pointer ++ ;
2228 break ;
2329 }
2430 case "'" :
2531 case '"' : {
2632 cases . QUOTE ++ ;
2733
2834 rebuild += char ;
35+
36+ pointer ++ ;
2937 break ;
3038 }
3139 case '{' : {
3240 cases . CURVE_SCOPE ++ ;
3341
3442 rebuild += char ;
43+
44+ pointer ++ ;
3545 break ;
3646 }
3747 case ')' : {
@@ -41,6 +51,8 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
4151 } else {
4252 // rebuild = '';
4353 }
54+
55+ pointer ++ ;
4456 break ;
4557 }
4658 case '}' : {
@@ -52,16 +64,22 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
5264 rebuild = '' ;
5365 }
5466 }
67+
68+ pointer ++ ;
5569 break ;
5670 }
5771 case ':' :
5872 case '=' : {
59- cases . ENDLINES ++ ;
60-
61- if ( rebuild . length > 0 ) {
73+ if ( caseSum ( ) === 0 ) {
74+ rebuild = '' ;
75+ line = line . substr ( pointer + 1 ) ;
76+ } else if ( rebuild . length > 0 ) {
6277 matches . push ( rebuild ) ;
6378 rebuild = '' ;
6479 }
80+ cases . ENDLINES ++ ;
81+
82+ pointer ++ ;
6583 break ;
6684 }
6785 case '.' : {
@@ -71,6 +89,8 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
7189 matches . push ( rebuild ) ;
7290 rebuild = '' ;
7391 }
92+
93+ pointer ++ ;
7494 break ;
7595 }
7696 case ',' : {
@@ -80,9 +100,14 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
80100 matches . push ( rebuild ) ;
81101 rebuild = '' ;
82102 }
103+
104+ pointer ++ ;
83105 break ;
84106 }
85107 case ' ' : {
108+ cases . SPACES ++ ;
109+
110+ pointer ++ ;
86111 break ;
87112 }
88113 case ';' : {
@@ -94,11 +119,14 @@ export default (line: string): ['request' | 'req', BlockMode, string?] => {
94119 rebuild = '' ;
95120 }
96121 }
122+
123+ pointer ++ ;
97124 break ;
98125 }
99126 default : {
100127 rebuild += char ;
101128
129+ pointer ++ ;
102130 break ;
103131 }
104132 }
0 commit comments