UNPKG

@flowplayer/player

Version:
64 lines (60 loc) 1.48 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /** * @public * adds support for asynchronous plugin loading * issue/127 */ function define(root, // TODO type this to PlayerRoot plugin // Only expose explicitly stated API with NoInfer ) { // strip down internal class API // handle cjs setups if (typeof exports === "object" && typeof module !== "undefined") return plugin; if (isESM()) return plugin; if (!("flowplayer" in root)) root.flowplayer = { extensions: [] }; const self = root.flowplayer; if (typeof self === "function") { self(plugin); return plugin; } if (!Array.isArray(self.extensions)) self.extensions = []; if (!~self.extensions.indexOf(plugin)) self.extensions.push(plugin); return plugin; } /** * @public */ function isESM() { return document.currentScript === null; } /** * @public */ function root() { if (typeof window !== "undefined") return window; if (typeof global !== "undefined") return global; return {}; } /** * @public */ function modules() { const self = root(); // naively check for existance of flowplayer umd const mod = self.flowplayer ? self.flowplayer : { extensions: [] }; if (!Array.isArray(mod.extensions)) mod.extensions = []; return mod; } exports.define = define; exports.isESM = isESM; exports.modules = modules; exports.root = root;