1.3.3 • Published 6 years ago

@iyuo/join v1.3.3

Weekly downloads
9
License
Apache-2.0
Repository
github
Last release
6 years ago

join

NPM version License Twitter

The TypeScript plugin join for @iyuo/context ecosystem. Object join technics.

Requirements

Install @iyuo/context.

npm install @iyuo/context

Install

Node:

https://nodei.co/npm/@iyuo/join.png?downloads=true&downloadRank=true&stars=true

npm install @iyuo/join

Browser

<script src="//iyuo.github.io/join/dist/join.min.js"></script>

Import package to the project

TypeScript:

import { join } from "@iyuo/join";

or JavaScript:

var iyuo = require("@iyuo/join");
var join = iyuo.join;

Documentation

Link: https://iyuo.github.io/join/docs/index.html

Plugin Sample

Left part

var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: "Three"
}).make(
  join(JoinTypes.left, {
    sample2: "Dos",
    sample3: "Tres",
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).toBe("One");
expect(c.sample2).not.toBeDefined();
expect(c.sample3).not.toBeDefined();
expect(c.sample4).not.toBeDefined();
*/

Right part

var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: "Three"
}).make(
  join(JoinTypes.right, {
    sample2: "Dos",
    sample3: "Tres",
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).not.toBeDefined();
expect(c.sample2).not.toBeDefined();
expect(c.sample3).not.toBeDefined();
expect(c.sample4).toBe("Quatro");
*/

Middle part

Middle none

var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: "Three"
}).make(
  join(JoinTypes.left | JoinTypes.right, {
    sample2: "Dos",
    sample3: "Tres",
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).toBe("One");
expect(c.sample2).not.toBeDefined();
expect(c.sample3).not.toBeDefined();
expect(c.sample4).toBe("Quatro");
*/

Middle from left object

var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: "Three"
}).make(
  join(JoinTypes.midLeft, {
    sample2: "Dos",
    sample3: "Tres",
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).not.toBeDefined();
expect(c.sample2).toBe("Two");
expect(c.sample3).toBe("Three");
expect(c.sample4).not.toBeDefined();
*/

Middle from right object

var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: "Three"
}).make(
  join(JoinTypes.midRight, {
    sample2: "Dos",
    sample3: "Tres",
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).not.toBeDefined();
expect(c.sample2).toBe("Dos");
expect(c.sample3).toBe("Tres");
expect(c.sample4).not.toBeDefined();
*/

Middle merge

var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: {
    smile: "cheese"
  }
}).make(
  join(JoinTypes.midMerge, {
    sample2: "Dos",
    sample3: {
      sorrir: "queijo"
    },
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).not.toBeDefined();
expect(c.sample2).toBe("Dos");
expect(c.sample3.smile).toBe("cheese");
expect(c.sample3.sorrir).toBe("queijo");
expect(c.sample4).not.toBeDefined();
*/

Combined joins

— innerJoin = none | midMerge | none,
— leftJoin = left | midMerge | none,
— rightJoin = none | midMerge | right,
— fullJoin = left | midMerge | right
var c = new Context({
  sample1: "One",
  sample2: "Two",
  sample3: {
    smile: "cheese"
  }
}).make(
  join(JoinTypes.innerJoin, {
    sample2: "Dos",
    sample3: {
      sorrir: "queijo"
    },
    sample4: "Quatro"
  })
);

console.log(c);
/*
expect(c.sample1).not.toBeDefined();
expect(c.sample2).toBe("Dos");
expect(c.sample3.smile).toBe("cheese");
expect(c.sample3.sorrir).toBe("queijo");
expect(c.sample4).not.toBeDefined();
*/

Demo

See, how it's working: https://runkit.com/lopatnov/join-demo

Test it with a runkit: https://npm.runkit.com/@iyuo/join

Rights and Agreements

License Apache-2.0

Copyright 2019 Oleksandr Lopatnov

1.3.3

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.0

6 years ago

1.3.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago