* @param {Object} opts * @param {String} opts.baseClass * @param {String} opts.className * @param {Boolean} opts.isSingleton * @param {String} opts.file * @param {Number} opts.folderDelta * @param {String[]} opts.ns * @param {String} opts.root
(opts)
| 442 | * @param {String} opts.root |
| 443 | */ |
| 444 | function createClass(opts) { |
| 445 | let { |
| 446 | baseClass, |
| 447 | className, |
| 448 | isSingleton, |
| 449 | file, |
| 450 | folderDelta, |
| 451 | ns, |
| 452 | root, |
| 453 | scssClass = undefined, |
| 454 | } = opts, baseFileName; |
| 455 | |
| 456 | fs.mkdirpSync(classFolder, {recursive: true}); |
| 457 | |
| 458 | baseFileName = baseClass.split('.').pop(); |
| 459 | |
| 460 | if (baseFileName === file) { |
| 461 | baseFileName = baseClass.split('.'); |
| 462 | baseFileName = baseFileName.map(e => capitalize(e)).join(''); |
| 463 | } |
| 464 | |
| 465 | fs.writeFileSync(path.join(classFolder, file + '.mjs'), createContent({ |
| 466 | baseClass, |
| 467 | baseFileName, |
| 468 | className, |
| 469 | isSingleton, |
| 470 | file, |
| 471 | folderDelta, |
| 472 | ns, |
| 473 | root, |
| 474 | scssClass |
| 475 | })); |
| 476 | |
| 477 | switch (baseClass) { |
| 478 | case 'controller.Component': { |
| 479 | baseType = 'Neo.controller.Component'; |
| 480 | configName = 'controller'; |
| 481 | importName = file; |
| 482 | importPath = `./${importName}.mjs`; |
| 483 | index = file.indexOf('Controller'); |
| 484 | |
| 485 | if (index > 0) { |
| 486 | viewFile = path.join(classFolder, file.substr(0, index) + '.mjs'); |
| 487 | |
| 488 | if (fs.existsSync(viewFile)) { |
| 489 | adjustView({baseType, configName, importName, importPath, viewFile}); |
| 490 | } |
| 491 | } |
| 492 | break; |
| 493 | } |
| 494 | |
| 495 | case 'data.Store': { |
| 496 | baseType = 'Neo.data.Model'; |
| 497 | configName = 'model'; |
| 498 | importName = className.replace('.store.', '.model.'); |
| 499 | |
| 500 | if (importName.endsWith('ies')) { |
| 501 | importName.replace(new RegExp('ies$'), 'y') |
no test coverage detected