Skip to content

Commit

Permalink
refactor: migrate to pure es modules (speced#2553)
Browse files Browse the repository at this point in the history
* refactor: migrate to pure es modules

* fix lint

* fix import

* use rollup to wrap umd modules

* npm run builddeps

* import idb

* fix test

* migrate to rollup

* no need to use babel-cli anymore

* no direct use of umd node modules

* idb.openDB

* no need for babel/preset-env

* build with jquery

* jquery workaround
  • Loading branch information
saschanaz authored Oct 30, 2019
1 parent adb3ac1 commit 24a54ca
Show file tree
Hide file tree
Showing 67 changed files with 820 additions and 5,166 deletions.
15 changes: 0 additions & 15 deletions .babelrc

This file was deleted.

1 change: 1 addition & 0 deletions .github/workflows/pr-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
with:
node-version: 10
- run: npm install --ignore-scripts
- run: npm run builddeps
- run: npm run lint

test-headless:
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ scratch
examples/touchevents.html
bevy.json
.idea
js/
js/*
!js/deps
js/deps/builds
!js/profile-w3c-common.js
!js/profile-geonovum.js
!js/profile-w3c.js
Expand Down
3 changes: 1 addition & 2 deletions examples/basic.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
<title>
Replace me with a real title
</title>
<script src='../js/deps/require.js' data-main='../js/profile-w3c'
async class='remove'></script>
<script src='../js/profile-w3c.js' async class='remove'></script>
<script class='remove'>
var respecConfig = {
specStatus: "ED",
Expand Down
1 change: 1 addition & 0 deletions js/deps/jquery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "jquery";
1 change: 1 addition & 0 deletions js/deps/marked.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "marked";
1 change: 1 addition & 0 deletions js/deps/pluralize.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from "pluralize";
29 changes: 29 additions & 0 deletions js/deps/rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// rollup.config.js
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';

const template = {
output: {
dir: __dirname + '/builds/',
format: 'esm',
},
plugins: [
resolve(),
commonjs()
]
};

export default [
{
input: "js/deps/jquery.js",
...template
},
{
input: "js/deps/marked.js",
...template
},
{
input: "js/deps/pluralize.js",
...template
}
]
135 changes: 58 additions & 77 deletions js/profile-geonovum.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,85 +4,53 @@ window.addEventListener("error", ev => {
console.error(ev.error, ev.message, ev);
});

// this is only set in a build, not at all in the dev environment
require.config({
paths: {
hyperhtml: "deps/hyperhtml",
idb: "deps/idb",
jquery: "deps/jquery",
marked: "deps/marked",
pluralize: "deps/pluralize",
text: "deps/text",
},
shim: {
shortcut: {
exports: "shortcut",
},
idb: {
exports: "idb",
},
},
});

define([
const modules = [
// order is significant
"./core/base-runner",
"./core/ui",
"./core/reindent",
"./core/location-hash",
"./core/l10n",
"./geonovum/defaults",
"./core/style",
"./geonovum/style",
"./geonovum/l10n",
"./core/github",
"./core/data-include",
"./core/markdown",
"./core/data-transform",
"./core/inlines",
"./core/dfn",
"./core/pluralize",
"./core/examples",
"./core/issues-notes",
"./core/requirements",
"./core/best-practices",
"./core/figures",
"./core/data-cite",
"./core/biblio",
"./core/link-to-dfn",
"./core/render-biblio",
"./core/contrib",
"./core/fix-headers",
"./core/structure",
"./core/informative",
"./core/id-headers",
"./geonovum/conformance",
"./ui/save-html",
"./ui/search-specref",
"./ui/dfn-list",
"./ui/about-respec",
"./core/seo",
"./core/highlight",
"./core/data-tests",
"./core/list-sorter",
"./core/highlight-vars",
"./core/algorithms",
"./core/anchor-expander",
import("../src/core/base-runner.js"),
import("../src/core/ui.js"),
import("../src/core/reindent.js"),
import("../src/core/location-hash.js"),
import("../src/core/l10n.js"),
import("../src/geonovum/defaults.js"),
import("../src/core/style.js"),
import("../src/geonovum/style.js"),
import("../src/geonovum/l10n.js"),
import("../src/core/github.js"),
import("../src/core/data-include.js"),
import("../src/core/markdown.js"),
import("../src/core/data-transform.js"),
import("../src/core/inlines.js"),
import("../src/core/dfn.js"),
import("../src/core/pluralize.js"),
import("../src/core/examples.js"),
import("../src/core/issues-notes.js"),
import("../src/core/requirements.js"),
import("../src/core/best-practices.js"),
import("../src/core/figures.js"),
import("../src/core/data-cite.js"),
import("../src/core/biblio.js"),
import("../src/core/link-to-dfn.js"),
import("../src/core/render-biblio.js"),
import("../src/core/contrib.js"),
import("../src/core/fix-headers.js"),
import("../src/core/structure.js"),
import("../src/core/informative.js"),
import("../src/core/id-headers.js"),
import("../src/geonovum/conformance.js"),
import("../src/ui/save-html.js"),
import("../src/ui/search-specref.js"),
import("../src/ui/dfn-list.js"),
import("../src/ui/about-respec.js"),
import("../src/core/seo.js"),
import("../src/core/highlight.js"),
import("../src/core/data-tests.js"),
import("../src/core/list-sorter.js"),
import("../src/core/highlight-vars.js"),
import("../src/core/algorithms.js"),
import("../src/core/anchor-expander.js"),
/* Linter must be the last thing to run */
"./core/linter",
], (runner, { ui }, ...plugins) => {
ui.show();
domReady().then(async () => {
try {
await runner.runAll(plugins);
await document.respecIsReady;
} catch (err) {
console.error(err);
} finally {
ui.enable();
}
});
});
import("../src/core/linter.js"),
];

