Skip to content
Commits on Source (10)
Dockerfile
.dockerignore
node_modules/
npm-debug.log
README.md
cache/
dist/
tests/
.vscode/
.editorconfig
.eslintignore
.eslintrc
.gitignore
.gitlab-ci.yml
.gitmodules
.npmignore
.prettierignore
.prettierrc
commitlint.config.js
jest.config.js
tsconfig.eslint.json
husky/
\ No newline at end of file
@hobbylose-senior-full-stack-developer:registry=https://gitlab.hobbylos.org/api/v4/projects/6/packages/npm/
//gitlab.hobbylos.org/api/v4/projects/6/packages/npm/:_authToken=glpat-7RxpT9mzEDVAaiQKroZF
\ No newline at end of file
# [1.1.0-alpha.1](https://gitlab.hobbylos.org/hobbylose-senior-full-stack-developer/logmanager/utils/compare/v1.0.4...v1.1.0-alpha.1) (2022-06-26)
### Features
* **event-emitter:** added event emitter types ([9879586](https://gitlab.hobbylos.org/hobbylose-senior-full-stack-developer/logmanager/utils/commit/9879586d12df8fb65a2af93d9611b1107fea1adb)), closes [#4](https://gitlab.hobbylos.org/hobbylose-senior-full-stack-developer/logmanager/utils/issues/4)
## [1.0.4](https://gitlab.hobbylos.org/hobbylose-senior-full-stack-developer/logmanager/utils/compare/v1.0.3...v1.0.4) (2022-06-18)
......
FROM node:17
ARG DiscordToken
ARG TidalClientId
ARG TidalClientSecret
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
RUN npm link
ENV MANUAL_LOGIN="true"
ENV Discord_TOKEN=$DiscordToken
ENV Tidal_clientId=$TidalClientId
ENV Tidal_clientSecret=$TidalClientSecret
CMD [ "npm", "start" ]
{
"name": "@logmanager/utils",
"version": "1.0.4",
"version": "1.1.0-alpha.1",
"type": "commonjs",
"types": "dist/utils.d.ts",
"main": "dist/index.js",
......@@ -15,7 +15,7 @@
"lint-gitlab-ci-yml": "[ -z \"$GITLAB_CI_LINT_TOKEN\" ] || gitlab-ci-lint --url https://gitlab.hobbylos.org --token \"$GITLAB_CI_LINT_TOKEN\"",
"ncu": "ncu --packageFile package.json",
"changelog": "changelog",
"api-extractor": "api-extractor run -c configs/api-extractor.json --local --verbose --typescript-compiler-folder ./node_modules/typescript",
"api-extractor": "npm run tsc --silent && api-extractor run -c configs/api-extractor.json --local --verbose --typescript-compiler-folder ./node_modules/typescript",
"reset-vscode-hide": "node configs/reset-files-exclude.script.mjs && git add .vscode/settings.json",
"precommit": "concurrently -n reset-vscode-hide,lint-gitlab-ci,lint,jest,ncu,api-extractor \"npm run reset-vscode-hide --silent\" \"npm run lint-gitlab-ci-yml --silent || exit 0\" \"npm run lint --silent\" \"npm run jest-coverage --silent || exit 0 \" \"npm run ncu --silent\" \"npm run api-extractor --silent || exit 0 \"",
"prepush": "concurrently -n reset-vscode-hide,lint-gitlab-ci,lint,jest,ncu,api-extractor \"npm run reset-vscode-hide --silent\" \"npm run lint-gitlab-ci-yml --silent || exit 0\" \"npm run lint --silent\" \"npm run jest-coverage --silent\" \"npm run ncu --silent\" \"npm run api-extractor --silent \"",
......@@ -23,11 +23,11 @@
"cm": "cz"
},
"keywords": [
"discord-bot",
"tidal",
"spotify",
"soundcloud",
"youtube"
"logger",
"log",
"logging",
"log manager",
"utils"
],
"repository": {
"type": "git",
......
......@@ -49,11 +49,42 @@ declare namespace collection {
initBind,
syncInitBind,
sleep,
ClassType
ClassType,
createEmitter,
EventMap,
EventKey,
EventReceiver,
Emitter
}
}
export { collection }
// @public
function createEmitter<T extends EventMap>(): Emitter<T>;
// @public
interface Emitter<T extends EventMap> {
// (undocumented)
addListener: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void;
// (undocumented)
emit: <K extends EventKey<T>>(eventName: K, params: T[K]) => void;
// (undocumented)
off: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void;
// (undocumented)
on: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void;
// (undocumented)
removeListener: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void;
}
// @public
type EventKey<T extends EventMap> = string & keyof T;
// @public
type EventMap = Record<string, unknown>;
// @public
type EventReceiver<T> = (params: T) => void;
// @public
const implementsAbstractStatic: typeof AbstractStatic.implementsAbstractStatic;
......
/**
* Map of the events to their values.
*
* @public
*/
export type EventMap = Record<string, unknown>
/**
* Event name
*
* @public
*/
export type EventKey<T extends EventMap> = string & keyof T
/**
* Function to call when the event is emitted.
*
* @public
*/
export type EventReceiver<T> = (params: T) => void
/**
* the type of the event emitter
*
* @public
*/
export interface Emitter<T extends EventMap> {
on: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void
off: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void
addListener: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void
removeListener: <K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>) => void
emit: <K extends EventKey<T>>(eventName: K, params: T[K]) => void
}
import { EventEmitter } from "events"
/**
* Creates a new, typed event emitter.
*
* @returns a new EventEmitter
* @public
*/
export function createEmitter<T extends EventMap>(): Emitter<T> {
return new EventEmitter()
}
......@@ -47,3 +47,5 @@ export function syncInitBind<T>(c: T, f: (this: T) => void): T {
export async function sleep(timeMs: number): Promise<void> {
return new Promise(res => setTimeout(res, timeMs))
}
export * from "./eventEmitter"