adonisjs-livewire
Version:
A front-end framework for AdonisJS
18 lines (17 loc) • 638 B
JavaScript
import string from '@poppinss/utils/string';
import { Synth } from './synth.js';
import { BaseModel } from '@adonisjs/lucid/orm';
export class ModelSynth extends Synth {
static key = 'mdl';
static match(target) {
return target instanceof BaseModel;
}
async dehydrate(target) {
return [null, { key: target.$primaryKeyValue, model: target.constructor.name }];
}
async hydrate(_data, meta) {
let modelFile = string.snakeCase(meta.model);
const { default: model } = await import(this.app.makeURL(`./app/models/${modelFile}.js`).href);
return await model.find(meta.key);
}
}