sdin
Version:
JavaScript package builder.
2 lines • 2.77 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.PACKAGE_INFO_FILE_NAME=exports.PACKAGE_INFO=void 0,exports.downloadModules=d,exports.getDependenceName=_,exports.getDependenceVersion=N,exports.getPackageRootPath=r,exports.readPackageInfo=l;var t=require("path"),o=require("fs-extra"),a=require("./read"),n=require("./print"),i=require("./check"),c=require("lodash"),u=require("./execute"),s=require("./errors");let e=exports.PACKAGE_INFO={name:"unknown",version:"1.0.0",description:"unknown",author:"unknown <unknown@unknown.domain>",authorName:"unknown",authorEmail:"unknown@unknown.domain"},E=exports.PACKAGE_INFO_FILE_NAME="package.json",p=/^(.+) <(.+)>$/,m=/[\/\?]+/;function r(e){let r=e;for(let e=0;r&&e<10;e++){if((0,o.pathExistsSync)((0,t.resolve)(r,E)))return r;r=(0,t.resolve)(r,"../")}throw new s.NpmError(s.NpmError.NOT_HAS_ROOT_PATH,"Cannot find root path.")}function l(e,r){var e=(0,t.resolve)(e,E),o=(0,a.readExportsSync)(e,r);if((0,c.isPlainObject)(o)){if(!(o.name&&o.version&&o.description&&o.author))throw new s.NpmError(s.NpmError.PACKAGE_JSON_MISSING_REQUIRED_FIELD,"".concat(E,' must contain "name", "version", "description", "author" fields'));if(!(0,i.isPackageName)(o.name))throw new s.NpmError(s.NpmError.PACKAGE_NAME_IS_NOT_KEBAB_CASE,"Please change package name to kebab-case");var n=o.author;if("object"==typeof n)o.authorName=n.name||"",o.authorEmail=n.email||"",o.authorEmail?o.author="".concat(o.authorName," <").concat(o.authorEmail,">"):o.author=o.authorName;else{n=p.exec(n);if(!(n&&3<=n.length))throw new s.NpmError(s.NpmError.PACKAGE_AUTHOR_MARK_FORMAT_ERROR,'Please change author to "name <xxx@xxx.xxx>" in '.concat(E));o.authorName=n[1],o.authorEmail=n[2]}if((0,i.isEmail)(o.authorEmail))return o;throw new s.NpmError(s.NpmError.PACKAGE_AUTHOR_EMAIL_FORMAT_ERROR,"Author email format error in ".concat(E))}if(r)throw new s.NpmError(s.NpmError.PACKAGE_JSON_CONTENT_IS_NOT_PLAIN_OBJECT,"File ".concat(e," exports is not ").concat(E," content."))}function _(e){var r=e.split(m);return 1===r.length?e:"@"===r[0][0]?r[0]+"/"+r[1]:r[0]}function N(e,r){return e.dependencies[r]||e.devDependencies[r]||""}async function d(r){return(0,n.printTask)({exitCode:s.NpmError.DOWNLOAD_MODULES_FAILED,task:async e=>{e=e.loading;if(!await(0,o.pathExists)(r))throw new s.NpmError(s.NpmError.DOWNLOAD_MODULES_ROOT_IS_NOT_EXIST,"Folder ".concat(r," is not exist."));await(0,u.execute)("cd ".concat(r," && npm i"),e)},loading:e=>{if(e){if(e.toString)return e.toString();if("string"==typeof e)return e}return"Downloading modules to ".concat((0,n.yellow)(r),".")},resolve:()=>"Successfully downloaded modules to ".concat((0,n.green)(r),"."),reject:()=>"Failed to download modules to ".concat((0,n.red)(r),".")})}
//# sourceMappingURL=npm.js.map