Move Runlevel reporting to console.debug calls, fix logic flaw when to complain about Controller initialization

This commit is contained in:
Ludwig Schubert
2019-01-31 17:18:07 -08:00
parent 0300b98cb6
commit c3ff605777
5 changed files with 29 additions and 25 deletions
+16 -13
View File
@@ -13,6 +13,7 @@
// limitations under the License.
import { Controller } from './controller';
import { domContentLoaded } from './helpers/domContentLoaded.js';
/* Transforms */
import { makeStyleTag } from './styles/styles';
@@ -55,13 +56,13 @@ const distillMain = function() {
throw new Error('Runlevel 1: Distill Template is getting loaded more than once, aborting!');
} else {
window.distillTemplateIsLoading = true;
console.info('Runlevel 1: Distill Template has started loading.');
console.debug('Runlevel 1: Distill Template has started loading.');
}
/* 2. Add styles if they weren't added during prerendering */
makeStyleTag(document);
console.info('Runlevel 1: Static Distill styles have been added.');
console.info('Runlevel 1->2.');
console.debug('Runlevel 1: Static Distill styles have been added.');
console.debug('Runlevel 1->2.');
window.distillRunlevel += 1;
/* 3. Register Controller listener functions */
@@ -73,8 +74,8 @@ const distillMain = function() {
console.error('Runlevel 2: Controller listeners need to be functions!');
}
}
console.info('Runlevel 2: We can now listen to controller events.');
console.info('Runlevel 2->3.');
console.debug('Runlevel 2: We can now listen to controller events.');
console.debug('Runlevel 2->3.');
window.distillRunlevel += 1;
/* 4. Register components */
@@ -93,29 +94,31 @@ const distillMain = function() {
}
const allComponents = components.concat(distillComponents);
for (const component of allComponents) {
console.info('Runlevel 2: Registering custom element: ' + component.is);
console.debug('Runlevel 2: Registering custom element: ' + component.is);
customElements.define(component.is, component);
}
console.info('Runlevel 3: Distill Template finished registering custom elements.');
console.info('Runlevel 3->4.');
console.debug('Runlevel 3: Distill Template finished registering custom elements.');
console.debug('Runlevel 3->4.');
window.distillRunlevel += 1;
// If template was added after DOMContentLoaded we may have missed that event.
// Controller will check for that case, so trigger the event explicitly:
Controller.listeners.DOMContentLoaded();
if (domContentLoaded()) {
Controller.listeners.DOMContentLoaded();
}
console.info('Runlevel 4: Distill Template initialisation complete.');
console.debug('Runlevel 4: Distill Template initialisation complete.');
};
window.distillRunlevel = 0;
/* 0. Check browser feature support; synchronously polyfill if needed */
if (Polyfills.browserSupportsAllFeatures()) {
console.info('Runlevel 0: No need for polyfills.');
console.info('Runlevel 0->1.');
console.debug('Runlevel 0: No need for polyfills.');
console.debug('Runlevel 0->1.');
window.distillRunlevel += 1;
distillMain();
} else {
console.info('Runlevel 0: Distill Template is loading polyfills.');
console.debug('Runlevel 0: Distill Template is loading polyfills.');
Polyfills.load(distillMain);
}
+4 -6
View File
@@ -15,14 +15,12 @@
import { FrontMatter, mergeFromYMLFrontmatter } from './front-matter';
import { DMath } from './components/d-math';
import { collect_citations } from './helpers/citation.js';
import { domContentLoaded } from './helpers/domContentLoaded.js';
import { parseFrontmatter } from './components/d-front-matter';
import optionalComponents from './transforms/optional-components';
const frontMatter = new FrontMatter();
function domContentLoaded() {
return ['interactive', 'complete'].indexOf(document.readyState) !== -1;
}
export const Controller = {
@@ -109,7 +107,7 @@ export const Controller = {
if (citationListTag.hasAttribute('distill-prerendered')) {
console.info('Citation list was prerendered; not updating it.');
console.debug('Citation list was prerendered; not updating it.');
} else {
const entries = new Map(frontMatter.citations.map( citationKey => {
return [citationKey, frontMatter.bibliography.get(citationKey)];
@@ -167,11 +165,11 @@ export const Controller = {
console.warn('Controller received DOMContentLoaded but was already loaded!');
return;
} else if (!domContentLoaded()) {
console.warn('Controller received DOMContentLoaded before appropriate document.readyState!');
console.warn('Controller received DOMContentLoaded at document.readyState: ' + document.readyState + '!');
return;
} else {
Controller.loaded = true;
console.log('Runlevel 4: Controller running DOMContentLoaded');
console.debug('Runlevel 4: Controller running DOMContentLoaded');
}
const frontMatterTag = document.querySelector('d-front-matter');
+3
View File
@@ -0,0 +1,3 @@
export function domContentLoaded() {
return ['interactive', 'complete'].indexOf(document.readyState) !== -1;
}
+5 -5
View File
@@ -13,7 +13,7 @@
// limitations under the License.
export function addPolyfill(polyfill, polyfillLoadedCallback) {
console.info('Runlevel 0: Polyfill required: ' + polyfill.name);
console.debug('Runlevel 0: Polyfill required: ' + polyfill.name);
const script = document.createElement('script');
script.src = polyfill.url;
script.async = false;
@@ -58,11 +58,11 @@ export class Polyfills {
// Define an intermediate callback that checks if all is loaded.
const polyfillLoaded = function(polyfill) {
polyfill.loaded = true;
console.info('Runlevel 0: Polyfill has finished loading: ' + polyfill.name);
// console.info(window[polyfill.name]);
console.debug('Runlevel 0: Polyfill has finished loading: ' + polyfill.name);
// console.debug(window[polyfill.name]);
if (Polyfills.neededPolyfills.every((poly) => poly.loaded)) {
console.info('Runlevel 0: All required polyfills have finished loading.');
console.info('Runlevel 0->1.');
console.debug('Runlevel 0: All required polyfills have finished loading.');
console.debug('Runlevel 0->1.');
window.distillRunlevel = 1;
callback();
}
+1 -1
View File
@@ -67,7 +67,7 @@ export default function render(dom) {
if (templateTag) {
templateTag.parentNode.removeChild(templateTag);
} else {
console.info('FYI: Did not find template tag when trying to remove it. You may not have added it. Be aware that our polyfills will add it.')
console.debug('FYI: Did not find template tag when trying to remove it. You may not have added it. Be aware that our polyfills will add it.')
}
// add loader