{"version":3,"sources":["../src/config/value.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAazC,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,CAAC,CAkB3G","file":"value.d.ts","sourcesContent":["/**\n *\tMIT License\n *\n *\tCopyright (c) 2019 - 2022 Toreda, Inc.\n *\n *\tPermission is hereby granted, free of charge, to any person obtaining a copy\n *\tof this software and associated documentation files (the \"Software\"), to deal\n *\tin the Software without restriction, including without limitation the rights\n *\tto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n *\tcopies of the Software, and to permit persons to whom the Software is\n *\tfurnished to do so, subject to the following conditions:\n\n * \tThe above copyright notice and this permission notice shall be included in all\n * \tcopies or substantial portions of the Software.\n *\n * \tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n *\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * \tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n *\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * \tSOFTWARE.\n *\n */\n\nimport type {BuildOptions} from '../build/options';\nimport type {CliArgs} from '../cli/args';\n\n/**\n * Get config key from args and check type, then from options when no match is found.\n * @param key\t\t\tkeyname of property to search for in CliArgs and BuildOptions.\n * @param type\t\t\tJavaScript type name used to validate value.\n * @param args\t\t\tCliArgs object to check.\n * @param options\t\tBuildOptions object to check.\n * @returns\t\t\t\tT\t\t-\tKey value of type T when match is found.\n *\t\t\t\t\t\tnull\t-\tNo key values were found matching type.\n *\n * @category Config\n */\nexport function configValue<T>(key: string, fallback: T, args?: Partial<CliArgs>, options?: BuildOptions): T {\n\tif (typeof key !== 'string' || !key) {\n\t\treturn fallback;\n\t}\n\n\tconst type = typeof fallback;\n\n\tif (args && typeof args[key] === type) {\n\t\t// Safe cast when typeof fallback matches T.\n\t\treturn args[key] as T;\n\t}\n\n\tif (options && typeof options[key] === type) {\n\t\t// Safe cast when typeof fallback matches T.\n\t\treturn options[key] as T;\n\t}\n\n\treturn fallback;\n}\n"]}