| Lines of Code | 33 | 
| Duplicated Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
| 1 | let providers = {} | 
            ||
| 2 | |||
| 3 | // load all files from ./Providers folder into providers variable  | 
            ||
| 4 | function importAll (moduleRequire) { | 
            ||
| 5 |   moduleRequire.keys().forEach(key => { | 
            ||
| 6 | providers[key.substr(2, key.length - 5)] = moduleRequire(key).init  | 
            ||
| 7 | })  | 
            ||
| 8 | }  | 
            ||
| 9 | importAll(require.context('./Providers/', true, /\.js$/)) | 
            ||
| 10 | |||
| 11 | let instance  | 
            ||
| 12 | |||
| 13 | class ExternalScriptLoader { | 
            ||
| 14 |   constructor () { | 
            ||
| 15 |     if (!instance) { | 
            ||
| 16 | instance = this  | 
            ||
| 17 | }  | 
            ||
| 18 | return instance  | 
            ||
| 
                                                                                                    
                        
                         | 
                |||
| 19 | }  | 
            ||
| 20 | |||
| 21 |   static getInstance () { | 
            ||
| 22 | return instance || new ExternalScriptLoader()  | 
            ||
| 23 | }  | 
            ||
| 24 | |||
| 25 |   initialize (type, options = {}) { | 
            ||
| 26 |     if (!this[type]) { | 
            ||
| 27 | this[type] = providers[type](options)  | 
            ||
| 28 | }  | 
            ||
| 29 | return this[type]  | 
            ||
| 30 | }  | 
            ||
| 31 | }  | 
            ||
| 32 | |||
| 33 | window.FlyntExternalScriptLoader = ExternalScriptLoader  | 
            ||
| 34 |