0.16.2 • Published 2 months ago

@tao.js/utils v0.16.2

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
2 months ago

@tao.js/utils

set of useful utilities for tao.js

See the website tao.js for more information or the issues associated with this package.

Commitizen friendly lerna Gitter chat

Install

Using npm:

npm install --save @tao.js/utils

or using yarn:

yarn add @tao.js/utils

Importing

The package provides 3 different ways to import based upon how it's being used.

All @tao.js packages use the following pattern to provide keys in package.json telling Node and bundlers where to find the packages distributed code:

  • module - provides a ES Module version of the package (in the dist folder)
  • main - provides a CommonJS version of the package (in the lib folder)
  • bundles - provides keys for any UMD bundles of the package (in the bundles folder)
    • currently there is no bundler using this pattern but now you know where to find it

Why NO browser key in package.json

The current pattern for packaging bundles meant for browser import is to provide a browser key in package.json. This should be the way to go but unfortunately doing this doesn't provide control to you in certain situations.

For instance, in Webpack 4, which is used by create-react-app, the default configuration is to prefer the browser bundle when packaging a build intended for a browser. Unless you are controlling this configuration in your create-react-app (and most don't) then the build process will use the UMD bundle and not be able to leverage tree-shaking if you only import and use parts of the package library.

In this circumstance, even if you do what you think is correct and:

import { Channel } from '@tao.js/utils';

in your file, because webpack is using the UMD bundle, it will import the whole UMD bundle and make that part of your output.

ES Module

If you are using import statements to import @tao.js/utils then package.json identifies a module key to tell Node or your bundler of choice where to find the version packaged as ES Modules (the dist folder).

import { Channel } from '@tao.js/utils';

This is the recommended way to import the package and most modern builders & bundlers can handle it

CommonJS

If you are using require statements and not a bundler that understands ES Modules, the package.json identifies the main key to tell Node or your bundler where to find the version packaged as a CommonJS module (the lib folder).

// Channel constructor
const Channel = require('@tao.js/utils').Channel;

// OR
const taoUtils = require('@tao.js/utils');
taoUtils.Channel;
taoUtils.Source;

UMD Bundles

If you are not using a bundler to build your web application or just want to use a full bundled version of the package by importing directly into a <script> tag then you will find the bundles in the bundles folder (also identified in the bundles key in package.json).

  • bundles/browser.umd.js - available as global tao.utils
// Channel constructor
const Channel = tao.utils.Channel;

// OR
const channel = new tao.utils.Channel(tao.TAO);

In the future, this will be published to a CDN for convenience.

All Packages in the @tao.js family

packagedescriptiondocs page
npm @tao.js/coreCore Javascript implementation of the TAO ☯ programming paradigmtao.js.org
npm @tao.js/utilsExtensions to Core used to build out the Signal Networktao.js Utilities for Implementers
npm @tao.js/reactAdapter to use tao.js with ReactUsage with React.js
npm @tao.js/socket.iosocket.io middleware to run tao.js seamlessly on server & clienttao.js for Socket.io
npm @tao.js/koaExpose a TAO signal network over http using a koa app servertao.js for Koa
npm @tao.js/routerconnects url routing with tao.jsURL Handling with @tao.js/router
0.16.2

2 months ago

0.16.0

2 months ago

0.16.1

2 months ago

0.15.0

1 year ago

0.14.3

2 years ago

0.14.1

2 years ago

0.14.2

2 years ago

0.14.0

3 years ago

0.13.2

3 years ago

0.13.0

3 years ago

0.12.1

3 years ago

0.12.0

3 years ago

0.10.0

4 years ago

0.11.0

4 years ago

0.9.0

5 years ago