UNPKG

adonisjs-livewire

Version:

A front-end framework for AdonisJS

56 lines (55 loc) 2.45 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { BaseCommand, args, flags } from '@adonisjs/core/ace'; import { stubsRoot } from '../index.js'; import stringHelpers from '@adonisjs/core/helpers/string'; export default class MakeLivewire extends BaseCommand { static commandName = 'make:livewire'; static description = 'Make a new livewire component'; static aliases = ['livewire:make']; static options = { startApp: false, allowUnknownFlags: false, staysAlive: false, }; async run() { this.inline ? await this.generateInline() : await this.generate(); } async generateInline() { const codemods = await this.createCodemods(); let name = this.name.replaceAll('.', '/'); let parts = name.split('/'); let last = parts.pop(); let filename = [...parts, stringHelpers.snakeCase(last)].join('/'); codemods.makeUsingStub(stubsRoot, 'livewire-inline.stub', { className: stringHelpers.pascalCase(last), filename, }); } async generate() { const codemods = await this.createCodemods(); let name = this.name.replaceAll('.', '/'); let parts = name.split('/'); let last = parts.pop(); let filename = [...parts, stringHelpers.snakeCase(last)].join('/'); let dashedFilename = [...parts, stringHelpers.dashCase(last)].join('/'); codemods.makeUsingStub(stubsRoot, 'livewire-component.stub', { className: stringHelpers.pascalCase(last), filename, dashedFilename, }); codemods.makeUsingStub(stubsRoot, 'livewire-template.stub', { filename: dashedFilename, }); } } __decorate([ args.string({ description: 'Name of component' }) ], MakeLivewire.prototype, "name", void 0); __decorate([ flags.boolean() ], MakeLivewire.prototype, "inline", void 0);