
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@dojo/shim
Advanced tools
This package provides functional shims for ECMAScript, access to the Typescript helpers, and a quick way to include the polyfills needed to run Dojo 2 in the browser.
It is targeted at providing function shims for ECMAScript 6 and beyond targeted at ECMAScript 5. It is different than 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.
There are two exceptions to this. One is the Promise
object, which needs to be globally available for async/await operations. The other exception 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.
To use @dojo/shim
, install the package along with its required peer dependencies:
npm install @dojo/shim
# peer dependencies
npm install @dojo/has
Include the module in your project to load the global shims and Typescript helpers.
import '@dojo/shim';
Since the main module loads the Typescript helpers, you'll want to turn off helper generation in your project. Add the following option to your tsconfig.json
.
{
"compilerOptions": {
"noEmitHelpers": true
}
}
If you are using Dojo 2 in the browser, you will want to load the browser polyfills. These are available by simply importing the @dojo/shim/browser
module.
// load polyfills for features used by Dojo 2
import '@dojo/shim/browser';
Note: Other Dojo 2 packages will include these dependencies. You only need to worry about this if you are using this package stand alone.
Many of the features in this package will fallback to a native implementation if one is available.
@dojo/shim/array
provides implementations of many array utilities.
The @dojo/shim/Map
class is an implementation of the ES2015 Map specification
without iterators for use in older browsers.
The @dojo/shim/Set
class is an implementation of the ES2015 Set specification. A Set is used to create 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
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.
See the Map documentation for more information on how to use WeakMap.
The @dojo/shim/iterator
module is an implementation of the ES2015 Iterator specification.
The @dojo/shim/math
module provides implementations for many math methods.
The dojo/shim/number
module provides implementations for several Number
methods.
isNaN
isFinite
isInteger
isSafeInteger
The dojo/shim/object
provides implementations of Object
methods.
The @dojo/shim/Observable
class is an implementation of the proposed Observable specification. Observables are further extended in @dojo/core/Observable
.
@dojo/shim/Promise
is an implementation of the ES2015 Promise specification.
The @dojo/shim/string
module contains String
methods.
@dojo/shim/Symbol
provides an implementation of the ES2015 Symbol specification for environments that do not natively support Symbol
.
We appreciate your interest! Please see the Dojo 2 Meta Repository for the Contributing Guidelines.
This repository uses prettier
for code styling rules and formatting. A pre-commit hook is installed automatically and configured to run prettier
against all staged files as per the configuration in the project's package.json
.
An additional npm script to run prettier
(with write set to true
) against all src
and test
project files is available by running:
npm run prettier
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
.
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
© 2018 JS Foundation & contributors. New BSD license.
FAQs
Modules that provide modular fills of ES6+ functionality
We found that @dojo/shim demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.