@citiwave/im-disclaimer-modal
Version:
A customizable React disclaimer modal component with theme support
50 lines (49 loc) • 2.41 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setDisclaimerProps = setDisclaimerProps;
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const chalk_1 = __importDefault(require("chalk"));
const config_1 = require("../utils/config");
async function setDisclaimerProps(name, options) {
try {
// Use provided directory or get default from config
const disclaimerDir = options.dir
? path_1.default.resolve(process.cwd(), options.dir)
: await (0, config_1.getDefaultDirectory)();
const configPath = path_1.default.join(disclaimerDir, '_config.json');
const disclaimerPath = path_1.default.join(disclaimerDir, `${name}.json`);
// Check if disclaimer exists
if (!await fs_extra_1.default.pathExists(disclaimerPath)) {
console.error(chalk_1.default.red(`Disclaimer '${name}' does not exist`));
return;
}
// Load existing config or create new one
const config = await fs_extra_1.default.pathExists(configPath)
? await fs_extra_1.default.readJson(configPath)
: {};
// Update or create settings for this disclaimer
config[name] = {
...(config[name] || {}),
...(options.title && { title: options.title }),
...(options.prefix && { prefix: options.prefix }),
...(options.defaultOpen !== undefined && { defaultOpen: options.defaultOpen }),
...(options.theme && { theme: options.theme }),
...(options.accent && { accent: options.accent })
};
// Save updated config
await fs_extra_1.default.writeJson(configPath, config, { spaces: 2 });
console.log(chalk_1.default.green(`✓ Updated properties for '${name}'`));
console.log(chalk_1.default.gray('Current settings:'));
Object.entries(config[name]).forEach(([key, value]) => {
console.log(chalk_1.default.gray(` ${key}: ${value}`));
});
console.log(chalk_1.default.gray(`\nDirectory: ${disclaimerDir}`));
}
catch (error) {
console.error(chalk_1.default.red('Failed to update disclaimer properties:'), error);
}
}