1.3.3 • Published 6 years ago
@iyuo/join v1.3.3
join
The TypeScript plugin join for @iyuo/context ecosystem. Object join technics.
Requirements
Install @iyuo/context.
npm install @iyuo/context
Install
Node:
npm install @iyuo/join
<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