mirror of
https://gitee.com/newgateway/vtj.git
synced 2026-05-31 22:21:06 +08:00
37 lines
949 B
TypeScript
37 lines
949 B
TypeScript
import fs from 'node:fs';
|
|
// import path from 'node:path';
|
|
|
|
export function formatTargetDir(targetDir: string | undefined) {
|
|
return targetDir?.trim().replace(/\/+$/g, '');
|
|
}
|
|
|
|
export function isEmpty(path: string) {
|
|
const files = fs.readdirSync(path);
|
|
return files.length === 0 || (files.length === 1 && files[0] === '.git');
|
|
}
|
|
|
|
export function isValidPackageName(projectName: string) {
|
|
return /^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(
|
|
projectName
|
|
);
|
|
}
|
|
|
|
export function toValidPackageName(projectName: string) {
|
|
return projectName
|
|
.trim()
|
|
.toLowerCase()
|
|
.replace(/\s+/g, '-')
|
|
.replace(/^[._]/, '')
|
|
.replace(/[^a-z\d\-~]+/g, '-');
|
|
}
|
|
|
|
export function pkgFromUserAgent(userAgent: string | undefined) {
|
|
if (!userAgent) return undefined;
|
|
const pkgSpec = userAgent.split(' ')[0];
|
|
const pkgSpecArr = pkgSpec.split('/');
|
|
return {
|
|
name: pkgSpecArr[0],
|
|
version: pkgSpecArr[1]
|
|
};
|
|
}
|