Socket
Socket
Sign inDemoInstall

react-async-script

Package Overview
Dependencies
9
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.9.1 to 0.10.0

19

CHANGELOG.md

@@ -0,5 +1,12 @@

v0.10.0 - Tue, 24 Jul 2018 14:40:00 PST
--------------------------------------
- Clean up use of Map to remove core-js polyfills [(#27)](github.com/dozoisch/react-async-script/pull/27)
v0.9.1 - Wed, 19 Apr 2017 6:05:00 PST
--------------------------------------
- Fixed issue where method was not bound properly (#19)
- Fixed issue where method was not bound properly [(#19)](github.com/dozoisch/react-async-script/pull/19)

@@ -11,3 +18,3 @@

- Changed updated to react >=15.5 (#18)
- Changed updated to react >=15.5 [(#18)](github.com/dozoisch/react-async-script/pull/18)

@@ -19,3 +26,3 @@

- Added removeOnUnmount parameter (#14)
- Added removeOnUnmount parameter [(#14)](github.com/dozoisch/react-async-script/pull/14)

@@ -27,3 +34,3 @@

- Updated deps to react 15 and babel 6 (#13)
- Updated deps to react 15 and babel 6 [(#13)](github.com/dozoisch/react-async-script/pull/13)
- Go back to manual changelogs

@@ -36,3 +43,3 @@

- [0bc67b2](../../commit/0bc67b2) [fixed] typo in documentation (#9)
- [0bc67b2](../../commit/0bc67b2) [fixed] typo in documentation [(#9)](github.com/dozoisch/react-async-script/pull/9)

@@ -56,3 +63,3 @@

## 0.4.0
## 0.4.0

@@ -59,0 +66,0 @@ - Fixed issue with refs

@@ -13,6 +13,2 @@ "use strict";

var _getIterator2 = require("babel-runtime/core-js/get-iterator");
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck");

@@ -30,6 +26,2 @@

var _map = require("babel-runtime/core-js/map");
var _map2 = _interopRequireDefault(_map);
exports.default = makeAsyncScript;

@@ -47,3 +39,3 @@

var SCRIPT_MAP = new _map2.default();
var SCRIPT_MAP = {};

@@ -89,7 +81,7 @@ // A counter used to generate a unique id for each component that uses the function

if (globalName && typeof window[globalName] !== "undefined") {
SCRIPT_MAP.set(scriptURL, { loaded: true, observers: new _map2.default() });
SCRIPT_MAP[scriptURL] = { loaded: true, observers: {} };
}
if (SCRIPT_MAP.has(scriptURL)) {
var entry = SCRIPT_MAP.get(scriptURL);
if (SCRIPT_MAP[scriptURL]) {
var entry = SCRIPT_MAP[scriptURL];
if (entry && (entry.loaded || entry.errored)) {

@@ -99,16 +91,16 @@ this.asyncScriptLoaderHandleLoad(entry);

}
entry.observers.set(key, function (entry) {
entry.observers[key] = function (entry) {
return _this2.asyncScriptLoaderHandleLoad(entry);
});
};
return;
}
var observers = new _map2.default();
observers.set(key, function (entry) {
var observers = {};
observers[key] = function (entry) {
return _this2.asyncScriptLoaderHandleLoad(entry);
});
SCRIPT_MAP.set(scriptURL, {
};
SCRIPT_MAP[scriptURL] = {
loaded: false,
observers: observers
});
};

@@ -121,25 +113,10 @@ var script = document.createElement("script");

var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {
if (SCRIPT_MAP.has(scriptURL)) {
var mapEntry = SCRIPT_MAP.get(scriptURL);
if (SCRIPT_MAP[scriptURL]) {
var mapEntry = SCRIPT_MAP[scriptURL];
var observersMap = mapEntry.observers;
for (var _iterator = observersMap, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
for (var obsKey in observersMap) {
if (func(observersMap[obsKey])) {
delete observersMap[obsKey];
}
var _ref2 = _ref,
obsKey = _ref2[0],
observer = _ref2[1];
if (func(observer)) {
observersMap.delete(obsKey);
}
}

@@ -154,3 +131,3 @@ }

script.onload = function () {
var mapEntry = SCRIPT_MAP.get(scriptURL);
var mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry) {

@@ -168,3 +145,3 @@ mapEntry.loaded = true;

script.onerror = function (event) {
var mapEntry = SCRIPT_MAP.get(scriptURL);
var mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry) {

@@ -184,3 +161,3 @@ mapEntry.errored = true;

window.setTimeout(function () {
var mapEntry = SCRIPT_MAP.get(scriptURL);
var mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry && mapEntry.loaded !== true) {

@@ -213,7 +190,7 @@ script.onload();

// Clean the observer entry
var mapEntry = SCRIPT_MAP.get(scriptURL);
var mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry) {
mapEntry.observers.delete(this.asyncScriptLoaderGetScriptLoaderID());
delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];
if (options.removeOnUnmount === true) {
SCRIPT_MAP.delete(scriptURL);
delete SCRIPT_MAP[scriptURL];
}

@@ -227,2 +204,3 @@ }

var globalName = options.globalName;
// remove asyncScriptOnLoad from childprops
var _props = this.props,

@@ -248,21 +226,8 @@ asyncScriptOnLoad = _props.asyncScriptOnLoad,

AsyncScriptLoader.asyncScriptLoaderTriggerOnScriptLoaded = function () {
var mapEntry = SCRIPT_MAP.get(scriptURL);
var mapEntry = SCRIPT_MAP[scriptURL];
if (!mapEntry || !mapEntry.loaded) {
throw new Error("Script is not loaded.");
}
for (var _iterator2 = mapEntry.observers.values(), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref3 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref3 = _i2.value;
}
var observer = _ref3;
observer(mapEntry);
for (var obsKey in mapEntry.observers) {
mapEntry.observers[obsKey](mapEntry);
}

@@ -273,15 +238,3 @@ delete window[options.callbackName];

if (options.exposeFuncs) {
var _loop = function _loop() {
if (_isArray3) {
if (_i3 >= _iterator3.length) return "break";
_ref4 = _iterator3[_i3++];
} else {
_i3 = _iterator3.next();
if (_i3.done) return "break";
_ref4 = _i3.value;
}
var funcToExpose = _ref4;
/* eslint-disable no-loop-func */
options.exposeFuncs.forEach(function (funcToExpose) {
AsyncScriptLoader.prototype[funcToExpose] = function () {

@@ -292,14 +245,5 @@ var _getComponent;

};
/* eslint-enable no-loop-func */
};
for (var _iterator3 = options.exposeFuncs, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : (0, _getIterator3.default)(_iterator3);;) {
var _ref4;
var _ret = _loop();
if (_ret === "break") break;
}
});
}
return AsyncScriptLoader;
}
{
"name": "react-async-script",
"version": "0.9.1",
"version": "0.10.0",
"description": "A composition mixin for loading scripts asynchronously for React",

@@ -5,0 +5,0 @@ "main": "lib/async-script-loader.js",

import React from "react";
import PropTypes from "prop-types";
let SCRIPT_MAP = new Map();
let SCRIPT_MAP = {};

@@ -34,7 +34,7 @@ // A counter used to generate a unique id for each component that uses the function

if (globalName && typeof window[globalName] !== "undefined") {
SCRIPT_MAP.set(scriptURL, { loaded: true, observers: new Map() });
SCRIPT_MAP[scriptURL] = { loaded: true, observers: {} };
}
if (SCRIPT_MAP.has(scriptURL)) {
let entry = SCRIPT_MAP.get(scriptURL);
if (SCRIPT_MAP[scriptURL]) {
let entry = SCRIPT_MAP[scriptURL];
if (entry && (entry.loaded || entry.errored)) {

@@ -44,12 +44,12 @@ this.asyncScriptLoaderHandleLoad(entry);

}
entry.observers.set(key, (entry) => this.asyncScriptLoaderHandleLoad(entry));
entry.observers[key] = (entry) => this.asyncScriptLoaderHandleLoad(entry);
return;
}
let observers = new Map();
observers.set(key, (entry) => this.asyncScriptLoaderHandleLoad(entry));
SCRIPT_MAP.set(scriptURL, {
let observers = {};
observers[key] = (entry) => this.asyncScriptLoaderHandleLoad(entry);
SCRIPT_MAP[scriptURL] = {
loaded: false,
observers: observers,
});
observers,
};

@@ -62,9 +62,9 @@ let script = document.createElement("script");

let callObserverFuncAndRemoveObserver = (func) => {
if (SCRIPT_MAP.has(scriptURL)) {
let mapEntry = SCRIPT_MAP.get(scriptURL);
if (SCRIPT_MAP[scriptURL]) {
let mapEntry = SCRIPT_MAP[scriptURL];
let observersMap = mapEntry.observers;
for (let [obsKey, observer] of observersMap) {
if (func(observer)) {
observersMap.delete(obsKey);
for (let obsKey in observersMap) {
if (func(observersMap[obsKey])) {
delete observersMap[obsKey];
}

@@ -80,3 +80,3 @@ }

script.onload = () => {
let mapEntry = SCRIPT_MAP.get(scriptURL);
let mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry) {

@@ -94,3 +94,3 @@ mapEntry.loaded = true;

script.onerror = (event) => {
let mapEntry = SCRIPT_MAP.get(scriptURL);
let mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry) {

@@ -110,3 +110,3 @@ mapEntry.errored = true;

window.setTimeout(() => {
const mapEntry = SCRIPT_MAP.get(scriptURL);
const mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry && mapEntry.loaded !== true) {

@@ -139,7 +139,7 @@ script.onload();

// Clean the observer entry
let mapEntry = SCRIPT_MAP.get(scriptURL);
let mapEntry = SCRIPT_MAP[scriptURL];
if (mapEntry) {
mapEntry.observers.delete(this.asyncScriptLoaderGetScriptLoaderID());
delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];
if (options.removeOnUnmount === true) {
SCRIPT_MAP.delete(scriptURL);
delete SCRIPT_MAP[scriptURL];
}

@@ -151,2 +151,3 @@ }

const globalName = options.globalName;
// remove asyncScriptOnLoad from childprops
let { asyncScriptOnLoad, ...childProps } = this.props;

@@ -164,8 +165,8 @@ if (globalName && typeof window !== "undefined") {

AsyncScriptLoader.asyncScriptLoaderTriggerOnScriptLoaded = function() {
let mapEntry = SCRIPT_MAP.get(scriptURL);
let mapEntry = SCRIPT_MAP[scriptURL];
if (!mapEntry || !mapEntry.loaded) {
throw new Error("Script is not loaded.");
}
for (let observer of mapEntry.observers.values()) {
observer(mapEntry);
for (let obsKey in mapEntry.observers) {
mapEntry.observers[obsKey](mapEntry);
}

@@ -176,11 +177,9 @@ delete window[options.callbackName];

if (options.exposeFuncs) {
for (let funcToExpose of options.exposeFuncs) {
/* eslint-disable no-loop-func */
options.exposeFuncs.forEach(funcToExpose => {
AsyncScriptLoader.prototype[funcToExpose] = function() {
return this.getComponent()[funcToExpose](...arguments);
};
/* eslint-enable no-loop-func */
}
});
}
return AsyncScriptLoader;
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc