Welcome to the future, where less is cool.
What is Quire?
Quire gets rid of the 're' in 'require.' What do you get out of
- Less typing.
- Convenient namespacing in deeply nested paths.
- Avoid eslint's
global-requirerule altogether. Your code isn't crappy if you can abstract away the inconsistencies!
OK, I'm fully convinced. How do I use it???
Suppose you have a not-so-deeply nested file somewhere:
// path/shared/someModule.js module.exports = () => 'Hello, dude!'
Let's say you also have a couple other modules in the same folder,
Now, in a much more deeply nested file,
Quire makes including the
aforementioned modules a breeze! Check it:
// path/to/my/thingy/index.js const Quire = require('quire') const quire = new Quire('path/shared') // Easy to read, relative to root const someModule = quire('someModule') // Nothin' but the module name, baby const anotherModule = quire('anotherModule') // You know you like it, don't deny const yetAnotherModule = quire('subpath/yetAnotherModule') // Aww yea, this rox! // Look ma, no ../'s! process.stdout.write((someModule()) // Outputs 'Hello, dude!'
So modern! So... wait.. why are you using CommonJS?
Until the war of "Michael Jackson script," dynamic imports, et. al, is won, we're stuck with one foot in the present, and one foot in the future. Which technically puts you in the future. So be happy.
P.S., have you heard about ES9 yet?
You know this software is legit coz it's got this crazy license block, yo. Copyright (C) 2018 Timothy Huang This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.