Shared utilities and configuration for FleetTools
npm install @fleettools/sharedShared utilities and configuration for FleetTools
``bash`
npm install @fleettools/fleet-sharedor
bun install @fleettools/fleet-shared
typescript
import { detectRuntime, getRuntimeInfo } from '@fleettools/fleet-shared/runtime';const runtime = detectRuntime(); // 'bun' | 'node' | 'unknown'
const info = getRuntimeInfo();
// {
// type: 'bun',
// version: '1.0.0',
// platform: 'linux',
// arch: 'x64',
// supported: true,
// isBun: true,
// isNode: false
// }
`$3
`typescript
import {
loadGlobalConfig,
saveGlobalConfig,
loadProjectConfig,
isFleetProject
} from '@fleettools/fleet-shared/config';const globalConfig = loadGlobalConfig();
const projectConfig = loadProjectConfig();
const isProject = isFleetProject();
`$3
`typescript
import {
initializeProject,
getAvailableTemplates
} from '@fleettools/fleet-shared/project';const templates = getAvailableTemplates(); // ['basic', 'agent']
const config = initializeProject('./my-project', 'basic', {
name: 'My Project',
services: { squawk: { enabled: true } }
});
`$3
`typescript
import {
commandExists,
sleep,
retry,
formatBytes,
formatDuration,
generateId
} from '@fleettools/fleet-shared/utils';const hasNode = commandExists('node');
await sleep(1000);
const result = await retry(() => riskyOperation(), 3);
`API Reference
$3
-
detectRuntime(): RuntimeType - Detect current JavaScript runtime
- getRuntimeInfo(): RuntimeInfo - Get detailed runtime information
- isSupportedRuntime(): boolean - Check if runtime is supported
- getPreferredRuntime(): 'bun' | 'node' - Get preferred runtime$3
-
loadGlobalConfig(): FleetGlobalConfig - Load global configuration
- saveGlobalConfig(config: FleetGlobalConfig): void - Save global configuration
- loadProjectConfig(): FleetProjectConfig | null - Load project configuration
- saveProjectConfig(config: FleetProjectConfig): void - Save project configuration
- isFleetProject(): boolean - Check if directory is a FleetTools project$3
-
initializeProject(path, template, config): FleetProjectConfig - Initialize new project
- getAvailableTemplates(): string[] - Get available project templates
- getTemplateInfo(name): ProjectTemplate | null - Get template information
- isValidProject(path): boolean - Validate project structure
- getProjectRoot(): string | null - Find project root directory$3
-
commandExists(command): boolean - Check if command exists in PATH
- sleep(ms): Promise - Sleep for specified milliseconds
- retry(fn, maxAttempts, baseDelay): Promise - Retry with exponential backoff
- formatBytes(bytes): string - Format bytes to human readable string
- formatDuration(ms): string - Format duration to human readable string
- generateId(length): string - Generate random ID
- deepClone(obj): T - Deep clone object
- isPromise(value): boolean - Check if value is a promise
- EventEmitter - Simple event emitter classTypes
$3
`typescript
interface RuntimeInfo {
type: RuntimeType;
version: string;
platform: string;
arch: string;
supported: boolean;
isBun: boolean;
isNode: boolean;
}
`$3
`typescript
interface FleetGlobalConfig {
version: string;
defaultRuntime: 'bun' | 'node';
telemetry: {
enabled: boolean;
endpoint?: string;
};
services: {
autoStart: boolean;
squawkPort: number;
apiPort: number;
};
paths: {
configDir: string;
dataDir: string;
logDir: string;
};
}
`$3
`typescript
interface FleetProjectConfig {
name: string;
version: string;
fleet: {
version: string;
mode: 'local' | 'synced';
workspaceId?: string;
};
services: {
squawk: {
enabled: boolean;
port: number;
dataDir: string;
};
api: {
enabled: boolean;
port: number;
};
postgres: {
enabled: boolean;
provider: 'podman' | 'docker' | 'local';
port: number;
container?: string;
dataDir: string;
};
};
plugins: {
claudeCode: boolean;
openCode: boolean;
};
}
`Development
`bash
git clone https://github.com/v1truvius/fleettools.git
cd fleettools/packages/fleet-shared
bun install
bun run dev # Development mode with watch
`Testing
`bash
bun test
bun run test:coverage
``MIT License - see LICENSE file for details.