Skip to content

Commit 1bb2223

Browse files
committed
render content from keyPath
1 parent 26ee4c7 commit 1bb2223

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/helper/find-render-content.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
}

0 commit comments

Comments
 (0)