Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@dojo/shim

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dojo/shim

Modules that provide modular fills of ES6+ functionality

  • 2.0.0-beta1.1
  • beta1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
80
increased by31.15%
Maintainers
1
Weekly downloads
 
Created
Source

@dojo/shim

Build Status codecov npm version

This package provides functional shims for ECMAScript.

It is targeted at providing function shims for ECMAScript 6 and beyond targeted at ECMAScript 5. It is different other solutions of shimming or polyfilling functionality, in that it does not provide the functionality via augmenting the built in classes in the global namespace.

The one exception to this though is the Symbol functionality, in that the well-known symbols need to be located off of the global Symbol object in order to ensure that the correct symbol is referenced.

WARNING This is beta software. While we do not anticipate significant changes to the API at this stage, we may feel the need to do so. This is not yet production ready, so you should use at your own risk.

Usage

To use @dojo/shim, install the package along with its required peer dependencies:

npm install @dojo/shim

# peer dependencies
npm install @dojo/has

Features

Many of the features in this package will fallback to a native implementation if one is available.

Array Methods

@dojo/shim/array provides implementations of many array utilities.

Data Structures

Map

The @dojo/shim/Map class is an implementation of the ES2015 Map specification without iterators for use in older browsers.

Set

The @dojo/shim/Set class is an implementation of the ES2015 Set specification. A Set is used to a collection of unique values.

import Set from '@dojo/shim/Set';

const values = new Set<string>();
values.add('one');
values.add('two');
values.add('one');

values.forEach((value) => {
    console.log(value);
});

// output:
// one
// two
WeakMap

The @dojo/shim/WeakMap class is an implementation of the ES2015 WeakMap specification without iterators for use in older browsers. The main difference between WeakMap and Map is that WeakMap's keys can only be objects and that the store has a weak reference to the key/value pair. This allows for the garbage collector to remove pairs.

Look at Map for more information on how to use WeakMap.

Iterators

The @dojo/shim/iterator module is an implementation of the ES2015 Iterator specification.

Math

The @dojo/shim/math module provides implementations for many math methods.

Number

The dojo/shim/number module provides implementations for several Number methods.

  • isNaN
  • isFinite
  • isInteger
  • isSafeInteger

Object

The dojo/shim/object provides implementations of Object methods.

  • is
  • getOwnPropertySymbols
  • getOwnPropertyNames
  • getOwnPropertyDescriptor
  • values
  • entries

Observables

The @dojo/shim/Observable class is an implementation of the proposed Observable specification. Observables are further extended in @dojo/core/Observable.

Promises

@dojo/shim/Promise is an implementation of the ES2015 Promise specification.

String

The @dojo/shim/string module contains String methods.

Symbols

@dojo/shim/Symbol provides an implementation of the ES2015 Symbol specification for environments that do not natively support Symbol.

How do I contribute?

We appreciate your interest! Please see the Dojo 2 Meta Repository for the Contributing Guidelines and Style Guide.

Installation

To start working with this package, clone the repository and run npm install.

In order to build the project run grunt dev or grunt dist.

Testing

Test cases MUST be written using Intern using the Object test interface and Assert assertion interface.

90% branch coverage MUST be provided for all code submitted to this repository, as reported by istanbul’s combined coverage results for all supported platforms.

To test locally in node run:

grunt test

To test against browsers with a local selenium server run:

grunt test:local

To test against BrowserStack or Sauce Labs run:

grunt test:browserstack

or

grunt test:saucelabs

Licensing information

© JS Foundation & contributors. New BSD license.

FAQs

Package last updated on 28 Mar 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc