File Explorer

/proc/4/root/var/lang/lib/node_modules/npm/node_modules/balanced-match/dist/esm

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

index.js1.6 KB · 54 lines
export const balanced = (a, b, str) => {    const ma = a instanceof RegExp ? maybeMatch(a, str) : a;    const mb = b instanceof RegExp ? maybeMatch(b, str) : b;    const r = ma !== null && mb != null && range(ma, mb, str);    return (r && {        start: r[0],        end: r[1],        pre: str.slice(0, r[0]),        body: str.slice(r[0] + ma.length, r[1]),        post: str.slice(r[1] + mb.length),    });};const maybeMatch = (reg, str) => {    const m = str.match(reg);    return m ? m[0] : null;};export const range = (a, b, str) => {    let begs, beg, left, right = undefined, result;    let ai = str.indexOf(a);    let bi = str.indexOf(b, ai + 1);    let i = ai;    if (ai >= 0 && bi > 0) {        if (a === b) {            return [ai, bi];        }        begs = [];        left = str.length;        while (i >= 0 && !result) {            if (i === ai) {                begs.push(i);                ai = str.indexOf(a, i + 1);            }            else if (begs.length === 1) {                const r = begs.pop();                if (r !== undefined)                    result = [r, bi];            }            else {                beg = begs.pop();                if (beg !== undefined && beg < left) {                    left = beg;                    right = bi;                }                bi = str.indexOf(b, i + 1);            }            i = ai < bi && ai >= 0 ? ai : bi;        }        if (begs.length && right !== undefined) {            result = [left, right];        }    }    return result;};//# sourceMappingURL=index.js.map