Dojo Framework. A Progressive Framework for Modern Web Apps

Overview

@dojo/framework

Build Status codecov npm version Join the chat at https://discordapp.com/invite/M7yRngE

Dojo is a progressive framework for modern web applications built with TypeScript.

Visit us at dojo.io for documentation, tutorials, cookbooks, and other materials. This repository contains detailed information on the structure of Dojo, while dojo.io is focused on getting started with and learning Dojo.

Sub-packages within @dojo/framework

There are seven sub-packages that form the framework for building a Dojo application:

  • dojo/core - The foundational code of the Dojo framework
  • dojo/has - A feature detection library
  • dojo/i18n - A set of internationalization tooling
  • dojo/routing - A routing service to build web applications with
  • dojo/shim - Modules that provide fills of ES6+ functionality
  • dojo/stores - A lightweight state container
  • dojo/testing - A set of modules to help with testing Dojo

External packages

We have additional packages within the Dojo ecosystem to aid in quickly and easily creating Dojo apps:

Dojo CLI

Support Packages

There are several packages which are designed to support the Dojo platform. Generally these packages are not directly used by end developers:

  • dojo/scripts - A package of scripts to aid with Dojo package development.
  • dojo/webpack-contrib - Specialized webpack loaders and plugins used by the Dojo toolchain.

Migrating Versions

Version 2.x to 3.x Migration Guide

See the v3 migration guide for details on upgrading from version 2.x to version 3.x.

Version 3.x to 4.x Migration Guide

See the v4 migration guide for details on upgrading from version 3.x to version 4.x.

Version 4.x to 5.x Migration Guide

See the v5 migration guide for details on upgrading from version 4.x to version 5.x.

Version 5.x to 6.x Migration Guide

See the v6 migration guide for details on upgrading from version 5.x to version 6.x.

Version 6.x to 7.x Migration Guide

See the v7 migration guide for details on upgrading from version 6.x to version 7.x.

Examples

We have added a repository of examples which have been built on Dojo. Those examples are available in the dojo/examples repository and are live at dojo.github.io/examples.

Guidelines and Style Guide

There are several documents that are relevant for contributing to Dojo.

Dependent Technologies

While Dojo tries to provide a holistic set of tools to build web applications, there are several key technologies where we feel that Dojo would be better integrating and building upon versus building from the ground up.

In order to ensure that Dojo is a solid set of JavaScript tools and libraries, Dojo is built on TypeScript. This provides us with structural design time typing as well as an effective way to communicate the intent of the Dojo APIs. It also provides us the ability to adopt ES6+ syntax features but make distributables that will be backwards compatible to the target browsers for Dojo.

TypeScript and Dojo Compatibility Matrix

TypeScript and Dojo both iterate rapidly. In general Dojo strives for maximum compatibility, with a plan to periodically increase the minimum TypeScript version so we can begin relying on newer TypeScript features. Please review this list when using Dojo:

Dojo version TypeScript version (minimum) TypeScript version (maximum)
3.0 2.6.x 2.6.x
4.0 2.6.x 3.1.x
5.0 2.6.x 3.2.x
6.0 3.4.5 3.4.5
7.0 3.4.5 3.8.x

Licensing information

© 2020 OpenJS Foundation & contributors. New BSD license.

