Releases: tunnckoCore/opensource
[email protected]
4.0.0-canary.20200124.7 (2020-03-27)
Note: Version bump only for package parse-commit-message
[email protected]
[email protected]
2.0.0 (2020-03-16)
chore
BREAKING CHANGES
- Major v2 Release, see #128
- require
Node.js >= 10.13 - swtch to
MPL-2.0license - update deps
- move to monorepo, https://ghub.now.sh/to-file-path
[email protected]
3.0.1 (2020-03-16)
Note: Version bump only for package ip-filter
[email protected]
3.0.0 (2020-03-16)
chore
BREAKING CHANGES
- release v3, see #127
- require
node >= 10.13 - relicense to
MPL-2.0 - switch to use
micromatch@4directly instead of legacyis-match - continuation of tunnckoCore/ip-filter#8
- new home https://ghub.now.sh/ip-filter (
@packages/ip-filter)
[email protected]
[email protected]
1.0.0 (2020-03-05)
Bug Fixes
- glob-cache: include mpl-2.0 license file (90f1e4e)
Features
BREAKING CHANGES
- glob-cache: use async iterables + expose Stream, Promise, and Hooks APIs
"Streaming" / async iterables API
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);Promise API
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);Hooks API
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]
[email protected]
3.3.5 (2020-02-29)
Note: Version bump only for package stringify-github-short-url
[email protected]
0.2.4 (2020-02-29)
Note: Version bump only for package prettier-plugin-pkgjson
[email protected]
5.6.5 (2020-02-29)
Note: Version bump only for package parse-function