+ Added clear function to ASet
All checks were successful
Build / Build NPM Project (push) Successful in 44s
Build / Tag Version (push) Successful in 8s
Build / Publish Documentation (push) Successful in 37s

* fixed pathedEvent fullPath casing
This commit is contained in:
Zakary Timson 2025-05-11 14:13:01 -04:00
parent edc059d17d
commit 7500ba502f
3 changed files with 16 additions and 8 deletions

View File

@ -1,6 +1,6 @@
{
"name": "@ztimson/utils",
"version": "0.24.4",
"version": "0.24.5",
"description": "Utility library",
"author": "Zak Timson",
"license": "MIT",

View File

@ -29,6 +29,14 @@ export class ASet<T> extends Array {
return this;
}
/**
* Remove all elements
*/
clear() {
this.splice(0, this.length);
return this;
}
/**
* Delete elements from set
* @param items Elements that will be deleted

View File

@ -90,9 +90,9 @@ export class PathEvent {
get delete(): boolean { return !this.methods.has('n') && (this.methods.has('*') || this.methods.has('d')) }
set delete(v: boolean) { v ? this.methods.delete('n').delete('*').add('d') : this.methods.delete('d'); }
constructor(Event: string | PathEvent) {
if(typeof Event == 'object') return Object.assign(this, Event);
let [p, scope, method] = Event.replaceAll(/\/{2,}/g, '/').split(':');
constructor(e: string | PathEvent) {
if(typeof e == 'object') return Object.assign(this, e);
let [p, scope, method] = e.replaceAll(/\/{2,}/g, '/').split(':');
if(!method) method = scope || '*';
if(p == '*' || !p && method == '*') {
p = '';
@ -100,8 +100,8 @@ export class PathEvent {
}
let temp = p.split('/').filter(p => !!p);
this.module = temp.splice(0, 1)[0]?.toLowerCase() || '';
this.fullPath = p;
this.path = temp.join('/');
this.fullPath = `${this.module}${this.module && this.path ? '/' : ''}${this.path}`;
this.name = temp.pop() || '';
this.methods = new ASet(<any>method.split(''));
}
@ -206,7 +206,7 @@ export class PathEvent {
* @return {string} String representation of Event
*/
static toString(path: string | string[], methods: Method | Method[]): string {
let p = makeArray(path).filter(p => p != null).join('/');
let p = makeArray(path).filter(p => !!p).join('/');
p = p?.trim().replaceAll(/\/{2,}/g, '/').replaceAll(/(^\/|\/$)/g, '');
if(methods?.length) p += `:${makeArray(methods).map(m => m.toLowerCase()).join('')}`;
return p;