deno.land / x / rambda@v9.1.1 / source / interpolate.js

interpolate.js
نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const getOccurrences = input => input.match(/{{\s*.+?\s*}}/g)
const getOccurrenceProp = occurrence => occurrence.replace(/{{\s*|\s*}}/g, '')
const replace = ({ inputHolder, prop, replacer }) => { const regexBase = `{{${ prop }}}` const regex = new RegExp(regexBase, 'g')
return inputHolder.replace(regex, replacer)}
export function interpolate(input, templateInput){ if (arguments.length === 1){ return _templateInput => interpolate(input, _templateInput) }
const occurrences = getOccurrences(input) if (occurrences === null) return input let inputHolder = input
for (const occurrence of occurrences){ const prop = getOccurrenceProp(occurrence)
inputHolder = replace({ inputHolder, prop, replacer : templateInput[ prop ], }) }
return inputHolder}
rambda

Version Info

Tagged at
2 months ago