85 lines
1.4 KiB
JavaScript
85 lines
1.4 KiB
JavaScript
|
|
export default class LayRouting {
|
||
|
|
router;
|
||
|
|
namespace;
|
||
|
|
constructor(router, namespace = null) {
|
||
|
|
this.router = router;
|
||
|
|
|
||
|
|
if (namespace !== null) this.namespace = namespace;
|
||
|
|
}
|
||
|
|
|
||
|
|
setNamespace(ns) {
|
||
|
|
if (!ns || typeof ns != 'string') this.namespace = null;
|
||
|
|
this.namespace = ns;
|
||
|
|
}
|
||
|
|
|
||
|
|
routes() {
|
||
|
|
return this.router.routes;
|
||
|
|
}
|
||
|
|
|
||
|
|
add(path, cb, method) {
|
||
|
|
if (this.namespace) {
|
||
|
|
if (!path.startsWith('/')) path = '/' + path;
|
||
|
|
path = this.namespace + path;
|
||
|
|
}
|
||
|
|
|
||
|
|
this.router.add(path, cb, method);
|
||
|
|
}
|
||
|
|
|
||
|
|
route(config = {}) {
|
||
|
|
if (typeof config != 'object')
|
||
|
|
throw new Error('route config is not an object');
|
||
|
|
|
||
|
|
const { path, handle, method = 'get' } = config;
|
||
|
|
if (typeof path != 'string')
|
||
|
|
throw new Error('route path is not a string');
|
||
|
|
if (typeof handle != 'function')
|
||
|
|
throw new Error('route handle is not a function');
|
||
|
|
this.add(path, handle, method);
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
any(path, cb) {
|
||
|
|
this.all(path, cb);
|
||
|
|
}
|
||
|
|
|
||
|
|
all(path, cb) {
|
||
|
|
this.add(path, cb, 'all');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
get(path, cb) {
|
||
|
|
this.add(path, cb, 'get');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
post(path, cb) {
|
||
|
|
this.add(path, cb, 'post');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
put(path, cb) {
|
||
|
|
this.add(path, cb, 'put');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
patch(path, cb) {
|
||
|
|
this.add(path, cb, 'patch');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
delete(path, cb) {
|
||
|
|
this.add(path, cb, 'delete');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
head(path, cb) {
|
||
|
|
this.add(path, cb, 'head');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
|
||
|
|
options(path, cb) {
|
||
|
|
this.add(path, cb, 'options');
|
||
|
|
return this;
|
||
|
|
}
|
||
|
|
}
|