@citiwave/im-disclaimer-modal
Version:
A customizable React disclaimer modal component with theme support
54 lines (53 loc) • 2.5 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const inquirer_1 = __importDefault(require("inquirer"));
const chalk_1 = __importDefault(require("chalk"));
const validation_1 = require("./utils/validation");
async function setup() {
console.log(chalk_1.default.blue('\n📦 Configuring IM Disclaimer Modal...\n'));
// Get user input for default directory
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;
}
}
]);
// Create global config directory in user's home
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');
// Ensure config directory exists
await fs_extra_1.default.ensureDir(configDir);
// Save config
const config = {
defaultDirectory: defaultDir,
version: '1.0.0'
};
await fs_extra_1.default.writeJson(configFile, config, { spaces: 2 });
// Create the default directory if it doesn't exist
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'));
}
setup().catch(error => {
console.error(chalk_1.default.red('Error during setup:'), error);
process.exit(1);
});