lineus-disc-model

1.0.0 • Public • Published

DiscModel

DiscModel needs a better name. I suck at names. We'll go with it for now until I ( or you, dear reader ) come up with a better one.

example

The example folder contains what should come close to a working example of how to use it.

help: git clone https://github.com/lineus/discModel.git ./dm
Cloning into './dm'...
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 3), reused 15 (delta 2), pack-reused 0
Unpacking objects: 100% (16/16), done.
help: cd dm/
dm: ls
README.md  example/   index.js
dm: cd example/
example: ./discriminator.js
in addEvent
in save callback
{ _id: 5a832e28ab96220e804e5f11,
  title: 'plain old event',
  description: 'nothing to see here',
  eventType: 'event',
  __v: 0 }
in addEvent
in save callback
{ sportEvent: { sportName: 'football', firstTeam: 'NFC', secondTeam: 'AFC' },
  _id: 5a832e28ab96220e804e5f12,
  eventType: 'sports',
  title: 'NFL ProBowl',
  description: 'Men killing each other for money',
  __v: 0 }
in addEvent
in save callback
{ leisureEvent:
   { leisureType: 'hiking',
     leisureStart: 'bottom of the mountain',
     leisureEnd: 'top of the mountain',
     description: 'we all have to die sometime' },
  _id: 5a832e28ab96220e804e5f13,
  eventType: 'leisure',
  title: 'Stranded in the woods',
  description: 'Walking outside, fighting off bears',
  __v: 0 }
{ sportEvent:
   { sportName: 'football',
     firstTeam: 'New England Patriots',
     secondTeam: 'Philidelphia Eagles' },
  eventType: 'sports',
  _id: 5a832e28ab96220e804e5f12,
  title: 'NFL Super Bowl',
  description: 'Men still killing each other for money',
  __v: 0 }
{ leisureEvent:
   { leisureType: 'hiking',
     leisureStart: 'bottom of the mountain',
     leisureEnd: 'top of the mountain',
     description: 'we all have to die sometime' },
  eventType: 'leisure',
  _id: 5a832e28ab96220e804e5f13,
  title: 'Stranded in the woods',
  description: 'fresh air is nice',
  __v: 0 }
^C
example:

WTF is it?

Basically, it's a constructor that has a base Model, and n+1 discriminator models added to it. The only meaningful usage for it so far, and probably ever, is that future calls to findOneAndUpdate on any of the Models contained within ( base or discriminator ) can be made through one call.

TL;DR

It basically obsolves you of the need to specify which specific model to call findOneAndUpdate on.

Bugs

If you find a bug, or think it's stupid, or want to send me adoration and praise, please feel free to open an issue. Want to contribute? Yeah, that too.

Readme

Keywords

Package Sidebar

Install

npm i lineus-disc-model

Weekly Downloads

1

Version

1.0.0

License

WTFPL

Unpacked Size

8.01 kB

Total Files

6

Last publish

Collaborators

  • lineus