1.0.5 • Published 3 years ago

@safs.io/match v1.0.5

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

match

usage

import { match, LeftEl, RightEl } from "@safs.io/match";
import { match } from "@safs.io/match/match";
import { LeftEl } from "@safs.io/match/left-element";
import { RightEl } from "@safs.io/match/right-element";

publish pnpm publish --tag next --access=public

API

constraints:

  • Left elements
  1. MUST HAVE a unique id. (e.g. `new Left({ idKey: 'uuid'}))
  • Right elements
  1. MUST HAVE a unique id. (e.g. `new Right({ idKey: 'uuid'}))
  2. MUST HAVE a capacity set.
                                after rank hook can be used to build up stats(reason for exclusion, reason for rank, etc...).      
  LEFT                            |
  Object -> Rankable(Object)      |         Rankable(Object) with rankedCounterparts -> Matchable(Object)      
                            \     |       /                                                              \     
                              -> Rank ->                                                                  -> Match -> Matches
                            /             \                                                              /     |   
  Object -> Rankable(Object)                Rankable(Object) with rankedCounterparts -> Matchable(Object)      |
  RIGHT                                                                                                        |  
                                                                                                         after match hook used to build up stats (score, ???)

POST /match REQUEST

  {
    "left": [
      { "id": 1, "attrs": { "color": "blue", "fruit": "banana" } },
      { "id": 2, "attrs": { "color": "red", "fruit": "peach" } },
    ],

    "right": [
      { "id": "a23db", "capacity": 1, "attrs": { "color": "blue", "fruit": "peach" } }
    ]
  }

STATUS 201 RESPONSE

  {
    "meta": {
      "maxPossibleScore": 30,
      "totalMatches": 1,
      "totalUnmatched": {
        "left": 1,
        "right": 0
      }
    },
    "matched": [
      { "left": 1, "right": "a23db", "score": 20 },
    ],
    "unmatched": {
      "left": [{"id": 2}],
      "right": []
    }
  }
1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

1.0.1-next

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.0-next

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago

0.0.0

3 years ago