File size: 1,079 Bytes
9791706
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash
# Bundle kflow CLI into a single file for distribution
# Run from builder/ directory

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BUILDER_DIR="$SCRIPT_DIR/../../../../builder"
OUTPUT_DIR="$SCRIPT_DIR/../bin"

echo "Bundling kflow CLI..."
echo "Builder dir: $BUILDER_DIR"

cd "$BUILDER_DIR"

# Ensure dependencies are installed
npm install --workspace=@kflow-builder/compiler --workspace=@kflow-builder/shared

# Build shared first
npm run build:shared

# Bundle kflow CLI with esbuild
mkdir -p "$OUTPUT_DIR"

npx esbuild packages/compiler/src/cli/index.ts \
  --bundle \
  --platform=node \
  --target=node18 \
  --outfile="$OUTPUT_DIR/kflow-bundle.js" \
  --external:esbuild \
  --external:typescript \
  --external:@swc/core \
  --format=esm \
  --sourcemap

# Create wrapper script
cat > "$OUTPUT_DIR/kflow" << 'EOF'
#!/usr/bin/env node
import('./kflow-bundle.js');
EOF

chmod +x "$OUTPUT_DIR/kflow"

echo "Bundle created at: $OUTPUT_DIR/kflow-bundle.js"
echo "Wrapper at: $OUTPUT_DIR/kflow"

# Get size
ls -lh "$OUTPUT_DIR/kflow-bundle.js"