Delivering delightful digital solutions. Monorepo of monorepos of Open Source packages with combined ~100M/month downloads, semantically versioned following @conventional-commits. Fully powered ES Modules, @Airbnb @ESLint + @Prettier, independent & fixed versioning. Quality with @Actions, CodeQL, & Dependabot.
Bot releases are hidden (Show)
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Note: Version bump only for package ip-filter
Published by tunnckoCore over 4 years ago
Node.js >= 10.13
MPL-2.0
licensePublished by tunnckoCore over 4 years ago
node >= 10.13
MPL-2.0
micromatch@4
directly instead of legacy is-match
@packages/ip-filter
)Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Uses fastGlob.stream
by default, plus for await ... of
.
The main default export is async generator async function * () {}
and it returns async iterable, so you need to call iterable.next()
or to use for await
loop (which requires async
function).
const globCache = require('glob-cache');
async function main() {
const iterable = globCache('src/**/*.js');
// or like so, both are equivalent
const iter = globCache.stream({ include: 'src/**/*.js' });
for await (const ctx of iterable) {
console.log(ctx);
}
}
main().catch(console.error);
There is also exported globCache.promise
API, which is async function
and so returns a Promise.
const globCache = require('glob-cache');
const promise = globCache.promise({ include: 'src/**/*.js' });
promise
.then((results) => {
console.log(results); // []
})
.catch(console.error);
Important to note. By default the Promise API resolves to an empty array. That's intentional since we also have the so-called Hooks API and so it's unnecessary to pollute the memory when you are using this api. If you don't use the Hooks API, but just want the results then pass buffered: true
and the promise will resolve to an array of Context objects. You can later filter this results
array of contexts by ctx.changed
or ctx.notFound
, or whatever.
const globCache = require('glob-cache');
async function main() {
const results = await globCache.promise({
include: 'src/**/*.js',
buffered: true,
});
console.log(results);
// => [Context, Context, Context, ...]
}
main().catch(console.error);
It's not recommended to use the Hooks API when using the Stream API.
Previously we had just a single options.hook
function, now it is options.hooks
object. And we needed to determine based on ctx.valid
and ctx.missing
booleans.
Now we just have hooks for everything - hooks.changed
, hooks.notChanged
, hooks.found
, hooks.notFound
and hooks.always
. It's pretty obvious by their names. Hooks can also be async functions - using async/await or regular function returning a promise.
The ctx.valid
and ctx.missing
are replaced by ctx.changed
and ctx.notFound
- both has almost the same meaning as previously. Both are available through all the hooks. In combination with hooks it becomes great.
1. on very first hit
-> ctx.changed === true
-> ctx.notFound === true
2. on second hit (without changes to files)
-> ctx.changed === false
-> ctx.notFound === false
3. on third hit (with changes)
-> ctx.changed === true
-> ctx.notFound === false
Same as above applies for the hooks calls.
const globCache = require('glob-cache');
(async () => {
await globCache.promise({
include: 'src/*.js',
hooks: {
changed(ctx) {
if (ctx.notFound) {
console.log(ctx.file.path, 'first hit');
} else {
console.log(ctx.file.path, 'changed');
}
},
always() {
console.log('file', ctx.file.path);
},
},
});
})()
Notice that changed
hook is also called when "not found" (i.e. first hit).
Signed-off-by: Charlike Mike Reagent [email protected]
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Note: Version bump only for package stringify-github-short-url
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Note: Version bump only for package @tunnckocore/pretty-config
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Note: Version bump only for package parse-commit-message
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Note: Version bump only for package arr-includes
Published by tunnckoCore over 4 years ago
Published by tunnckoCore over 4 years ago
Note: Version bump only for package gitclone-cli
Published by tunnckoCore over 4 years ago
Note: Version bump only for package all-module-paths
Published by tunnckoCore over 4 years ago