Files
bytedance--flowgram.ai/apps/cli/src/index.ts
T
wehub-resource-sync 0232b4e2bb
CI / build (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:09:51 +08:00

64 lines
1.9 KiB
TypeScript

/**
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
* SPDX-License-Identifier: MIT
*/
import path from 'path';
import { Command } from 'commander';
import { updateFlowgramVersion } from './update-version';
import { syncMaterial } from './materials';
import { findUsedMaterials } from './find-materials';
import { createApp } from './create-app';
const program = new Command();
program.name('flowgram-cli').version('1.0.0').description('Flowgram CLI');
program
.command('create-app')
.description('Create a new flowgram project')
.argument('[string]', 'Project name')
.action(async (projectName) => {
await createApp(projectName);
});
program
.command('materials')
.description('Sync materials to the project')
.argument(
'[string]',
'Material name or names\nExample 1: components/variable-selector \nExample2: components/variable-selector,effect/provideJsonSchemaOutputs'
)
.option('--refresh-project-imports', 'Refresh project imports to copied materials', false)
.option('--target-material-root-dir <string>', 'Target directory to copy materials')
.option('--select-multiple', 'Select multiple materials', false)
.action(async (materialName, options) => {
await syncMaterial({
materialName,
refreshProjectImports: options.refreshProjectImports,
targetMaterialRootDir: options.targetMaterialRootDir
? path.join(process.cwd(), options.targetMaterialRootDir)
: undefined,
selectMultiple: options.selectMultiple,
});
});
program
.command('find-used-materials')
.description('Find used materials in the project')
.action(async () => {
await findUsedMaterials();
});
program
.command('update-version')
.description('Update flowgram version in the project')
.argument('[string]', 'Flowgram version')
.action(async (version) => {
await updateFlowgramVersion(version);
});
program.parse(process.argv);