UNPKG

@ventum-digital/iiq-plugin-project-generator

Version:

A npm tool to set-up the project structure for developing an IIQ Plugin.

52 lines (41 loc) 1.4 kB
#!/usr/bin/env node const {generateProject} = require('./generate.js'); function capitalizeAndReplace(input) { // Remove "module-" prefix input = input.replace(/^module-/, ''); // Capitalize the first letter of each word input = input.replace(/\b\w/g, l => l.toUpperCase()) // Remove spaces and hyphens return input.replace(/\s/g, '').replace(/-/g, ''); } generateProject( "module", { npmScope : 's', packageName: 'p', version : "v" }, { packageDescription: 'd', author: "a", }, (args) => ({ capitalizedName: args.packageName.charAt(0).toUpperCase() + args.packageName.slice(1), displayName : capitalizeAndReplace(args.packageName), joinedName: `@${args.npmScope}/${args.packageName}`, }), (args) => { let packageName = args.packageName; let joinedName = args.joinedName; if (packageName.includes(' ')) { throw new Error('The package name must not contain spaces.'); } if (packageName !== packageName.toLowerCase()) { throw new Error('The package name must be all lowercase.'); } let regExp = `^(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)?\/)?[a-z0-9-~][a-z0-9-._~]*$`; if (!(new RegExp(regExp)).test(joinedName)) { throw new Error(`The package name ${joinedName} is invalid. It must follow the package.json naming convention.\nPattern: ${regExp}`); } } ).launchIntelliJ();