You have your utils.js
with the classic document.querySelector
shortcut:
function q(selector) { return document.querySelector(selector) }
Lets say that the "assertion" is that this should be only called when we know the selector will always match a single element (for the other cases we simply call other functions)
We leave this "efficient" version, and we replicate the an error checking version of it in a new file utils.dev.js
:
function q(selector) { const res = [...document.querySelectorAll(selector)] if (res.length == 1) return res[0]; throw `Found ${res.length} matches for '${selector}'`; }
And then in the "build system" we specify one of the files based on the release mode.
done_