MCPcopy Create free account
hub / github.com/neomjs/neo / createClass

Function createClass

buildScripts/create/class.mjs:444–541  ·  view source on GitHub ↗

* @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)

Source from the content-addressed store, hash-verified

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')

Callers 1

class.mjsFile · 0.85

Calls 7

createContentFunction · 0.85
adjustViewFunction · 0.85
popMethod · 0.80
splitMethod · 0.80
shiftMethod · 0.80
capitalizeFunction · 0.70
indexOfMethod · 0.45

Tested by

no test coverage detected