@matchlighter/mobx_model
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

@matchlighter/mobx_model

A modern, extensible library for building client-side data models upon the principles of OOP.

Defining Models

import { Model, field } from '@matchlighter/mobx_model';

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 * as mobx from 'mobx';
import { initMobxCompat } from '@matchlighter/mobx_model';
initMobxCompat(mobx);

// CommonJS
const mobx = require('mobx');
const mobxModel = require('@matchlighter/mobx_model');
mobxModel.initMobxCompat(mobx);

With MobX support enabled,

  • @field automatically applies MobX @observable
  • @observable / @computed are automatically applied in other appropriate locations
  • Some other optimizations are made for supporting MobX & other features

Readme

Keywords

none

Package Sidebar

Install

npm i @matchlighter/mobx_model

Weekly Downloads

0

Version

0.1.5

License

MIT

Unpacked Size

486 kB

Total Files

47

Last publish

Collaborators

  • matchlighter