{"version":3,"file":"get-config.cjs","sources":["../../../src/cli/utils/get-config.ts"],"sourcesContent":["import fs from \"fs/promises\";\nimport { configFilePath } from \"../consts\";\n\nexport interface Config {\n  $schema: string;\n  components: string[];\n  dark: boolean;\n  path: string;\n  prefix: string;\n  rsc: boolean;\n  tsx: boolean;\n}\n\n/**\n * Reads the configuration file and returns its content as a Config object.\n *\n * This function attempts to read the file specified by `configFilePath`, parse its content as JSON,\n * and return the parsed configuration. If the file cannot be read or parsed, a default Config object is returned.\n *\n * @returns {Promise<Config>} A promise that resolves to a Config object representing the configuration.\n */\nexport async function getConfig(): Promise<Config> {\n  const config: Config = {\n    $schema: \"\",\n    components: [],\n    dark: true,\n    path: \"src/components\",\n    prefix: \"\",\n    rsc: true,\n    tsx: true,\n  };\n\n  try {\n    const raw = await fs.readFile(configFilePath, \"utf-8\");\n    const parsed: Config = JSON.parse(raw);\n\n    if (parsed.$schema !== undefined && typeof parsed.$schema === \"string\") {\n      config.$schema = parsed.$schema;\n    }\n    if (parsed.components !== undefined && Array.isArray(parsed.components)) {\n      config.components = parsed.components.map((component) => component.trim()).filter(Boolean);\n    }\n    if (parsed.dark !== undefined && typeof parsed.dark === \"boolean\") {\n      config.dark = parsed.dark;\n    }\n    if (parsed.path !== undefined && typeof parsed.path === \"string\") {\n      config.path = parsed.path;\n    }\n    if (parsed.prefix !== undefined && typeof parsed.prefix === \"string\") {\n      config.prefix = parsed.prefix;\n    }\n    if (parsed.rsc !== undefined && typeof parsed.rsc === \"boolean\") {\n      config.rsc = parsed.rsc;\n    }\n    if (parsed.tsx !== undefined && typeof parsed.tsx === \"boolean\") {\n      config.tsx = parsed.tsx;\n    }\n\n    return config;\n  } catch {\n    return config;\n  }\n}\n"],"names":["configFilePath"],"mappings":";;;;;AAGO,eAAe,SAAS,GAAG;AAClC,EAAE,MAAM,MAAM,GAAG;AACjB,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,GAAG,EAAE,IAAI;AACb,IAAI,GAAG,EAAE;AACT,GAAG;AACH,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAACA,qBAAc,EAAE,OAAO,CAAC;AAC1D,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;AACzE,MAAM,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AACrC;AACA,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC1E,MAAM,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAChG;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AACpE,MAAM,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC/B;AACA,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACnE,MAAM,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AAC/B;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;AACvE,MAAM,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AACnC;AACA,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;AAClE,MAAM,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;AAC7B;AACA,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;AAClE,MAAM,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;AAC7B;AACA,IAAI,OAAO,MAAM;AACjB,GAAG,CAAC,MAAM;AACV,IAAI,OAAO,MAAM;AACjB;AACA;;;;"}