Refactor code structure for improved readability and maintainability
This commit is contained in:
+10
-13
@@ -39,18 +39,14 @@ async function buildHooks() {
|
||||
const version = packageJson.version;
|
||||
console.log(`📌 Version: ${version}`);
|
||||
|
||||
// Create output directories
|
||||
console.log('\n📦 Preparing output directories...');
|
||||
// Create output directory
|
||||
console.log('\n📦 Preparing output directory...');
|
||||
const hooksDir = 'plugin/scripts';
|
||||
const distDir = 'dist';
|
||||
|
||||
if (!fs.existsSync(hooksDir)) {
|
||||
fs.mkdirSync(hooksDir, { recursive: true });
|
||||
}
|
||||
if (!fs.existsSync(distDir)) {
|
||||
fs.mkdirSync(distDir, { recursive: true });
|
||||
}
|
||||
console.log('✓ Output directories ready');
|
||||
console.log('✓ Output directory ready');
|
||||
|
||||
// Build worker service
|
||||
console.log(`\n🔧 Building worker service...`);
|
||||
@@ -60,7 +56,7 @@ async function buildHooks() {
|
||||
platform: 'node',
|
||||
target: 'node18',
|
||||
format: 'cjs',
|
||||
outfile: `${distDir}/${WORKER_SERVICE.name}.cjs`,
|
||||
outfile: `${hooksDir}/${WORKER_SERVICE.name}.cjs`,
|
||||
minify: true,
|
||||
external: ['better-sqlite3'],
|
||||
define: {
|
||||
@@ -72,8 +68,8 @@ async function buildHooks() {
|
||||
});
|
||||
|
||||
// Make worker service executable
|
||||
fs.chmodSync(`${distDir}/${WORKER_SERVICE.name}.cjs`, 0o755);
|
||||
const workerStats = fs.statSync(`${distDir}/${WORKER_SERVICE.name}.cjs`);
|
||||
fs.chmodSync(`${hooksDir}/${WORKER_SERVICE.name}.cjs`, 0o755);
|
||||
const workerStats = fs.statSync(`${hooksDir}/${WORKER_SERVICE.name}.cjs`);
|
||||
console.log(`✓ worker-service built (${(workerStats.size / 1024).toFixed(2)} KB)`);
|
||||
|
||||
// Build each hook
|
||||
@@ -133,9 +129,10 @@ async function buildHooks() {
|
||||
console.log(`✓ search-server built (${(searchStats.size / 1024).toFixed(2)} KB)`);
|
||||
|
||||
console.log('\n✅ All hooks, worker service, and search server built successfully!');
|
||||
console.log(` Hooks: ${hooksDir}/`);
|
||||
console.log(` Worker: ${distDir}/worker-service.cjs`);
|
||||
console.log(` Search: ${hooksDir}/search-server.js`);
|
||||
console.log(` Output: ${hooksDir}/`);
|
||||
console.log(` - Hooks: *-hook.js`);
|
||||
console.log(` - Worker: worker-service.cjs`);
|
||||
console.log(` - Search: search-server.js`);
|
||||
|
||||
} catch (error) {
|
||||
console.error('\n❌ Build failed:', error.message);
|
||||
|
||||
+20
-21
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Publish script for claude-mem
|
||||
* Handles version bumping, building, and publishing to npm
|
||||
* Release script for claude-mem
|
||||
* Handles version bumping, building, and creating marketplace releases
|
||||
*/
|
||||
|
||||
import { exec } from 'child_process';
|
||||
@@ -21,7 +21,7 @@ const question = (query) => new Promise((resolve) => rl.question(query, resolve)
|
||||
|
||||
async function publish() {
|
||||
try {
|
||||
console.log('📦 Claude-mem Publishing Tool\n');
|
||||
console.log('📦 Claude-mem Marketplace Release Tool\n');
|
||||
|
||||
// Check git status
|
||||
console.log('🔍 Checking git status...');
|
||||
@@ -82,15 +82,19 @@ async function publish() {
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
// Update package.json version
|
||||
console.log('\n📝 Updating package.json...');
|
||||
// Update package.json and marketplace.json versions
|
||||
console.log('\n📝 Updating package.json and marketplace.json...');
|
||||
packageJson.version = newVersion;
|
||||
fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2) + '\n');
|
||||
console.log('✓ Version updated');
|
||||
|
||||
const marketplaceJson = JSON.parse(fs.readFileSync('.claude-plugin/marketplace.json', 'utf-8'));
|
||||
marketplaceJson.plugins[0].version = newVersion;
|
||||
fs.writeFileSync('.claude-plugin/marketplace.json', JSON.stringify(marketplaceJson, null, 2) + '\n');
|
||||
console.log('✓ Versions updated in both files');
|
||||
|
||||
// Run build
|
||||
console.log('\n🔨 Building...');
|
||||
await execAsync('node build.js');
|
||||
console.log('\n🔨 Building hooks...');
|
||||
await execAsync('npm run build');
|
||||
console.log('✓ Build complete');
|
||||
|
||||
// Run tests if they exist
|
||||
@@ -112,31 +116,26 @@ async function publish() {
|
||||
|
||||
// Git commit and tag
|
||||
console.log('\n📌 Creating git commit and tag...');
|
||||
await execAsync('git add package.json dist/');
|
||||
await execAsync(`git commit -m "Release v${newVersion}
|
||||
await execAsync('git add package.json .claude-plugin/marketplace.json plugin/');
|
||||
await execAsync(`git commit -m "chore: Release v${newVersion}
|
||||
|
||||
Published from npm package build
|
||||
Source: https://github.com/thedotmack/claude-mem"`);
|
||||
Marketplace release for Claude Code plugin
|
||||
https://github.com/thedotmack/claude-mem"`);
|
||||
await execAsync(`git tag v${newVersion}`);
|
||||
console.log(`✓ Created commit and tag v${newVersion}`);
|
||||
|
||||
// Publish to npm
|
||||
console.log('\n🚀 Publishing to npm...');
|
||||
await execAsync('npm publish');
|
||||
console.log('✓ Published to npm');
|
||||
|
||||
// Push to git
|
||||
console.log('\n⬆️ Pushing to git...');
|
||||
await execAsync('git push');
|
||||
await execAsync('git push --tags');
|
||||
console.log('✓ Pushed to git');
|
||||
|
||||
console.log(`\n✅ Successfully published v${newVersion}! 🎉`);
|
||||
console.log(`\n📦 Package: https://www.npmjs.com/package/claude-mem`);
|
||||
console.log(`🏷️ Tag: https://github.com/thedotmack/claude-mem/releases/tag/v${newVersion}`);
|
||||
console.log(`\n✅ Successfully released v${newVersion}! 🎉`);
|
||||
console.log(`\n🏷️ Tag: https://github.com/thedotmack/claude-mem/releases/tag/v${newVersion}`);
|
||||
console.log(`📦 Marketplace will sync from this tag automatically`);
|
||||
|
||||
} catch (error) {
|
||||
console.error('\n❌ Publish failed:', error.message);
|
||||
console.error('\n❌ Release failed:', error.message);
|
||||
if (error.stderr) {
|
||||
console.error('\nError details:', error.stderr);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user