{"version":3,"file":"createStringVariations.mjs","sources":["../../src/utils/createStringVariations.ts"],"sourcesContent":["function processX(base: string, ids: string[][], depth: number, result: string[], tags: string[])\n{\n    const id = ids[depth];\n\n    for (let i = 0; i < id.length; i++)\n    {\n        const value = id[i];\n\n        if (depth < ids.length - 1)\n        {\n            processX(base.replace(result[depth], value), ids, depth + 1, result, tags);\n        }\n        else\n        {\n            tags.push(base.replace(result[depth], value));\n        }\n    }\n}\n\n/**\n * Creates a list of all possible combinations of the given strings.\n * @example\n * const out2 = createStringVariations('name is {chicken,wolf,sheep}');\n * console.log(out2); // [ 'name is chicken', 'name is wolf', 'name is sheep' ]\n * @param string - The string to process\n */\nexport function createStringVariations(string: string): string[]\n{\n    const regex = /\\{(.*?)\\}/g;\n\n    const result = string.match(regex);\n\n    const tags: string[] = [];\n\n    if (result)\n    {\n        const ids: string[][] = [];\n\n        result.forEach((vars) =>\n        {\n            // first remove the brackets...\n            const split = vars.substring(1, vars.length - 1).split(',');\n\n            ids.push(split);\n        });\n\n        processX(string, ids, 0, result, tags);\n    }\n    else\n    {\n        tags.push(string);\n    }\n\n    return tags;\n}\n"],"names":[],"mappings":"AAAA,SAAS,SAAS,MAAc,KAAiB,OAAe,QAAkB,MAClF;AACU,QAAA,KAAK,IAAI,KAAK;AAEpB,WAAS,IAAI,GAAG,IAAI,GAAG,QAAQ,KAC/B;AACU,UAAA,QAAQ,GAAG,CAAC;AAEd,YAAQ,IAAI,SAAS,IAErB,SAAS,KAAK,QAAQ,OAAO,KAAK,GAAG,KAAK,GAAG,KAAK,QAAQ,GAAG,QAAQ,IAAI,IAIzE,KAAK,KAAK,KAAK,QAAQ,OAAO,KAAK,GAAG,KAAK,CAAC;AAAA,EAEpD;AACJ;AASO,SAAS,uBAAuB,QACvC;AACU,QAAA,QAAQ,cAER,SAAS,OAAO,MAAM,KAAK,GAE3B,OAAiB;AAEvB,MAAI,QACJ;AACI,UAAM,MAAkB,CAAA;AAEjB,WAAA,QAAQ,CAAC,SAChB;AAEU,YAAA,QAAQ,KAAK,UAAU,GAAG,KAAK,SAAS,CAAC,EAAE,MAAM,GAAG;AAE1D,UAAI,KAAK,KAAK;AAAA,IAAA,CACjB,GAED,SAAS,QAAQ,KAAK,GAAG,QAAQ,IAAI;AAAA,EACzC;AAGI,SAAK,KAAK,MAAM;AAGb,SAAA;AACX;"}