/asset-loader

A module to load frontend assets.

Primary LanguageTypeScriptMIT LicenseMIT

asset-loader

Installation

npm install --save @braintree/asset-loader

Usage

var loadScript = require("@braintree/asset-loader/load-script");

loadScript({
  src: "https://example.com/some-js-file.js",
  container: domNodeToAddScriptTagTo, // optional, defaults to document.head
  id: "id-to-give-script-tag", // optional
  crossorigin: "anonymous", // optional
  dataAttributes: {
    // optional
    foo: "value", // adds data-foo="value" to script tag
  },
  // optional, by default the module will resolve with an existing script
  // node if a script tag with the same src exists on the page, by setting
  // this value to `true`, it will add the script to the page even if an
  // identical script tag already exists on the page.
  forceScriptReload: true,
})
  .then(function (script) {
    script; // a reference to the dom node
  })
  .catch(function (err) {
    // occurs when script fails to load or is aborted
  });
var loadStylesheet = require("@braintree/asset-loader/load-stylesheet");

loadStylesheet({
  href: "https://example.com/some-css-file.css",
  container: domNodeToAddScriptTagTo, // optional, defaults to document.head and always puts it at the top of the container
  id: "id-to-give-to-stylesheet-element", // optional
}).then(function (stylesheet) {
  stylesheet; // a reference to the dom node
});

Both methods will resolve immediately if the script or link element is already on the page.

Development

Run tests:

npm test