@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
55 lines • 5.14 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { createTaskIdentifier } from '../../../common';
/**
* ** Base Action for Redux Impl.
*/
export class BaseAction {
/**
* ** Constructor.
*/
constructor(type) {
this.type = type;
}
}
/**
* ** Base Action with payload for Redux Impl.
*/
export class BaseActionWithPayload extends BaseAction {
/**
* ** Constructor.
*/
constructor(type, payload, task) {
super(type);
this.payload = payload;
this.task = createTaskIdentifier(task);
}
/**
* ** Factory method that have to be overridden in Subclasses.
*/
static of(..._args) {
throw new Error('Method have to be overridden in Subclasses.');
}
}
/**
* ** Generic Action with payload for Redux Impl.
*
* - All parameters type, payload and optional task are provided to Constructor.
*/
export class GenericAction extends BaseActionWithPayload {
/**
* ** Constructor.
*/
constructor(type, payload, task) {
super(type, payload, task);
}
/**
* ** Factory method for Generic Action with type and payload in Constructor.
*/
static of(type, payload, task) {
return new GenericAction(type, payload, task);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29yZS9uZ3J4L2FjdGlvbnMvYmFzZS5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUlILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixVQUFVO0lBTTVCOztPQUVHO0lBQ0gsWUFBc0IsSUFBWTtRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IscUJBQXlCLFNBQVEsVUFBVTtJQVc3RDs7T0FFRztJQUNILFlBQXNCLElBQVksRUFBRSxPQUFVLEVBQUUsSUFBYTtRQUN6RCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFWixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFnQjtRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNKO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxhQUFpQixTQUFRLHFCQUF3QjtJQUMxRDs7T0FFRztJQUNILFlBQVksSUFBWSxFQUFFLE9BQVUsRUFBRSxJQUFhO1FBQy9DLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBVSxFQUFFLENBQUksSUFBWSxFQUFFLE9BQVUsRUFBRSxJQUFhO1FBQ3pELE9BQU8sSUFBSSxhQUFhLENBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjMtMjAyNSBCcm9hZGNvbVxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IGNyZWF0ZVRhc2tJZGVudGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uJztcblxuLyoqXG4gKiAqKiBCYXNlIEFjdGlvbiBmb3IgUmVkdXggSW1wbC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xuICAgIC8qKlxuICAgICAqICoqIFR5cGUgb2YgQWN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqICoqIENvbnN0cnVjdG9yLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB9XG59XG5cbi8qKlxuICogKiogQmFzZSBBY3Rpb24gd2l0aCBwYXlsb2FkIGZvciBSZWR1eCBJbXBsLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUFjdGlvbldpdGhQYXlsb2FkPFQ+IGV4dGVuZHMgQmFzZUFjdGlvbiB7XG4gICAgLyoqXG4gICAgICogKiogQWN0aW9uIHBheWxvYWQgZGF0YS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXlsb2FkOiBUO1xuXG4gICAgLyoqXG4gICAgICogKiogQWN0aW9uIFRhc2suXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGFzazogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogKiogQ29uc3RydWN0b3IuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZywgcGF5bG9hZDogVCwgdGFzaz86IHN0cmluZykge1xuICAgICAgICBzdXBlcih0eXBlKTtcblxuICAgICAgICB0aGlzLnBheWxvYWQgPSBwYXlsb2FkO1xuICAgICAgICB0aGlzLnRhc2sgPSBjcmVhdGVUYXNrSWRlbnRpZmllcih0YXNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAqKiBGYWN0b3J5IG1ldGhvZCB0aGF0IGhhdmUgdG8gYmUgb3ZlcnJpZGRlbiBpbiBTdWJjbGFzc2VzLlxuICAgICAqL1xuICAgIHN0YXRpYyBvZiguLi5fYXJnczogdW5rbm93bltdKTogQmFzZUFjdGlvbldpdGhQYXlsb2FkPHVua25vd24+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2QgaGF2ZSB0byBiZSBvdmVycmlkZGVuIGluIFN1YmNsYXNzZXMuJyk7XG4gICAgfVxufVxuXG4vKipcbiAqICoqIEdlbmVyaWMgQWN0aW9uIHdpdGggcGF5bG9hZCBmb3IgUmVkdXggSW1wbC5cbiAqXG4gKiAgICAgIC0gQWxsIHBhcmFtZXRlcnMgdHlwZSwgcGF5bG9hZCBhbmQgb3B0aW9uYWwgdGFzayBhcmUgcHJvdmlkZWQgdG8gQ29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBHZW5lcmljQWN0aW9uPFQ+IGV4dGVuZHMgQmFzZUFjdGlvbldpdGhQYXlsb2FkPFQ+IHtcbiAgICAvKipcbiAgICAgKiAqKiBDb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIHBheWxvYWQ6IFQsIHRhc2s/OiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIodHlwZSwgcGF5bG9hZCwgdGFzayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogKiogRmFjdG9yeSBtZXRob2QgZm9yIEdlbmVyaWMgQWN0aW9uIHdpdGggdHlwZSBhbmQgcGF5bG9hZCBpbiBDb25zdHJ1Y3Rvci5cbiAgICAgKi9cbiAgICBzdGF0aWMgb3ZlcnJpZGUgb2Y8Sz4odHlwZTogc3RyaW5nLCBwYXlsb2FkOiBLLCB0YXNrPzogc3RyaW5nKTogR2VuZXJpY0FjdGlvbjxLPiB7XG4gICAgICAgIHJldHVybiBuZXcgR2VuZXJpY0FjdGlvbjxLPih0eXBlLCBwYXlsb2FkLCB0YXNrKTtcbiAgICB9XG59XG4iXX0=