@citiwave/im-disclaimer-modal
Version:
A customizable React disclaimer modal component with theme support
46 lines (45 loc) • 2.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setup = setup;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const chalk_1 = __importDefault(require("chalk"));
const inquirer_1 = __importDefault(require("inquirer"));
const validation_1 = require("../utils/validation");
async function setup() {
console.log(chalk_1.default.blue('\n📦 Configuring IM Disclaimer Modal...\n'));
const { defaultDir } = await inquirer_1.default.prompt([
{
type: 'input',
name: 'defaultDir',
message: 'Enter the default directory for disclaimer data (JSON files):',
default: 'src/data/disclaimers',
validate: async (input) => {
if (!input)
return 'Directory cannot be empty';
const validation = await (0, validation_1.validateDirectory)(input);
return validation.isValid ? true : validation.error;
}
}
]);
const homeDir = process.env.HOME || process.env.USERPROFILE;
const configDir = path_1.default.join(homeDir, '.im-disclaimer');
const configFile = path_1.default.join(configDir, 'config.json');
await fs_extra_1.default.ensureDir(configDir);
const config = {
defaultDirectory: defaultDir,
version: '1.0.0'
};
await fs_extra_1.default.writeJson(configFile, config, { spaces: 2 });
await fs_extra_1.default.ensureDir(defaultDir);
console.log(chalk_1.default.green('\n✓ Configuration complete!'));
console.log(chalk_1.default.gray(`Default directory set to: ${defaultDir}`));
console.log(chalk_1.default.gray(`Config file location: ${configFile}`));
console.log(chalk_1.default.gray('\nYou can update this configuration later using:'));
console.log(chalk_1.default.blue(' im-disclaimer config:set --default-dir <path>'));
console.log(chalk_1.default.gray('or'));
console.log(chalk_1.default.blue(' im-disclaimer config:set\n'));
}