UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

50 lines 4.16 kB
/** * Define the typeCache which will hold all action types for the entire application */ var typeCache = {}; /** * Ensure you only define an action once in the entirety of the application * * @param label - The action label * @returns uniqueLabel - The unique label * * @example * defineType('[log-in] User log in') as '[log-in] User log in'; */ export function defineType(label) { // Verify the label does not already exist in the cache if (typeCache[label]) { throw new Error("Action type '" + label + "' is not unique!"); } // Save the label to the cache typeCache[label] = true; return label; } /** * Ensure action is defined only once in the entirety of the application * * @param typeEnum * * @example * export enum actionTypes { * AssignState = '[mock-meta-reducer] Assign State', * }; * defineTypeEnum(actionTypes); */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export function defineTypeEnum(typeEnum) { for (var val in typeEnum) { // istanbul ignore else if (typeEnum.hasOwnProperty(val)) { defineType(typeEnum[val]); } } } /** * Reset the type cache * NOTE: FOR TESTS ONLY */ export function resetTypeCache() { typeCache = {}; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLXR5cGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL3V0aWxpdGllcy8iLCJzb3VyY2VzIjpbImRlZmluZS10eXBlL2RlZmluZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsSUFBSSxTQUFTLEdBQStCLEVBQUUsQ0FBQztBQUcvQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQW1CLEtBQVE7SUFDbkQsdURBQXVEO0lBQ3ZELElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWdCLEtBQUsscUJBQWtCLENBQUMsQ0FBQztLQUMxRDtJQUVELDhCQUE4QjtJQUM5QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBRXhCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUdEOzs7Ozs7Ozs7O0dBVUc7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxRQUE2QjtJQUMxRCxLQUFLLElBQU0sR0FBRyxJQUFJLFFBQVEsRUFBRTtRQUMxQix1QkFBdUI7UUFDdkIsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQjtLQUNGO0FBQ0gsQ0FBQztBQUdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjO0lBQzVCLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lIHRoZSB0eXBlQ2FjaGUgd2hpY2ggd2lsbCBob2xkIGFsbCBhY3Rpb24gdHlwZXMgZm9yIHRoZSBlbnRpcmUgYXBwbGljYXRpb25cbiAqL1xubGV0IHR5cGVDYWNoZToge1tsYWJlbDogc3RyaW5nXTogYm9vbGVhbn0gPSB7fTtcblxuXG4vKipcbiAqIEVuc3VyZSB5b3Ugb25seSBkZWZpbmUgYW4gYWN0aW9uIG9uY2UgaW4gdGhlIGVudGlyZXR5IG9mIHRoZSBhcHBsaWNhdGlvblxuICpcbiAqIEBwYXJhbSBsYWJlbCAtIFRoZSBhY3Rpb24gbGFiZWxcbiAqIEByZXR1cm5zIHVuaXF1ZUxhYmVsIC0gVGhlIHVuaXF1ZSBsYWJlbFxuICpcbiAqIEBleGFtcGxlXG4gKiBkZWZpbmVUeXBlKCdbbG9nLWluXSBVc2VyIGxvZyBpbicpIGFzICdbbG9nLWluXSBVc2VyIGxvZyBpbic7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVUeXBlPFQgZXh0ZW5kcyBzdHJpbmc+KGxhYmVsOiBUKTogVCB7XG4gIC8vIFZlcmlmeSB0aGUgbGFiZWwgZG9lcyBub3QgYWxyZWFkeSBleGlzdCBpbiB0aGUgY2FjaGVcbiAgaWYgKHR5cGVDYWNoZVtsYWJlbF0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFjdGlvbiB0eXBlICcke2xhYmVsfScgaXMgbm90IHVuaXF1ZSFgKTtcbiAgfVxuXG4gIC8vIFNhdmUgdGhlIGxhYmVsIHRvIHRoZSBjYWNoZVxuICB0eXBlQ2FjaGVbbGFiZWxdID0gdHJ1ZTtcblxuICByZXR1cm4gbGFiZWw7XG59XG5cblxuLyoqXG4gKiBFbnN1cmUgYWN0aW9uIGlzIGRlZmluZWQgb25seSBvbmNlIGluIHRoZSBlbnRpcmV0eSBvZiB0aGUgYXBwbGljYXRpb25cbiAqXG4gKiBAcGFyYW0gdHlwZUVudW1cbiAqXG4gKiBAZXhhbXBsZVxuICogZXhwb3J0IGVudW0gYWN0aW9uVHlwZXMge1xuICogICBBc3NpZ25TdGF0ZSA9ICdbbW9jay1tZXRhLXJlZHVjZXJdIEFzc2lnbiBTdGF0ZScsXG4gKiB9O1xuICogZGVmaW5lVHlwZUVudW0oYWN0aW9uVHlwZXMpO1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVR5cGVFbnVtKHR5cGVFbnVtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCAge1xuICBmb3IgKGNvbnN0IHZhbCBpbiB0eXBlRW51bSkge1xuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgaWYgKHR5cGVFbnVtLmhhc093blByb3BlcnR5KHZhbCkpIHtcbiAgICAgIGRlZmluZVR5cGUodHlwZUVudW1bdmFsXSk7XG4gICAgfVxuICB9XG59XG5cblxuLyoqXG4gKiBSZXNldCB0aGUgdHlwZSBjYWNoZVxuICogTk9URTogRk9SIFRFU1RTIE9OTFlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0VHlwZUNhY2hlKCk6IHZvaWQge1xuICB0eXBlQ2FjaGUgPSB7fTtcbn1cbiJdfQ==