Quire
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 Quire
?
- Less typing.
- Convenient namespacing in deeply nested paths.
- Avoid eslint's
global-require
rule 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,
anotherModule
and yetAnotherModule
.
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/>.