✌️ Nil

No more cannot read property x of undefined
wih a simple ~200bytes script!
💪 Live Demo

💻 Installation
$ yarn add epk-nil
or
$ npm install epk-nil --save
then inport it as a module
ES6
import Nil from 'epk-nil'
ES5
const Nil = require('epk-nil')
1991 fan? JsDelivr to the rescue!
<script src="https://cdn.jsdelivr.net/npm/epk-nil@0.1.0/dist/dist.js" type="text/javascript"> </script>
👌 Usage
Vanilla JS Example
import Nil from 'epk-nil'
const myObject = {
user: {
name: 'John',
surname: 'Doe',
birthday: '1995-01-29',
contacts: {
email: 'foo@bar.com',
phone: '000 0000000'
},
languages: ['english', 'italian']
}
}
const a = Nil(myObject, 'user.name')
const b = Nil(myObject, 'languages[1]')
const c = Nil(myObject, 'foo.bar.baz')
if (a) {
console.log(a)
}
if (b) {
console.log(b)
}
if (c) {
console.log(c)
}
Real world usage (React)
import React from "react";
import ReactDOM from "react-dom";
import Nil from "epk-nil";
const user = {
name: {
first_name: "John",
last_name: "Doe"
},
contacts: {
phone: "+00 000 0000000",
email: "john@doe.do"
}
};
const App = () =>
<div className="App">
<h1>Hello {Nil(user, "name.first_name")}!</h1>
<h2> {Nil(user, "contacts.email")} </h2>
<p>
{Nil(user, "contacts.phone.office") || "You don't have an office phone."}
</p>
</div>
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
⚖️ License
Nil is released undet the MIT License.