Reputation: 1761
I have some formatting functions that should be applied on some strings:
const limitSize = (limit: number): ((str: string) => string) => {
return (str: string) => str.substring(0, limit)
}
const replaceNewLine = (replaceWith: string): ((str: string) => string) => {
return (str: string) => str.replace(/\n/g, replaceWith)
}
They both return a function that can be applied on a string
How can I chain them together so that the result returns also a function that can be applied on strings?
Is there a lodash utility I'm missing?
Upvotes: 1
Views: 668
Reputation: 9475
Just create a new function definition as below:
const limitReplace = (limit: number, replaceWith: string): ((str: string) => string) => {
return str => replaceNewLine(replaceWith)(limitSize(limit)(str));
}
Used as:
const input = "Hel\nlo W\norld\n";
const limitSixReplaceSpace = limitReplace(6, " ");
const result = limitSixReplaceSpace(input); // Hel lo
Upvotes: 1