main.js (1513B)
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 /* global window */ 20 21 'use strict'; 22 23 // MODULES // 24 25 var getGlobal = require( '@stdlib/utils/global' ); 26 var IS_NODE = require( './../../is-node' ); 27 var globalScope = require( './global_scope.js' ); 28 29 30 // VARIABLES // 31 32 var Global = getGlobal(); 33 34 35 // MAIN // 36 37 /** 38 * Returns a boolean indicating if the runtime is a web browser. 39 * 40 * @returns {boolean} boolean indicating if runtime is a web browser 41 * 42 * @example 43 * var bool = isBrowser(); 44 * // returns <boolean> 45 */ 46 function isBrowser() { 47 return ( 48 // Check that we are not running in a Node.js runtime: 49 IS_NODE === false && 50 51 // Check for presence of `window` variable: 52 typeof window === 'object' && 53 54 // Check that the `window` variable matches the determined global variable: 55 window === Global && 56 57 // Check that the `window` variable is equal to the global scope: 58 globalScope === true 59 ); 60 } 61 62 63 // EXPORTS // 64 65 module.exports = isBrowser;