create-prisma-generator
Version:
44 lines • 2.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateGeneratorName = void 0;
const validate_npm_package_name_1 = __importDefault(require("validate-npm-package-name"));
const chalk_1 = __importDefault(require("chalk"));
const flags_1 = require("../flags");
const validateGeneratorName = (pkgName) => {
var _a, _b;
const validPkgName = (0, validate_npm_package_name_1.default)(pkgName.replace(flags_1.flags.skipPrismaNamingConventionFlag, '').trim());
if (!validPkgName.validForNewPackages) {
console.log(chalk_1.default.red(`\n"${pkgName}" isn't a valid package name!`));
(_a = validPkgName.errors) === null || _a === void 0 ? void 0 : _a.forEach((e) => console.log(chalk_1.default.cyan(e)));
(_b = validPkgName.warnings) === null || _b === void 0 ? void 0 : _b.forEach((e) => console.log(chalk_1.default.yellow(e)));
return false;
}
else {
const sanitizedPkgName = pkgName.trim();
const namingConvention = 'prisma-generator-';
const org = sanitizedPkgName.startsWith('@')
? sanitizedPkgName.split('/')[0]
: null;
const skipCheck = sanitizedPkgName.trim().split(' ')[1] ===
flags_1.flags.skipPrismaNamingConventionFlag;
if (!skipCheck) {
if (!sanitizedPkgName.includes(namingConvention) ||
sanitizedPkgName.length < namingConvention.length + 1) {
if (org) {
console.log(chalk_1.default.cyan(`\nPrisma recommends you to use this naming convention:\n`), chalk_1.default.yellow(`${org}/${namingConvention}<custom-name>\n`));
}
else {
console.log(chalk_1.default.cyan(`\n\nPrisma recommends you to use this naming convention:\n`), chalk_1.default.yellow(`${namingConvention}<custom-name>`));
}
console.log(chalk_1.default.grey(`use the \`${flags_1.flags.skipPrismaNamingConventionFlag}\` flag to skip prisma's recommendation.\n`));
return false;
}
}
return true;
}
};
exports.validateGeneratorName = validateGeneratorName;
//# sourceMappingURL=generatorName.js.map