{"version":3,"file":"stemy-ngx-utils-tools.mjs","sources":["../../tools/config.ts","../../tools/stemy-ngx-utils-tools.ts"],"sourcesContent":["export function isPrimitive(value: any): boolean {\n    const type = typeof value;\n    return value == null || (type !== \"object\" && type !== \"function\");\n}\n\nexport function isDate(value: any): value is Date {\n    return null !== value && !isNaN(value) && \"undefined\" !== typeof value.getDate;\n}\n\nexport interface IEnvironmentAlternatives {\n    [name: string]: string[]\n}\n\nfunction convertValue(value: any, type: string): any {\n    switch (type) {\n        case \"boolean\":\n            value = typeof value == \"string\" ? value.toLowerCase() : value;\n            return (value == \"no\" || value == \"false\" || value == \"0\") ? false : !!value;\n        case \"number\":\n            const val = parseFloat(value);\n            return isNaN(val) ? 0 : val;\n    }\n    return value;\n}\n\nfunction getFromEnv(path: string, alternatives: IEnvironmentAlternatives, value: any): any {\n    const name = path.replace(/\\.?([A-Z|0-9]+)/g, function (x,y){\n        return \"_\" + y.toLowerCase()\n    }).replace(/\\./gi, \"_\").replace(/^_/, \"\").toUpperCase();\n    const alts = Array.from(alternatives[name] || []);\n    alts.unshift(name);\n    for (const envName of alts) {\n        const envValue = process.env[envName];\n        if (typeof envValue !== \"undefined\") {\n            const val = convertValue(envValue, typeof value);\n            console.log(name, envName, val);\n            return convertValue(envValue, typeof value);\n        }\n    }\n    console.log(name, value);\n    return value;\n}\n\nfunction createConfigRecursive(target: any, source: any, path: string, alternatives: IEnvironmentAlternatives): any {\n    if (isPrimitive(source) || isDate(source)) {\n        return getFromEnv(path, alternatives, source);\n    }\n    if (Array.isArray(source)) {\n        target = Array.isArray(target) ? Array.from(target) : [];\n        source.forEach((item, index) => {\n            if (target.length > index)\n                target[index] = createConfigRecursive(target[index], item, !path ? `${index}` : `${path}.${index}`, alternatives);\n            else\n                target.push(createConfigRecursive(null, item, !path ? `${index}` : `${path}.${index}`, alternatives));\n        });\n        return target;\n    }\n    return Object.keys(source).reduce((result, key) => {\n        result[key] = createConfigRecursive(result[key], source[key], !path ? `${key}` : `${path}.${key}`, alternatives);\n        return result;\n    }, Object.assign({}, target));\n}\n\nexport function parseConfig(config: any): any {\n    if (typeof config == \"string\") {\n        try {\n            config = JSON.parse(config);\n        } catch (e) {\n            return {};\n        }\n    }\n    return config;\n}\n\nexport function createConfig(config: any, alternatives?: IEnvironmentAlternatives): any {\n    alternatives = alternatives || {};\n    console.log(\"Parsing config...\");\n    return createConfigRecursive(null, parseConfig(config), \"\", alternatives);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}