0.4.4 • Published 8 months ago
@matchlighter/decsera v0.4.4
Decsera (Previously @matchlighter/mobx_model)
A modern decorator-based, extensible library for building client-side data models for easy hydration of JSON data.
Defining Models
import { Model, field } from '@matchlighter/decsera';
class User extends Model {
@field full_name: string;
@field({ /* options */ }) username: string;
@collection({ type: 'local' }) projects: Project[] = [];
}MobX
This library was originally built with MobX support built in out of the box. However, MobX support was refactored to a separate module before the first public release. MobX support can be enabled like such:
// ES6
import "@matchlighter/decsera/mobx"; // Must be placed *before* any other imports of DecSera
// CommonJS
require('@matchlighter/decsera/mobx');With MobX support enabled,
@fieldautomatically applies MobX@observable@observable/@computedare automatically applied in other appropriate locations- Some other optimizations are made for supporting MobX & other features