Files
awesome-cordova-plugins/scripts/tasks/generate-release-config.ts
2025-06-07 14:21:49 +02:00

56 lines
2.0 KiB
TypeScript

import { writeFileSync } from 'fs-extra';
import { resolve } from 'path';
import { PLUGIN_PATHS, ROOT } from '../build/helpers';
// Base configuration for release-please
const baseConfig = {
$schema: 'https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json',
'release-type': 'node',
'bump-minor-pre-major': false,
'bump-patch-for-minor-pre-major': false,
draft: false,
prerelease: false,
'changelog-sections': [
{ type: 'feat', section: 'Features' },
{ type: 'fix', section: 'Bug Fixes' },
{ type: 'chore', section: 'Miscellaneous Chores', hidden: false },
{ type: 'docs', section: 'Documentation' },
{ type: 'style', section: 'Styles', hidden: true },
{ type: 'refactor', section: 'Code Refactoring' },
{ type: 'perf', section: 'Performance Improvements' },
{ type: 'test', section: 'Tests', hidden: true },
{ type: 'build', section: 'Build System', hidden: true },
{ type: 'ci', section: 'Continuous Integration', hidden: true },
],
packages: {},
};
function generateReleaseConfig() {
const config = { ...baseConfig };
// Add core package
config.packages['src/@awesome-cordova-plugins/core'] = {
'package-name': '@awesome-cordova-plugins/core',
};
// Add all plugin packages dynamically
PLUGIN_PATHS.forEach((pluginPath: string) => {
const pluginName = pluginPath.split(/[\/\\]+/).slice(-2)[0];
const packagePath = `src/@awesome-cordova-plugins/plugins/${pluginName}`;
config.packages[packagePath] = {
'package-name': `@awesome-cordova-plugins/${pluginName}`,
};
});
// Write the configuration file
const configPath = resolve(ROOT, 'release-please-config.json');
writeFileSync(configPath, JSON.stringify(config, null, 2));
console.log(`Generated release-please-config.json with ${Object.keys(config.packages).length} packages`);
console.log(`- 1 core package`);
console.log(`- ${Object.keys(config.packages).length - 1} plugin packages`);
}
generateReleaseConfig();