Skip to content

Instantly share code, notes, and snippets.

@supasympa
Last active March 26, 2019 17:28
Show Gist options
  • Save supasympa/144776c6844a52b15fd501a7909a33a9 to your computer and use it in GitHub Desktop.
Save supasympa/144776c6844a52b15fd501a7909a33a9 to your computer and use it in GitHub Desktop.
Filter file paths!
import * as assert from 'assert';
const paths = [
'src',
'src/react-dom',
'src/react-dom/src',
'src/react-dom/src/client',
'src/react-dom/src/client/ReactDOMHostConfig.js',
'packages',
'packages/react-dom',
'packages/react-dom/src',
'packages/react-dom/src/client',
'packages/react-dom/src/client/ReactDOMHostConfig.js',
'docs',
'docs/api',
'docs/api/foo.md',
'docs/api/bar/bar.md',
'docs/docco-api/bar/bar.md',
'docs/docco-api/foo.md',
];
assert.strictEqual(paths.length, 16);
const excludeStartingWith = (exclusion:string) => (path: string) => !path.startsWith(exclusion);
assert.deepStrictEqual(
paths
.filter(excludeStartingWith('src'))
.filter(excludeStartingWith('docs')),
[
'packages',
'packages/react-dom',
'packages/react-dom/src',
'packages/react-dom/src/client',
'packages/react-dom/src/client/ReactDOMHostConfig.js'
]);
assert.deepStrictEqual(
paths
.filter(excludeStartingWith('src'))
.filter(excludeStartingWith('docs/docco-api')),
[
'packages',
'packages/react-dom',
'packages/react-dom/src',
'packages/react-dom/src/client',
'packages/react-dom/src/client/ReactDOMHostConfig.js',
'docs',
'docs/api',
'docs/api/foo.md',
'docs/api/bar/bar.md',
]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment