sdin
Version:
JavaScript package builder.
2 lines • 2.63 kB
JavaScript
var e=require("@babel/runtime/helpers/interopRequireDefault"),r=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.SdinProject=void 0,e(require("@babel/runtime/helpers/defineProperty"))),a=require("../utils/array"),t=require("./testing"),i=require("./playing"),n=require("./abstract-project"),o=require("./foundation-module"),s=require("./integration-module"),l=require("./declaration-module"),u=require("./application-module"),p=require("../tools/errors"),c=require("../utils/print");function d(t,e){var i,r=Object.keys(t);return Object.getOwnPropertySymbols&&(i=Object.getOwnPropertySymbols(t),e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,i)),r}function h(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{};e%2?d(Object(i),!0).forEach(function(e){(0,r.default)(t,e,i[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):d(Object(i)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))})}return t}class g extends n.SdinAbstractProject{constructor(e){super(null,null,e),this.datas=h(h({},e.datas),{},{SDIN_PROJECT_NAME:this.pkg.name,SDIN_PROJECT_VERSION:this.pkg.version,SDIN_PROJECT_DESCRIPTION:this.pkg.description,SDIN_PROJECT_AUTHOR_NAME:this.pkg.authorName,SDIN_PROJECT_AUTHOR_EMAIL:this.pkg.authorEmail}),this.modules=this.createModules(e.modules),e.testing&&(this.testing=new t.SdinTesting(this,e.testing)),e.playing&&(this.playing=new i.SdinPlaying(this,e.playing))}createModules(e){var t,i=[],r={};for(t of(0,a.filterNotNone)(e)){var n=this.createModule(t);if(r[n.name])throw new p.SdinConfigError(p.SdinConfigError.MODULE_NAME_IS_REPEATED,'Module name "'.concat((0,c.yellow)(n.name),'" is repeated.'));i.push(n),r[n.name]=!0}return i}createModule(e){if("foundation"===e.type)return new o.SdinFoundationModule(this,e);if("integration"===e.type)return new s.SdinIntegrationModule(this,e);if("declaration"===e.type)return new l.SdinDeclarationModule(this,e);if("application"===e.type)return new u.SdinApplicationModule(this,e);throw new p.SdinConfigError(p.SdinConfigError.MODULE_TYPE_ILLEGAL,'Module type "'.concat((0,c.green)(e.type),'" is illegal.'))}async initialize(){this.testing&&await this.testing.initialize(),this.playing&&await this.playing.initialize(),await(0,a.asyncForEach)(this.modules,e=>e.initialize())}async validate(){this.testing&&await this.testing.validate(),this.playing&&await this.playing.validate(),await(0,a.asyncForEach)(this.modules,e=>e.validate())}}exports.SdinProject=g;
//# sourceMappingURL=project.js.map