Skip to content

How to include

Eugene Lazutkin edited this page Nov 26, 2019 · 8 revisions

heya-io can be installed with npm (newer versions install packages using a flat structure) or bower. The former put packages into node_modules/, the latter put into bower_components/. In the examples below, we assume that npm was used.

AMD

AMD is the easiest option, because it takes care of all dependencies. Example (based on tests.html):

<!DOCTYPE html>
<html>
  <head>
    <title>Example</title>
    <script>
      require.config({
        baseUrl: ".",
        packages: [
          {name: "heya-async", location: "node_modules/heya-async"},
          {name: "heya-io", location: "node_modules/heya-io"}
        ],
        paths: {
          domReady: "http://cdnjs.cloudflare.com/ajax/libs/require-domReady/2.0.1/domReady.min"
        }
      });
      require(
        ["heya-io/io", "heya-async/FastDeferred", "domReady!"],
        function(io, Deferred){
          io.Deferred = Deferred; // use custom fast deferred
          // more code that use io()
        }
      );
    </script>
  </head>
  <body>
    <!-- some HTML stuff -->
  </body>
</html>

The map of AMD modules:

File name Returns Defines Description
io.js io The main functionality
jsonp.js jsonp JSON-P transport
load.js load <script> transport
fetch.js io io.fetch fetch() transport
bust.js io Cache-busting helper.
mock.js io io.mock Mock service.
track.js io io.track Track service.
cache.js io io.cache Cache service.
bundle.js io io.bundle Bundle service.
retry.js io io.retry Retry service.
FauxXHR.js FauxXHR General utility.
scaffold.js scaffold Service utility.
main.js io Main + cache + bundle
url.js url url tagged literals

Globals

Using globals is easy too, but requires to be careful with dependencies:

<!DOCTYPE html>
<html>
  <head>
    <title>Example</title>
    <script src="node_modules/heya-async/dist/Micro.js"></script>
    <script src="node_modules/heya-async/dist/FastDeferred.js"></script>
    <script src="node_modules/heya-io/dist/io.js"></script>
    <script>
      heya.io.Deferred = heya.async.FastDeferred;
      // more code that use io()
    </script>
  </head>
  <body>
    <!-- some HTML stuff -->
  </body>
</html>

By default, heya-io uses heya.io global namespace. Mapping of files to globals:

File name Global Description
dist/io.js heya.io The main functionality
dist/jsonp.js heya.io.jsonp JSON-P transport
dist/load.js heya.io.load <script> transport
dist/fetch.js heya.io.fetch fetch() transport
dist/bust.js heya.io Cache-busting helper.
dist/mock.js heya.io.mock Mock service.
dist/track.js heya.io.track Track service.
dist/cache.js heya.io.cache Cache service.
dist/bundle.js heya.io.bundle Bundle service.
dist/retry.js heya.io.retry Retry service.
dist/FauxXHR.js heya.io.FauxXHR General utility.
dist/scaffold.js heya.io.scaffold Service utility.
dist/main.js heya.io Main + cache + bundle
dist/url.js heya.io.url url tagged literals

Dependencies

Implicitly io does not depend on any other package. Following internal dependencies are exist between files in dist/:

  • io.js — no dependencies.
  • FauxXHR.js — no dependencies.
  • scaffold.js — no dependencies
  • jsonp.jsio.js
  • load.jsio.js
  • fetch.jsio.js, FauxXHR.js
  • bust.jsio.js
  • track.jsio.js, scaffold.js
  • cache.jsio.js, scaffold.js, FauxXHR.js
  • bundle.jsio.js, scaffold.js, track.js, FauxXHR.js
  • retry.jsio.js, scaffold.js
  • mock.jsio.js, scaffold.js, FauxXHR.js
  • url.js — no dependencies.
Clone this wiki locally