index.js (1709B)
1 /** 2 * @license Apache-2.0 3 * 4 * Copyright (c) 2018 The Stdlib Authors. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 'use strict'; 20 21 /** 22 * Test whether an object contains a nested key path, either own or inherited. 23 * 24 * @module @stdlib/assert/deep-has-property 25 * 26 * @example 27 * var deepHasProp = require( '@stdlib/assert/deep-has-property' ); 28 * 29 * function Foo() { 30 * return this; 31 * } 32 * Foo.prototype.b = { 33 * 'c': 'd' 34 * }; 35 * 36 * var obj = { 37 * 'a': new Foo() 38 * }; 39 * 40 * var bool = deepHasProp( obj, 'a.b.c' ); 41 * // returns true 42 * 43 * bool = deepHasProp( obj, [ 'a', 'b', 'c' ] ); 44 * // returns true 45 * 46 * @example 47 * var factory = require( '@stdlib/assert/deep-has-property' ).factory; 48 * 49 * var has = factory( 'a/b/c', { 50 * 'sep': '/' 51 * }); 52 * 53 * function Foo() { 54 * return this; 55 * } 56 * Foo.prototype.b = { 57 * 'c': 'd' 58 * }; 59 * 60 * var obj = { 61 * 'a': new Foo() 62 * }; 63 * 64 * var bool = has( obj ); 65 * // returns true 66 */ 67 68 // MODULES // 69 70 var setReadOnly = require( '@stdlib/utils/define-nonenumerable-read-only-property' ); 71 var deepHasProp = require( './main.js' ); 72 var factory = require( './factory.js' ); 73 74 75 // MAIN // 76 77 setReadOnly( deepHasProp, 'factory', factory ); 78 79 80 // EXPORTS // 81 82 module.exports = deepHasProp;