@citiwave/im-disclaimer-modal
Version:
A customizable React disclaimer modal component with theme support
63 lines (62 loc) • 2.73 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.listDisclaimers = listDisclaimers;
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 listDisclaimers(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');
// Check if directory exists
if (!await fs_extra_1.default.pathExists(disclaimerDir)) {
console.error(chalk_1.default.red(`Directory '${disclaimerDir}' does not exist`));
return;
}
// Get all JSON files in the disclaimers directory
const files = await fs_extra_1.default.readdir(disclaimerDir);
const disclaimers = files
.filter(file => file.endsWith('.json') && file !== '_config.json')
.map(file => path_1.default.basename(file, '.json'));
// Get config if it exists
const config = await fs_extra_1.default.pathExists(configPath)
? await fs_extra_1.default.readJson(configPath)
: {};
if (options.json) {
// Output JSON format
const result = disclaimers.reduce((acc, name) => {
acc[name] = config[name] || {};
return acc;
}, {});
console.log(JSON.stringify(result, null, 2));
}
else {
// Output human-readable format
if (disclaimers.length === 0) {
console.log(chalk_1.default.yellow('No disclaimers found'));
return;
}
console.log(chalk_1.default.bold('\nDisclaimers:'));
for (const name of disclaimers) {
console.log(chalk_1.default.green(`\n• ${name}`));
if (config[name]) {
const settings = config[name];
Object.entries(settings).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 list disclaimers:'), error);
}
}