npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ilib-es6

v14.20.0

Published

ES6 wrappers around iLib classes

Downloads

35

Readme

ilib-es6

ES6 wrappers around the ilib classes so that you can import just what you need and use the classes with promises.

Usage

All classes that ilib contains are echoed here in ilib-es6. You may use these as you had before with the exact same API. However, there are a few additional methods and other differences.

Including Classes

With ilib-es6, you import classes instead of requiring them.

old syntax with regular ilib:

var AddressFmt = require("ilib/lib/AddressFmt.js");

(This old syntax is still supported, though.)

new syntax with ilib-es6:

import { AddressFmt } from 'ilib-es6';

Asynchronous Calls Using Promises

When calling classes asynchronously, you can continue to use callbacks as before or you can use the promises returned from the create factory method.

old async call using callbacks:

var AddressFmt = require("ilib/lib/AddressFmt.js");

new AddressFmt({
  sync: false,
  onLoad: function(af) {
    // format some addresses using the af formatter
  }
});

new async calls using promises:

import { AddressFmt } from "ilib-es6";

AddressFmt.create().then(af => {
  // format some addresses using the af formatter
});

Note that you can still use either method above. Both are still supported.

Promises with Parameters

The create factory method takes the same parameters that the class's constructor takes. For example, to create an address formatter in Switzerland with French, you would do:

import { AddressFmt } from "ilib-es6";

AddressFmt.create({
  locale: "fr-CH"
}).then(af => {
  // format some Swiss addresses using the af formatter
});

Note that you do not need to pass the sync or onLoad parameters to the create factory method. Calling the create factory method implies asynchronous mode using promises instead of callbacks.

Asynchronous Methods

Promises are also supported for some class methods that are asynchronous as well. Example:

import { AddressFmt } from "ilib-es6";

AddressFmt.create().then(af => {
  // false for "asynchronous". getFormatInfo returns a promise as well.
  return af.getFormatInfo("en-US", false);
}).then(info => {
  // use the info here to create an address input form
});

Synchronous Classes

You can continue using ilib classes synchronously as you had before.

old:

var AddressFmt = require("ilib/lib/AddressFmt.js");

var af = new AddressFmt();
// now format some addresses using the af formatter

new:

import { AddressFmt } from "ilib-es6";

const af = new AddressFmt();
// now format some addresses using the af formatter

When a class is used synchronously, the constructor returns an instance of the class. When an instance of the same class is constructed asynchronously with sync: false, the constructor returns an empty default instance and calls the callback function given in the onLoad property when all of the locale data is finished loading.

Using Factories

Factory functions in ilib now have two types: a regular version that returns an instance of the class, and the asynchronous-only version that returns a promise. The async version of the factory always has an "Async" suffix at the end of its name.

Synchronous:

import { CalendarFactory } from 'ilib-es6';

let cal = CalendarFactory({locale: 'ja-JP'});
// do something with the new cal calendar.

Asynchronous:

import { CalendarFactoryAsync } from 'ilib-es6';


CalendarFactoryAsync({locale: 'ja-JP'}).then(function(cal) {
  // do something with the new cal calendar.
});

License

Copyright © 2019-2024, JEDLSoft

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and limitations under the License.

Versions

Starting with version 14.2.0, the version of ilib-es6 will echo the version of ilib that it goes with. Earlier than that, version 2.0.0 of ilib-es6 went with ilib versions 14.0.0 to 14.1.2.

You should not use ilib-es6 with ilib 13.X and earlier, as the async support in ilib didn't work in all cases. Although many of the async calls did work in 13.X, a few important ones did not. (For example, there were missing callbacks, some classes were missing async mode, some static methods were not able to be called asynchronously, and in some cases, it was calling the callback before the async call was done, etc.) These problems were all fixed and tested in 14.X, so it is highly recommended to use 14.X versions of ilib with ilib-es6.

As of v14.15.0, ilib-es6 will no longer have transpiled sources in it will be listed as an ESM-only project in its package.json. If you need commonjs sources, use ilib directly. Because of this, this package will no longer work on node versions less than 12.