async function domReady() {
if (document.readyState === "loading") {
Expand All @@ -91,3 +59,16 @@ async function domReady() {
);
}
}

(async () => {
const [runner, { ui }, ...plugins] = await Promise.all(modules);
try {
ui.show();
await domReady();
await runner.runAll(plugins);
} finally {
ui.enable();
}
})().catch(err => {
console.error(err);
});
158 changes: 69 additions & 89 deletions js/profile-w3c-common.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,97 +4,64 @@ window.addEventListener("error", ev => {
console.error(ev.error, ev.message, ev);
});

// this is only set in a build, not at all in the dev environment
require.config({
paths: {
hyperhtml: "deps/hyperhtml",
idb: "deps/idb",
jquery: "deps/jquery",
marked: "deps/marked",
pluralize: "deps/pluralize",
text: "deps/text",
webidl2: "deps/webidl2",
},
shim: {
shortcut: {
exports: "shortcut",
},
idb: {
exports: "idb",
},
},
});

define([
const modules = [
// order is significant
"./core/base-runner",
"./core/ui",
"./core/jquery-enhanced",
"./core/reindent",
"./core/location-hash",
"./core/l10n",
"./w3c/defaults",
"./core/style",
"./w3c/style",
"./w3c/l10n",
"./core/github",
"./core/data-include",
"./core/markdown",
"./w3c/headers",
"./w3c/abstract",
"./core/data-transform",
"./core/data-abbr",
"./core/inlines",
"./w3c/conformance",
"./core/dfn",
"./core/pluralize",
"./core/examples",
"./core/issues-notes",
"./core/requirements",
"./core/best-practices",
"./core/figures",
"./core/webidl",
"./core/data-cite",
"./core/biblio",
"./core/webidl-index",
"./core/link-to-dfn",
"./core/render-biblio",
"./core/contrib",
"./core/fix-headers",
"./core/structure",
"./core/informative",
"./core/id-headers",
"./core/caniuse",
"./core/mdn-annotation",
"./ui/save-html",
"./ui/search-specref",
"./ui/dfn-list",
"./ui/about-respec",
"./core/seo",
"./w3c/seo",
"./core/highlight",
"./core/webidl-clipboard",
"./core/data-tests",
"./core/list-sorter",
"./core/highlight-vars",
"./core/data-type",
"./core/algorithms",
"./core/anchor-expander",
import("../src/core/base-runner.js"),
import("../src/core/ui.js"),
import("../src/core/jquery-enhanced.js"),
import("../src/core/reindent.js"),
import("../src/core/location-hash.js"),
import("../src/core/l10n.js"),
import("../src/w3c/defaults.js"),
import("../src/core/style.js"),
import("../src/w3c/style.js"),
import("../src/w3c/l10n.js"),
import("../src/core/github.js"),
import("../src/core/data-include.js"),
import("../src/core/markdown.js"),
import("../src/w3c/headers.js"),
import("../src/w3c/abstract.js"),
import("../src/core/data-transform.js"),
import("../src/core/data-abbr.js"),
import("../src/core/inlines.js"),
import("../src/w3c/conformance.js"),
import("../src/core/dfn.js"),
import("../src/core/pluralize.js"),
import("../src/core/examples.js"),
import("../src/core/issues-notes.js"),
import("../src/core/requirements.js"),
import("../src/core/best-practices.js"),
import("../src/core/figures.js"),
import("../src/core/webidl.js"),
import("../src/core/data-cite.js"),
import("../src/core/biblio.js"),
import("../src/core/webidl-index.js"),
import("../src/core/link-to-dfn.js"),
import("../src/core/render-biblio.js"),
import("../src/core/contrib.js"),
import("../src/core/fix-headers.js"),
import("../src/core/structure.js"),
import("../src/core/informative.js"),
import("../src/core/id-headers.js"),
import("../src/core/caniuse.js"),
import("../src/core/mdn-annotation.js"),
import("../src/ui/save-html.js"),
import("../src/ui/search-specref.js"),
import("../src/ui/dfn-list.js"),
import("../src/ui/about-respec.js"),
import("../src/core/seo.js"),
import("../src/w3c/seo.js"),
import("../src/core/highlight.js"),
import("../src/core/webidl-clipboard.js"),
import("../src/core/data-tests.js"),
import("../src/core/list-sorter.js"),
import("../src/core/highlight-vars.js"),
import("../src/core/data-type.js"),
import("../src/core/algorithms.js"),
import("../src/core/anchor-expander.js"),
/* Linter must be the last thing to run */
"./core/linter",
], (runner, { ui }, ...plugins) => {
ui.show();
domReady().then(async () => {
try {
await runner.runAll(plugins);
await document.respecIsReady;
} catch (err) {
console.error(err);
} finally {
ui.enable();
}
});
});
import("../src/core/linter.js"),
];

async function domReady() {
if (document.readyState === "loading") {
Expand All @@ -103,3 +70,16 @@ async function domReady() {
);
}
}

(async () => {
const [runner, { ui }, ...plugins] = await Promise.all(modules);
try {
ui.show();
await domReady();
await runner.runAll(plugins);
} finally {
ui.enable();
}
})().catch(err => {
console.error(err);
});
Loading

0 comments on commit 24a54ca

Please sign in to comment.