{"version":3,"file":"utils.cjs","names":["tsplus_module_1","tsplus_module_2"],"sources":["../esm/utils.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_2 from \"@fncts/schema/AST\";\nimport { showWithOptions } from \"@fncts/base/data/Showable\";\nexport function memoize(f) {\n    const cache = new Map();\n    return (a) => {\n        if (!cache.has(a)) {\n            const b = f(a);\n            cache.set(a, b);\n            return b;\n        }\n        return cache.get(a);\n    };\n}\nexport function ownKeys(o) {\n    return o ? tsplus_module_1.from(Reflect.ownKeys(o)) : tsplus_module_1.empty();\n}\nexport function getTemplateLiteralRegex(ast) {\n    let pattern = `^${ast.head}`;\n    for (const span of ast.spans) {\n        if (tsplus_module_2.isStringKeyword(span.type)) {\n            pattern += \".*\";\n        }\n        else if (tsplus_module_2.isNumberKeyword(span.type)) {\n            pattern += \"-?\\\\d+(\\\\.\\\\d+)?\";\n        }\n        pattern += span.literal;\n    }\n    pattern += \"$\";\n    return new RegExp(pattern);\n}\nexport function getKeysForIndexSignature(input, parameter) {\n    switch (parameter._tag) {\n        case 9 /* ASTTag.NumberKeyword */:\n        case 8 /* ASTTag.StringKeyword */:\n        case 15 /* ASTTag.TemplateLiteral */:\n            return tsplus_module_1.from(Object.keys(input));\n        case 12 /* ASTTag.SymbolKeyword */:\n            return tsplus_module_1.from(Object.getOwnPropertySymbols(input));\n        case 20 /* ASTTag.Refinement */:\n            return getKeysForIndexSignature(input, parameter.from);\n    }\n}\nexport function formatUnknown(u) {\n    return showWithOptions(u, {});\n}\n//# sourceMappingURL=utils.js.map"],"mappings":";;;;;;;;AAGA,SAAgB,QAAQ,GAAG;CACvB,MAAM,wBAAQ,IAAI,KAAK;AACvB,SAAQ,MAAM;AACV,MAAI,CAAC,MAAM,IAAI,EAAE,EAAE;GACf,MAAM,IAAI,EAAE,EAAE;AACd,SAAM,IAAI,GAAG,EAAE;AACf,UAAO;;AAEX,SAAO,MAAM,IAAI,EAAE;;;AAG3B,SAAgB,QAAQ,GAAG;AACvB,QAAO,IAAIA,4CAAgB,KAAK,QAAQ,QAAQ,EAAE,CAAC,GAAGA,4CAAgB,OAAO;;AAEjF,SAAgB,wBAAwB,KAAK;CACzC,IAAI,UAAU,IAAI,IAAI;AACtB,MAAK,MAAM,QAAQ,IAAI,OAAO;AAC1B,MAAIC,kBAAgB,gBAAgB,KAAK,KAAK,CAC1C,YAAW;WAENA,kBAAgB,gBAAgB,KAAK,KAAK,CAC/C,YAAW;AAEf,aAAW,KAAK;;AAEpB,YAAW;AACX,QAAO,IAAI,OAAO,QAAQ;;AAE9B,SAAgB,yBAAyB,OAAO,WAAW;AACvD,SAAQ,UAAU,MAAlB;EACI,KAAK;EACL,KAAK;EACL,KAAK,GACD,QAAOD,4CAAgB,KAAK,OAAO,KAAK,MAAM,CAAC;EACnD,KAAK,GACD,QAAOA,4CAAgB,KAAK,OAAO,sBAAsB,MAAM,CAAC;EACpE,KAAK,GACD,QAAO,yBAAyB,OAAO,UAAU,KAAK;;;AAGlE,SAAgB,cAAc,GAAG;AAC7B,SAAA,GAAA,0BAAA,iBAAuB,GAAG,EAAE,CAAC"}