File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed
Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change 1+ import { Entry } from '../Models/entry-model' ;
2+ export function findRenderContent ( keyPaths : string , entry : Entry , render : ( content : string | string [ ] ) => ( string | string [ ] ) ) {
3+ getContent ( keyPaths . split ( "." ) , entry , render )
4+ }
5+
6+ export function getContent ( keys : string [ ] , object : any , render : ( content : string | string [ ] ) => ( string | string [ ] ) ) {
7+ if ( keys ) {
8+ const key = keys [ 0 ]
9+ if ( keys . length === 1 && object [ key ] ) {
10+ object [ key ] = render ( object [ key ] )
11+ } else if ( keys . length > 0 ) {
12+ if ( object [ key ] ) {
13+ const newKeys = keys . slice ( 1 )
14+ if ( Array . isArray ( object [ key ] ) ) {
15+ // tslint:disable-next-line: prefer-for-of
16+ for ( let i = 0 ; i < object [ key ] . length ; i ++ ) {
17+ getContent ( newKeys , object [ key ] [ i ] , render )
18+ }
19+ } else if ( typeof object [ key ] === 'object' ) {
20+ getContent ( newKeys , object [ key ] , render )
21+ }
22+ }
23+ }
24+ }
25+ }
You can’t perform that action at this time.
0 commit comments