@spiderdan98/json-model
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

json model

A json model creator for client and server side.

Install

yarn add -D @spiderdan98/json-model

Example model

import createModel from "@spiderdan98/json-model";
import Relationship from "/path/to/relationship/model";

export const USER_TYPE = "users";

const Model = createModel<{
  type: typeof USER_TYPE;
  name: string;
  email: string;
  relationshipNames?: string[];
  relationship: Relationship[];
}>();

class User extends Model {
  lowerName = this.name.toLowerCase(),
}

export default User;

Example model usage

import { setModels } from "@spiderdan98/json-model";
import Relationship from "/path/to/relationship/model";
import User from "/path/to/user/model";

const json = {
  type: "users",
  name: "SpiderDan98",
  email: "test@example.com",
  relationshipNames: ["relationship"],
  relationship: {
    ...
  },
};

// Register relationship models globally
setModels({
  relationship: Relationship,
});

const user = User.create(json, {
  // Register relationship models on create
  relationship: Relationship,
});

console.log(user.name); // SpiderDan98
console.log(user.lowerName); // spiderdan98
console.log(user.relationship); // Relationship model

const users = User.create([json]);

console.log(users[0].name); // SpiderDan98
console.log(users[0].lowerName); // spiderdan98
console.log(users[0].relationship); // Relationship model

Package Sidebar

Install

npm i @spiderdan98/json-model

Weekly Downloads

0

Version

1.1.0

License

none

Unpacked Size

9.57 kB

Total Files

9

Last publish

Collaborators

  • spiderdan98