Files
vtj/create-vtj/src/utils.ts
陈华春 b65d1b1932 0.7.0
2024-01-17 16:59:28 +08:00

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]
};
}