12345678910111213141516171819202122232425262728293031323334 |
- import path from 'node:path';
- import { execa } from 'execa';
- export * from '@changesets/git';
- /**
- * 获取暂存区文件
- */
- async function getStagedFiles(): Promise<string[]> {
- try {
- const { stdout } = await execa('git', [
- '-c',
- 'submodule.recurse=false',
- 'diff',
- '--staged',
- '--diff-filter=ACMR',
- '--name-only',
- '--ignore-submodules',
- '-z',
- ]);
- let changedList = stdout ? stdout.replace(/\0$/, '').split('\0') : [];
- changedList = changedList.map((item) => path.resolve(process.cwd(), item));
- const changedSet = new Set(changedList);
- changedSet.delete('');
- return [...changedSet];
- } catch (error) {
- console.error('Failed to get staged files:', error);
- return [];
- }
- }
- export { getStagedFiles };
|