Comments
  • Slotting Dojo Web Components

    Slotting Dojo Web Components

    I would like to create a Web Component using Dojo that allows me to slot in children components at designated places in the widget. For instance, if I had a container style widget with an icon, title, and children, how can I inject the desired dom?

    interface MyContainerProperties {
    	icon: DNode;
    	title: DNode;
    }
    
    class MyContainer extends WidgetBase<MyContainerProperties> {
    	render() {
    		const { icon, title } = this.properties;
    		return v('div', { classes: css.root }, [
    			v('header', [
    				v('span', [ icon ]),
    				v('span', [ title ])
    			]),
    			v('content', [
    				this.children
    			])
    		])
    	}
    }
    

    I'd like to be able to use templates and slots from the dom

    <my-container>
        <div slot="icon"><i class="icon"></div>
        <div slot="title">Title</div>
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
        </ul>
    </my-container>
    

    Is there a recommended approach for slotting in children elements in a Dojo web component?

    discussion 
    opened by devpaul 12
  • Web component benchmark

    Web component benchmark

    Hi,

    I have created a benchmark suite for Web Components librairies. Dojo is implemented, and you can see the raw results here : https://vogloblinsky.github.io/web-components-benchmark/

    I will release soon a blog post explaining in detail that, but i want a feedback of many librairies authors before, to be sure i am not wrong in my implementations.

    Source code here : https://github.com/vogloblinsky/web-components-benchmark

    Can you have a look and give me some feedbacks ?

    Thanks

    opened by vogloblinsky 10
  • The ResizeObserver shim should not add to `global`

    The ResizeObserver shim should not add to `global`

    **Bug **

    Package Version: 5.0

    Code

    https://github.com/dojo/framework/blob/master/src/shim/ResizeObserver.ts#L34-L38

    Expected behavior:

    It returns the ponyfill: https://github.com/que-etc/resize-observer-polyfill#usage-example

    Actual behavior:

    It sets the ponyfill on global and then returns that. This also doesn't work if using an AMD loader that uses the non-ES6 module since default is then undefined.

    working as designed 
    opened by dasa 8
  • Add before and after hooks to store middleware

    Add before and after hooks to store middleware

    **Type:**feature

    The following has been addressed in the PR:

    Description: Adds the concept of "initializers" that can perform sync/async setup before a process is run. Resolves #90

    breaking change 
    opened by maier49 8
  • Bug with subtag in i18n middleware

    Bug with subtag in i18n middleware

    Bug /core/middleware/i18n.ts : If I have bundles like 'en' and 'de' but set a more specific locale, the middleware does nothing. Assume the above locales with 'en' as the default bundle and

    Code

    i18n.set({locale: 'de-de'})

    Expected behavior:

    Switch language to 'de'

    Actual behavior:

    Nothing happens

    opened by sebilasse 7
  • Update i18n docs to reflect v7 changes

    Update i18n docs to reflect v7 changes

    Type: feature

    The following has been addressed in the PR:

    Description:

    Resolves #698

    Unfortunately, as I cannot read Chinese, the corresponding zh-CN docs are left untouched.

    • Replace references of the old i18n function with localizeBundle().
    • Remove references to CLDR data as these data are now injected at build time.
    • Remove references to setLocaleMessages and getCachedMessages.
    • Replace message formatter examples with format examples.
    • Update documentation on reading the current locale.
    opened by mwistrand 7
  • Update inter-document links to simplified Chinese

    Update inter-document links to simplified Chinese

    Type: feature

    The following has been addressed in the PR:

    Description:

    In order to support translated content, dojo/site will be creating links and hashes based on the translated headings. This means that for inter-site links to content that needs to be translated require updating to the translated headings. This is an attempt to update the existing translated content links from en to zh-CN ready for the initial release.

    I have tested this locally with dojo/site against this branch and it looks like everything is working as expected: https://dev.agubler.now.sh

    @xiaohulu do you mind giving this a review?

    opened by agubler 7
  • Testing Reference Documentation

    Testing Reference Documentation

    Type: doc

    Description:

    This adds testing documentation. As per #321 this pulls information from various sources. I am still cleaning it up, but wanted to get the PR in progress now for review. I'll continue to update.

    I'm not quite sure how much info to put in to Basic Usage balanced with Supplemental and any overlapping content of the two.

    The following sections are currently TODO

    • [x] Mocking
    • [x] Functional Tests

    Resolves #321

    reference guide 
    opened by odoe 7
  • We should skip the same URL

    We should skip the same URL

    Type: bug

    The following has been addressed in the PR:

    Description:

    I use Link widget to navigate, but If I click the same Link n times, I must click Back button n times to back to previous route. We should skip the same url.

    bug area: routing 
    opened by xiaohulu 7
  • Incorrect access modifier for SymbolConstructor.observable

    Incorrect access modifier for SymbolConstructor.observable

    @jason0x43 commented on Fri Jun 29 2018

    Bug

    SymbolConstrutor.observable has the default access modifier in @dojo/shim, but should be readonly. Currently it conflicts with recent node typings, which specifically flag observable as readonly.

    Previous versions of the Node typings (< 10, 10.x before May) didn't include the observable property on SymbolConstructor, so fixing this shouldn't cause issues with code using older Node typings.

    See also: https://github.com/theintern/intern/issues/932

    Package Version:

    2.0.0

    Code

    Create a project that includes @dojo/[email protected] and @types/[email protected] and try to build it.

    Expected behavior:

    It compiles.

    Actual behavior:

    node_modules/@theintern/leadfoot/node_modules/@dojo/shim/Symbol.d.ts:3:9 - error TS2687: All declarations of 'observable' must have identical modifiers.
    
    3         observable: symbol;
              ~~~~~~~~~~
    
    
    node_modules/@types/node/index.d.ts:169:14 - error TS2687: All declarations of 'observable' must have identical modifiers.
    
    169     readonly observable: symbol;
                     ~~~~~~~~~~
    
    bug 
    opened by agubler 7
  • Adds Event Handler Options

    Adds Event Handler Options

    Type: Feature

    The following has been addressed in the PR:

    Adds ability to use event handler options as described here: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener. The syntax would be the following:

    const scrollElementDiv = v('div', { onscroll: {
    	passive: true,
    	handler: (event: UIEvent) => {
    		// handle onscroll event here
    	}
    } });
    

    As describe in the open issue, this would allow events on elements to be label as passive, preventing the warning on chrome. This will also allow a developer to use the options capture and once.

    Resolves #810

    opened by samends 6
  • Bump decode-uri-component from 0.2.0 to 0.2.2

    Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Remove native abort controller test

    Remove native abort controller test

    Type: bug

    The following has been addressed in the PR:

    Description: Removes test for native abort controller which is unnecessary and fails on later versions of node.

    opened by matt-gadd 1
  • Bump codecov from 3.0.4 to 3.8.3

    Bump codecov from 3.0.4 to 3.8.3

    Bumps codecov from 3.0.4 to 3.8.3.

    Release notes

    Sourced from codecov's releases.

    v3.8.3

    Fixes

    • #329 fix: Test if response has two lines

    Dependencies

    • #306 Bump eslint-config-prettier from 7.2.0 to 8.3.0
    • #305 Bump eslint from 7.21.0 to 7.25.0
    • #302 Bump mock-fs from 4.13.0 to 4.14.0
    • #308 Bump lodash from 4.17.19 to 4.17.21
    • #309 Bump ignore-walk from 3.0.3 to 3.0.4
    • #310 Bump hosted-git-info from 2.8.8 to 2.8.9
    • #325 Bump prettier from 2.2.1 to 2.3.2
    • #326 Bump actions/setup-node from 2.1.5 to 2.2.0
    • #328 Bump lint-staged from 10.5.4 to 11.0.1
    • #330 Bump eslint from 7.25.0 to 7.31.0
    • #331 Bump ws from 7.3.1 to 7.5.3
    • #332 Bump urlgrey from 0.4.4 to 1.0.0
    • #334 Bump husky from 6.0.0 to 7.0.1
    • #333 Bump teeny-request from 7.0.1 to 7.1.1

    v3.8.2

    3.8.2

    Fixes

    • #304 Add coverage-final.json as a possible coverage file during file lookup

    v3.8.1

    Fixes

    • #246 Revert "Bump teeny-request from 6.0.1 to 7.0.0"

    v3.8.0

    Features

    • #160 Add Github Actions support

    Fixes

    • #173 Fix broken gcov command
    • #195 Update Node testing versions
    • #200 Remove flaky tests
    • #204 Create CHANGELOG and remove flaky v4 test
    • #208 Add license scan report and status
    • #220 Remove errant bitly

    Dependencies

    • #189 Bump lint-staged from 10.0.7 to 10.2.11
    • #190 [Security] Bump handlebars from 4.5.3 to 4.7.6
    • #191 Bump prettier from 1.19.1 to 2.0.5
    • #192 Bump mock-fs from 4.10.4 to 4.12.0
    • #196 Bump teeny-request from 6.0.1 to 7.0.0

    ... (truncated)

    Changelog

    Sourced from codecov's changelog.

    3.8.3

    Fixes

    • #329 fix: Test if response has two lines

    Dependencies

    • #306 Bump eslint-config-prettier from 7.2.0 to 8.3.0
    • #305 Bump eslint from 7.21.0 to 7.25.0
    • #302 Bump mock-fs from 4.13.0 to 4.14.0
    • #308 Bump lodash from 4.17.19 to 4.17.21
    • #309 Bump ignore-walk from 3.0.3 to 3.0.4
    • #310 Bump hosted-git-info from 2.8.8 to 2.8.9
    • #325 Bump prettier from 2.2.1 to 2.3.2
    • #326 Bump actions/setup-node from 2.1.5 to 2.2.0
    • #328 Bump lint-staged from 10.5.4 to 11.0.1
    • #330 Bump eslint from 7.25.0 to 7.31.0
    • #331 Bump ws from 7.3.1 to 7.5.3
    • #332 Bump urlgrey from 0.4.4 to 1.0.0
    • #334 Bump husky from 6.0.0 to 7.0.1
    • #333 Bump teeny-request from 7.0.1 to 7.1.1

    3.8.2

    Fixes

    • #304 Add coverage-final.json as a possible coverage file during file lookup

    3.8.1

    Fixes

    • #246 Revert "Bump teeny-request from 6.0.1 to 7.0.0"

    3.8.0

    Features

    • #160 Add Github Actions support

    Fixes

    • #173 Fix broken gcov command
    • #195 Update Node testing versions
    • #200 Remove flaky tests
    • #204 Create CHANGELOG and remove flaky v4 test
    • #208 Add license scan report and status
    • #220 Remove errant bitly

    Dependencies

    • #189 Bump lint-staged from 10.0.7 to 10.2.11
    • #190 [Security] Bump handlebars from 4.5.3 to 4.7.6
    • #191 Bump prettier from 1.19.1 to 2.0.5

    ... (truncated)

    Commits
    • e22061b Merge pull request #335 from codecov/3.8.3
    • 981df8b 3.8.3
    • 135555c Merge pull request #333 from codecov/dependabot/npm_and_yarn/teeny-request-7.1.1
    • 65b53a3 Merge pull request #334 from codecov/dependabot/npm_and_yarn/husky-7.0.1
    • 6e4af4d Bump teeny-request from 7.0.1 to 7.1.1
    • 1149168 Merge pull request #332 from codecov/dependabot/npm_and_yarn/urlgrey-1.0.0
    • 883785c Merge pull request #331 from codecov/dependabot/npm_and_yarn/ws-7.5.3
    • 04d5ff7 Merge pull request #330 from codecov/dependabot/npm_and_yarn/eslint-7.31.0
    • e6c5bf4 Bump husky from 6.0.0 to 7.0.1
    • f781bc4 Bump ws from 7.3.1 to 7.5.3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump jsdom from 16.4.0 to 16.5.0

    Bump jsdom from 16.4.0 to 16.5.0

    Bumps jsdom from 16.4.0 to 16.5.0.

    Release notes

    Sourced from jsdom's releases.

    Version 16.5.0

    • Added window.queueMicrotask().
    • Added window.event.
    • Added inputEvent.inputType. (diegohaz)
    • Removed ondragexit from Window and friends, per a spec update.
    • Fixed the URL of about:blank iframes. Previously it was getting set to the parent's URL. (SimonMueller)
    • Fixed the loading of subresources from the filesystem when they had non-ASCII filenames.
    • Fixed the hidden="" attribute to cause display: none per the user-agent stylesheet. (ph-fritsche)
    • Fixed the new File() constructor to no longer convert / to :, per a pending spec update.
    • Fixed mutation observer callbacks to be called with the MutationObserver instance as their this value.
    • Fixed <input type=checkbox> and <input type=radio> to be mutable even when disabled, per a spec update.
    • Fixed XMLHttpRequest to not fire a redundant final progress event if a progress event was previously fired with the same loaded value. This would usually occur with small files.
    • Fixed XMLHttpRequest to expose the Content-Length header on cross-origin responses.
    • Fixed xhr.response to return null for failures that occur during the middle of the download.
    • Fixed edge cases around passing callback functions or event handlers. (ExE-Boss)
    • Fixed edge cases around the properties of proxy-like objects such as localStorage or dataset. (ExE-Boss)
    • Fixed a potential memory leak with custom elements (although we could not figure out how to trigger it). (soncodi)
    Changelog

    Sourced from jsdom's changelog.

    16.5.0

    • Added window.queueMicrotask().
    • Added window.event.
    • Added inputEvent.inputType. (diegohaz)
    • Removed ondragexit from Window and friends, per a spec update.
    • Fixed the URL of about:blank iframes. Previously it was getting set to the parent's URL. (SimonMueller)
    • Fixed the loading of subresources from the filesystem when they had non-ASCII filenames.
    • Fixed the hidden="" attribute to cause display: none per the user-agent stylesheet. (ph-fritsche)
    • Fixed the new File() constructor to no longer convert / to :, per a pending spec update.
    • Fixed mutation observer callbacks to be called with the MutationObserver instance as their this value.
    • Fixed <input type=checkbox> and <input type=radio> to be mutable even when disabled, per a spec update.
    • Fixed XMLHttpRequest to not fire a redundant final progress event if a progress event was previously fired with the same loaded value. This would usually occur with small files.
    • Fixed XMLHttpRequest to expose the Content-Length header on cross-origin responses.
    • Fixed xhr.response to return null for failures that occur during the middle of the download.
    • Fixed edge cases around passing callback functions or event handlers. (ExE-Boss)
    • Fixed edge cases around the properties of proxy-like objects such as localStorage or dataset. (ExE-Boss)
    • Fixed a potential memory leak with custom elements (although we could not figure out how to trigger it). (soncodi)
    Commits
    • 2d82763 Version 16.5.0
    • 9741311 Fix loading of subresources with Unicode filenames
    • 5e46553 Use domenic's ESLint config as the base
    • 19b35da Fix the URL of about:blank iframes
    • 017568e Support inputType on InputEvent
    • 29f4fdf Upgrade dependencies
    • e2f7639 Refactor create‑event‑accessor.js to remove code duplication
    • ff69a75 Convert JSDOM to use callback functions
    • 19df6bc Update links in contributing guidelines
    • 1e34ff5 Test triage
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump cross-fetch from 3.0.2 to 3.1.5

    Bump cross-fetch from 3.0.2 to 3.1.5

    Bumps cross-fetch from 3.0.2 to 3.1.5.

    Release notes

    Sourced from cross-fetch's releases.

    v3.1.5

    What's Changed

    New Contributors

    Full Changelog: https://github.com/lquixada/cross-fetch/compare/v3.1.4...v3.1.5

    v3.1.4

    🐞 fixed typescript errors.

    v3.1.3

    🐞 fixed typescript compilation error causing #95, #101, #102.

    v3.1.2

    🐞 added missing Headers interface augmentation from lib.dom.iterable.d.ts (#97)

    v3.1.1

    🐞 fixed missing fetch api types from constructor signatures #96 (thanks @​jstewmon)

    v3.1.0

    ⚡️ improved TypeScript support with own fetch API type definitions (thanks @​jstewmon) ⚡️ set fetch.ponyfill to true when custom ponyfill implementation is used. 💡 set the same fetch API test suite to run against node-fetch, whatwg-fetch and native fetch.

    v3.0.6

    ⚡️ updated node-fetch to 2.6.1

    v3.0.5

    ⚡️ whatwg-fetch is not a prod dependency anymore (#63) ⚡️ updated all dev dependencies.

    v3.0.4

    🐞 fixed bug that crashed Safari 9 (#49). ⚡️ added VaporJS code to the project.

    v3.0.3

    ⚡️ upgraded node-fetch to 2.6.0.

    Commits
    • c6089df chore(release): 3.1.5
    • a3b3a94 chore: updated node-fetch version to 2.6.7 (#124)
    • efed703 chore: updated node-fetch version to 2.6.5
    • 694ff77 refactor: removed ora from dependencies
    • efc5956 refactor: added .vscode to .gitignore
    • da605d5 refactor: renamed test/fetch/ to test/fetch-api/ and test/module/ to test/mod...
    • 0f0d51d chore: updated minor and patch versions of dev dependencies
    • c6e34ea refactor: removed sinon.js
    • f524a52 fix: yargs was incompatible with node 10
    • 7906fcf chore: updated dev dependencies
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Migrating to the new OpenJS Foundation CLA bot

    Migrating to the new OpenJS Foundation CLA bot

    Hi, I'm with the OpenJS Foundation and we are migrating projects that use the old JSF CLA bot over to the new OpenJS CLA using EasyCLA. If you're a regular contributor you'll want to keep reading for some tips on handling the transition. The JSF CLA bot is no longer working and so we are doing this migration over the next few days. If you've already signed the OpenJS Foundation CLA using EasyCLA, you will see no impact. One signature is all that's required across all OpenJS Foundation projects.

    First, some brief background. A few years ago the JS Foundation merged with Node.js Foundation to form the OpenJS Foundation. The JS Foundation required a CLA, and operated a bot to enforce signatures. The OpenJS Foundation no longer requires projects to use a CLA; it is left to each project's maintainers to decide whether to use the DCO (at minimum) or the OpenJS Foundation CLA.

    For projects that continue using a CLA, two big things changed. First, we're using a different tool called EasyCLA. It is developed and managed by the Linux Foundation (including the underlying infrastructure). CLAs can be signed either by individuals acting on their own behalf, or signed by companies on behalf of their employees. Also, because we're working from a centralized CLA infrastructure, contributors who sign the OpenJS Foundation CLA once are covered for any other OpenJS Foundation projects.

    Second, we've changed the text of the CLA. The JSF CLA was essentially a bespoke wrapper around the text of the DCO, which meant contributors (and their legal counsel) would have to evaluate something completely new. In keeping with the Principle of Least Astonishment, we've changed to the much more common Apache-style CLA templates. If you need your company to sign your CLA, there's now a much better chance your counsel will recognize what they're seeing.

    Because the organization and the CLA text have both changed, we can't continue to use the old signatures. Subsequent contributions will require you to sign the new document. To be clear, this only applies to new contributions; prior contributors do not need to go back and re-sign the document unless they make a new contribution.

    So what do you need to do? You can always just wait until the bot is enabled and sign the doc when you open your first PR. If you aren't already in the system, it'll leave a comment on your PR with a link to follow. If you want to make things easier, or if you're a high-volume contributor and want to get it out of the way early, you can pre-sign the OpenJS Foundation CLA by opening a trivial PR against this repo (we periodically close open PRs).

    If you have any questions, please ask!

    opened by brianwarner 0
Releases(v8.0.0)
  • v8.0.0(Mar 4, 2022)

    The Dojo framework 8.0.0 release.

    Breaking Changes

    • Resources Middleware Caching and Api Updates (#877, #882, #884, #885)

    Enhancements

    • Support for TypeScript 4.1 (#892)
    • Support for custom resource APIs (#878)
    • Create resource templates based on the Data and Api type of a widget (#889, #891)
    • Support nested transforms when resources are passed down through multiple widgets (#880)
    • Support special head tag for rendering node in the document head (#805)
    • Wildcard routing (#766)
    • Support redirect in routing configuration (#867, #868, #869, #900)
    • Refines the create template function APIs (#866)
    • Add intrinsic element types (#796, #814)
    • Re-use DOM nodes when moving widgets and nodes in a list (#799)
    • Allow numbers in vdom (#781)
    • Support optional query params in routing configuration (#901)
    • Add onUpdate and onDetach APIs for dom pragma (#829)
    • Lazy load custom elements on demand (#825)
    • Adds support for event proxying and event options (#856)
    • Add map shim to Outlet (#860)
    • pending API to expose the state of asynchronous icache setters (#862, #865)
    • Custom element resource support (#815)
    • Start to decouple dom completely from vdom (#883)
    • Add block middleware mock (#798)
    • Allow finding and modifying wrapped widgets in functional children (#780, #851)
    • Use the middleware key as the middleware id in the test renderer (#859)
    • Support testing widgets with nested typed children (#898)

    Bug Fixes

    • Expand types for insert after/before (#802)
    • Only run the inert middleware when the properties have been changed (#888)
    • Add function to create "typed" version of middleware (#819)
    • Rendering for multiple nested head and body nodes (#812)
    • Cache the function wrapper, no need to recreate each render. (#903)
    • Ensure that resources are correctly initialised even if the resource already has been previous created. (#861)
    • Make inputs partially only controlled (#887)
    • Take in to account virtual nodes when hydrating an existing DOM structure (#896)
    • Always pass the target attribute to the anchor tag for Link regardless of whether the event is intercepted (#907)
    • Register the messages for all locales (#908)
    • Fix mock middleware types (#822)
    • Handle ignored children in decorate (#840)
    • Wrap children result in an array if not already in one (#844)
    • Support setting properties on named children that are a render result for assertions (#854)
    • Update insertSiblings type definition (#872)
    • Pass inserted flag correctly to deferred props in test renderers (#881)
    • Fix the typings for the arguments on the test renderer child api (#871)
    Source code(tar.gz)
    Source code(zip)
  • v7.0.0(Jun 2, 2020)

    The Dojo framework 7.0.0 release.

    Breaking Changes

    • Remove the Projector mixin (#549)
    • Deprecate cache with optional flag on icache to skip validation (#618)
    • Decouple Outlet concept from referencing unique routes (#716)
    • New Dojo test renderer (#710)

    Enhancements

    • Typed children support for function-based widgets (#544, #554, #561, #582)
    • Add isExact options to ActiveLink (#520)
    • Live binding to function-based widget properties and children (#564, #665)
    • Check attached node is in the body (#579)
    • Provide helper middleware api type (#580)
    • Enable cache eviction with the icache (#605)
    • Inert shim (#619)
    • Support multiple CSS transition classes (#628)
    • Inert middleware (#623)
    • focus middleware testing mock (#635)
    • validity middleware testing mock (#631)
    • Type nls keys from the i18n format function (#610)
    • Support passing null to the domNode on .mount( (#652)
    • Influence property values with diffProperties middleware (#653)
    • Support specifying an additional property to be considered part of the widget key (#661)
    • Support automatic and lazy loading of CLDR data in i18n (#657, #677, #686, #693, #694, #724)
    • Unmount an application (#680)
    • data middleware and resources (#672, #701)
    • Support setting and changing theme variants at runtime (#684, #711, #720)
    • "slot" support for Dojo custom elements (#714, #721)
    • Forwards compatibility for TypeScript 3.8 (#719)
    • Configure document title on route change (#725)
    • Skip setting the route when working with build time rendering and using the development server (#729)

    Bug Fixes

    • Run key checks synchronously (#547)
    • Ensure initial properties flag is set false (#539)
    • Call diffProperties immediately when first registered (#572)
    • Fix setting state in focus middleware (#575)
    • Do not invalidate when check if a widget should focus (#583)
    • Make assertion templates immutable (#587)
    • Ensure mixin properties are inferred correctly when using TSX (#594)
    • Run comparators when using harness.expect with an actual render output (#602)
    • Allow unsupported nodes to be ignore from harness's assertRender (#599)
    • Fix inserting nodes when using the body tag (#640)
    • Fix out of order rendering bug (#642)
    • Return injected theme as the widget's theme property (#659)
    • Support a mixture of arrays and single children for TSX (#671)
    • Update diff type for Themed mixin to be auto (#685)
    • Invalidate for the icache.delete and icache.clear` API (#695)
    • ActiveLink support for matching query params (#699)
    • Widgets can render twice during a single scheduled render (#712)
    • Spread widget properties for function-based widget in vdom (#717)
    Source code(tar.gz)
    Source code(zip)
  • v6.0.0(Sep 13, 2019)

    The Dojo framework 6.0.0 release.

    Breaking Changes

    • Merge widget-core with core(https://github.com/dojo/framework/pull/357)
    • Move has to core(https://github.com/dojo/framework/pull/361)
    • Move core functionality to vdom module(https://github.com/dojo/framework/pull/360)
    • Do not throw testing unregistered has flags by default(https://github.com/dojo/framework/pull/278)
    • Stop decorating VNode and WNodes during vdom rendering(https://github.com/dojo/framework/pull/290)
    • Auto bind all class functions(https://github.com/dojo/framework/pull/290, https://github.com/dojo/framework/pull/348)
    • Upgrade minimum TypeScript version to 3.4.5(https://github.com/dojo/framework/pull/331)
    • Error for selectors that cannot be found with assertion templates(https://github.com/dojo/framework/pull/364)
    • Add start method to router(https://github.com/dojo/framework/pull/402)
    • Support factory functions for children replace on assertion templates(https://github.com/dojo/framework/pull/413)
    • Make css transition strategy optional(https://github.com/dojo/framework/pull/418)
    • Throw an error on missing selector in harness trigger(https://github.com/dojo/framework/pull/320)

    Enhancements

    • function-based widgets and middleware support(https://github.com/dojo/framework/pull/352, https://github.com/dojo/framework/pull/451)
    • Core destroy and node middleware(https://github.com/dojo/framework/pull/362)
    • cache middleware(https://github.com/dojo/framework/pull/373)
    • registry middleware(https://github.com/dojo/framework/pull/376)
    • defer middleware(https://github.com/dojo/framework/pull/378)
    • injector middleware(https://github.com/dojo/framework/pull/377)
    • cache middleware(https://github.com/dojo/framework/pull/381, https://github.com/dojo/framework/pull/467, https://github.com/dojo/framework/pull/493)
    • block middleware(https://github.com/dojo/framework/pull/380)
    • resize middleware(https://github.com/dojo/framework/pull/384)
    • diffProperty middleware(https://github.com/dojo/framework/pull/382, https://github.com/dojo/framework/pull/398)
    • theme middleware(https://github.com/dojo/framework/pull/392)
    • dimensions middleware(https://github.com/dojo/framework/pull/388)
    • i18n middleware(https://github.com/dojo/framework/pull/390)
    • focus middleware(https://github.com/dojo/framework/pull/389)
    • store middleware(https://github.com/dojo/framework/pull/391)
    • breakpoint middleware(https://github.com/dojo/framework/pull/387)
    • validity middleware](https://github.com/dojo/framework/pull/452)
    • Support integer like index keys in dojo/stores(https://github.com/dojo/framework/pull/262)
    • Validation Meta(https://github.com/dojo/framework/pull/264)
    • Pluggable state provider for dojo/stores(https://github.com/dojo/framework/pull/242)
    • Pause rendering during merge for lazy loaded widgets(https://github.com/dojo/framework/pull/312)
    • Enable mocking shim'd fetch and web platform polyfills(https://github.com/dojo/framework/pull/295)
    • Allow direct manipulation of dojo/stores state for evergreen browsers()
    • Improved rendering algorithm when all the previous node have been replaced(https://github.com/dojo/framework/pull/356)
    • Convert dojo/shims to also work as polyfills(https://github.com/dojo/framework/pull/347)
    • Pass process id to dojo/store's before callbacks(https://github.com/dojo/framework/pull/409)
    • Harness support for function-based widgets and middleware(https://github.com/dojo/framework/pull/411)
    • Assertion template enhancements(https://github.com/dojo/framework/pull/412)
    • Convert routing widgets to function-based widgets(https://github.com/dojo/framework/pull/414)
    • special virtual tag support(https://github.com/dojo/framework/pull/425)
    • special body tag support(https://github.com/dojo/framework/pull/448, https://github.com/dojo/framework/pull/460, https://github.com/dojo/framework/pull/463)
    • mock store middleware(https://github.com/dojo/framework/pull/428)
    • mock breakpoint middleware(https://github.com/dojo/framework/pull/471)
    • mock resize and intersection middleware(https://github.com/dojo/framework/pull/411)
    • globalThis shim support(https://github.com/dojo/framework/pull/437, https://github.com/dojo/framework/pull/474)
    • Automatically detect children type for custom elements(https://github.com/dojo/framework/pull/502)

    Bug Fixes

    • Disconnect resize meta when destroyed(https://github.com/dojo/framework/pull/272)
    • Ensure nodes are inserted in the correct position when nested within widgets(https://github.com/dojo/framework/pull/297)
    • Stop extending WidgetProperties(https://github.com/dojo/framework/pull/305)
    • Use the latest wrapper when processing detached nodes(https://github.com/dojo/framework/pull/311)
    • Skip changing route for the same url(https://github.com/dojo/framework/pull/317)
    • Do not reuse text node when content is different during merge(https://github.com/dojo/framework/pull/355)
    • Support widgets with typed children in the harness(https://github.com/dojo/framework/pull/365)
    • Ensure shims are elided correctly(https://github.com/dojo/framework/pull/401)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Jan 29, 2019)

    The Dojo framework 5.0.0 release.

    Breaking Changes

    Enhancements

    Bug Fixes

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Oct 15, 2018)

    The Dojo framework 4.0.0 release.

    Breaking Changes

    Enhancements

    Bug Fixes

    Source code(tar.gz)
    Source code(zip)
Owner
Dojo
A Progressive TypeScript Framework for Modern Web Apps
Dojo
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

Supporting Vue.js Vue.js is an MIT-licensed open source project with its ongoing development made possible entirely by the support of these awesome ba

vuejs 201.6k Jan 7, 2023
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

vue-next This is the repository for Vue 3.0. Quickstart Via CDN: <script src="https://unpkg.com/vue@next"></script> In-browser playground on Codepen S

vuejs 34.6k Jan 4, 2023
🐰 Rax is a progressive React framework for building universal application. https://rax.js.org

Rax is a progressive React framework for building universal applications. ?? Write Once, Run Anywhere: write one codebase, run with Web, Weex, Node.js

Alibaba 7.8k Dec 31, 2022
AngularJS - HTML enhanced for web apps!

AngularJS AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade/Pug and

Angular 59.3k Jan 1, 2023
Cybernetically enhanced web apps

What is Svelte? Svelte is a new way to build web applications. It's a compiler that takes your declarative components and converts them into efficient

Svelte 64.3k Dec 31, 2022
Create blazing fast multithreaded Web Apps

Welcome to neo.mjs! neo.mjs enables you to create scalable & high performant Apps using more than just one CPU, without the need to take care of a wor

neo.mjs 2.4k Dec 31, 2022
🙋‍♀️ 3kb library for tiny web apps

3kb library for tiny web apps. Sometimes, all you want to do is to try and do something—No boilerplate, bundlers, or complex build processes. Lucia ai

Aiden Bai 699 Dec 27, 2022
A declarative, HTML-based language that makes building web apps fun

A declarative, HTML-based language that makes building web apps fun ?? Docs ∙ Try Online ∙ Contribute ∙ Get Support Intro Marko is HTML re-imagined as

Marko 12k Jan 3, 2023
⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.

Fast 3kB alternative to React with the same modern API. All the power of Virtual DOM components, without the overhead: Familiar React API & patterns:

Preact 33.6k Jan 8, 2023
:fire: An extremely fast, React-like JavaScript library for building modern user interfaces

Inferno is an insanely fast, React-like library for building high-performance user interfaces on both the client and server. Description The main obje

Inferno 15.6k Dec 31, 2022
Ember.js - A JavaScript framework for creating ambitious web applications

Ember.js is a JavaScript framework that greatly reduces the time, effort and resources needed to build any web application. It is focused on making yo

Ember.js 22.4k Jan 4, 2023
The AMP web component framework.

AMP ⚡ ⚡ ⚡ ⚡ Metrics Tooling AMP is a web component framework for easily creating user-first websites, stories, ads, emails and more. AMP is an open so

AMP 14.9k Jan 4, 2023
CrossUI is a free Cross-Browser Javascript framework with cutting-edge functionality for rich web application

CrossUI is a free Cross-Browser Javascript framework with cutting-edge functionality for rich web application

Jack Li 1.4k Jan 3, 2023
One framework. Mobile & desktop.

Angular - One framework. Mobile & desktop. Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScr

Angular 85.6k Dec 31, 2022
The tiny framework for building hypertext applications.

Hyperapp The tiny framework for building hypertext applications. Do more with less—We have minimized the concepts you need to learn to get stuff done.

Jorge Bucaran 18.9k Jan 1, 2023
🌱 React and redux based, lightweight and elm-style framework. (Inspired by elm and choo)

English | 简体中文 dva Lightweight front-end framework based on redux, redux-saga and react-router. (Inspired by elm and choo) Features Easy to learn, eas

null 16.1k Jan 4, 2023
Relay is a JavaScript framework for building data-driven React applications.

Relay · Relay is a JavaScript framework for building data-driven React applications. Declarative: Never again communicate with your data store using a

Facebook 17.5k Jan 1, 2023
A rugged, minimal framework for composing JavaScript behavior in your markup.

Alpine.js Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM,

Alpine.js 22.5k Jan 2, 2023