UNPKG

2.11 kBJavaScriptView Raw
1"use strict";
2/**
3 * Copyright 2021 Google LLC
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17var _a;
18Object.defineProperty(exports, "__esModule", { value: true });
19exports.hasAbortController = exports.isNodeJS = exports.hasTextDecoder = exports.hasTextEncoder = exports.hasWindowFetch = void 0;
20/* global window */
21const features = {
22 windowFetch: typeof window !== 'undefined' && (window === null || window === void 0 ? void 0 : window.fetch) &&
23 typeof (window === null || window === void 0 ? void 0 : window.fetch) === 'function',
24 // eslint-disable-next-line node/no-unsupported-features/node-builtins
25 textEncoder: typeof TextEncoder !== 'undefined',
26 // eslint-disable-next-line node/no-unsupported-features/node-builtins
27 textDecoder: typeof TextDecoder !== 'undefined',
28 nodeJS: typeof process !== 'undefined' && ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node),
29 abortController: typeof AbortController !== 'undefined',
30};
31function hasWindowFetch() {
32 return features.windowFetch;
33}
34exports.hasWindowFetch = hasWindowFetch;
35function hasTextEncoder() {
36 return features.textEncoder;
37}
38exports.hasTextEncoder = hasTextEncoder;
39function hasTextDecoder() {
40 return features.textDecoder;
41}
42exports.hasTextDecoder = hasTextDecoder;
43function isNodeJS() {
44 return features.nodeJS;
45}
46exports.isNodeJS = isNodeJS;
47function hasAbortController() {
48 return features.abortController;
49}
50exports.hasAbortController = hasAbortController;
51//# sourceMappingURL=featureDetection.js.map
\No newline at end of file