/async-replace

Asynchronous string replace with support for async callbacks.

Primary LanguageTypeScript

async-replace Build Status

Install

npm install --save @tugrul/async-replace

Sample

const {replace} = require('@tugrul/async-replace');

const text = 'the [example.com] website is the best website but [example.org] is better one';
const pattern = /\[([^\]]+)\]/g

// concurrency limiting to avoid resource saturation
const limit = 5;

async function addStatusCode(text) {

    return replace(text, pattern, async(match, [domain]) => {
        
        const {status} = await fetch('https://' + domain);

        return '[' + domain + ' (' + status + ')]';
    }, limit);

}

// the [example.com (200)] website is the best website but [example.org (200)] is better one
addStatusCode(text).then(result => console.log(result));