@dojo/core
repository has been deprecated and merged into @dojo/framework
The You can read more about this change on our blog. We will continue providing patches for core
and other Dojo 2 repositories, and a CLI migration tool is available to aid in migrating projects from v2 to v3.
Dojo 2 core
This package provides a set of language helpers, utility functions, and classes for writing TypeScript applications. It includes APIs for feature detection, asynchronous operations, basic event handling, and making HTTP requests.
Usage
To use @dojo/core
, install the package along with its required peer dependencies:
npm install @dojo/core
# peer dependencies
npm install @dojo/has
npm install @dojo/shim
Features
- Feature Detection
- Language Utilities
- UrlSearchParams
- Event Handling
- HTTP Requests
- Promises and Asynchronous Operations
Feature Detection
Using the latest Web technologies isn't always as straightforward as developers would like due to differing support across platforms. @dojo/core/has
provides a simple feature detection API that makes it easy to
detect which platforms support which features.
Language Utilities
The core package provides modules offering language utilities. Some of these are heavily based on methods in the ES2015 proposal; others are additional APIs for commonly-performed tasks.
lang
The @dojo/core/lang
module contains various utility functions for tasks such as copying objects
and creating late-bound or partially applied functions.
load
The @dojo/core/load
module can be used to dynamically load modules or other arbitrary resources via plugins.
string
The @dojo/core/stringExtras
module contains various string functions that are not available as part of the ES2015 String APIs.
UrlSearchParams
The @dojo/core/UrlSearchParams
class can be used to parse and generate URL query strings.
Event handling
The @dojo/core/on
module contains methods to handle events across types of listeners. It also includes methods to handle different event use cases including only firing
once and pauseable events.
HTTP requests
The @dojo/core/request
module contains methods to simplify making HTTP requests. It can handle
making requests in both node and the browser through the same methods.
Promises and Asynchronous Operations
Promise
The @dojo/core/Promise
class is an implementation of the ES2015 Promise API that also includes static state inspection and a finally
method for cleanup actions.
@dojo/core/async
contains a number of classes and utility modules to simplify working with asynchronous operations.
Task
The @dojo/core/async/Task
class is an extension of @dojo/core/Promise
that provides cancelation support.
Code Style
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
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
© 2004–2018 JS Foundation & contributors. New BSD license.
Some string functions (codePointAt
, fromCodePoint
, and repeat
) adopted from polyfills by Mathias Bynens,
under the MIT license.
See LICENSE for details.