Path-Matcher @acta/path-matcher
To compile a regex matcher from a path template and test paths against a regex matcher. This is meant to be used as an utilit for a router.
Table of Contents
Basic use case
Test a path against a template with testPath( path, template )
. If the path matches with the template, an object with the name, the pathname and the segment values is returned. Otherwise, the test returns false.
import pathMatcher from '@acta/path-matcher';
pathMatcher.testPath('/foo/bar', '/foo/bar');
pathMatcher.testPath('/foo/bar', '/foo/{baz}')
pathMatcher.testPath('/foo', '/foo/{bar?}')
pathMatcher.testPath('/foo/bar', '/bar/foo');
Store compiled templates
You can store templates in the pathMatcher
object. They will be compiled for later use.
import pathMatcher from '@acta/path-matcher';
pathMatcher.addTemplate('/foo/{bar?}');
pathMatcher.addTemplate({
name: 'foobar',
paramsChecks: {
bar: /[0-9]?/
},
template: '/foo/{bar?}'
});
The compiled template will be accessible in pathMatcher.compiledTemplates
.
Test against a compiled template
When a template has been stored, you can test a path against it.
import pathMatcher from '@acta/path-matcher';
pathMatcher.testPathAgainstCompiledTemplate('foobar', 'foo/123');
This is more of an internal method used to find a template, but you can use it to build a router.
Check if a path matches a stored template
import pathMatcher from '@acta/path-matcher';
pathMatcher.addTemplate('/foo/bar/{baz?}');
pathMatcher.addTemplate({
name: 'foobar',
paramsChecks: {
bar: /[0-9]?/
},
template: '/foo/{bar?}'
});
pathMatcher.findPath('foo/123');
pathMatcher.findPath('bar/123');
Dev scripts
Scripts :
npm run dev
to dev (build, test and watch)npm run build
to build the production versionnpm run release
to release a new version. Relies on release-it for deployments.
To develop in local using the package from another application or package, go for a symlink: npm link /the/absolute/path/url
.
To publish: npm publish --access=public
.