Skip to content

Instantly share code, notes, and snippets.

View bogdanovna's full-sized avatar
💋
I may be slow to respond.

Nik Kita bogdanovna

💋
I may be slow to respond.
View GitHub Profile
@bogdanovna
bogdanovna / example-of-usage-in-some-postman-request-script.js
Last active September 15, 2024 11:31
this code should be saved into collection variables for example as "magic" and will be call with ".eval(pm.collectionVariables.get('magic'))" from postman tests
const magic = {
res_jbody_to_env: [
{
access: ['data', 'access_token']
},
],
req_jbody_to_env: [
{
email: ["email"],
name: ["name"]
@bogdanovna
bogdanovna / compute-arr-of-keys.types-fn.ts
Created April 20, 2023 03:49
allow you dynamicaly create array of keys (with or without some of them or new) and provide typed return value
export function computeArrOfKeys<
T extends object,
R extends readonly (keyof T)[],
A extends readonly string[]>(
obj: Required<Record<keyof Required<T>, null>>,
rm: R, ...add: A) {
const origin = new Set(Object.keys(obj));
add.forEach((a) => origin.add(a));
rm.forEach((r) => origin.delete(r as string));
@bogdanovna
bogdanovna / event-pattern-by-method-name.decorator.ts
Created April 19, 2023 07:53
Force to use patterns as method names so it is possible to protect them with typescript.
import { EventPattern } from '@nestjs/microservices';
export function EventPatternByMethodName() {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
EventPattern(propertyKey)(target, propertyKey, descriptor);
};
}
@bogdanovna
bogdanovna / value-by-key.generic.ts
Last active April 19, 2023 07:52
Get value from some record having its key.
export type ValueByKeyType<T extends Record<string, any>, S extends keyof T> = T[S];
/**
* Example of usage
**/
import { ClientProxy } from '@nestjs/microservices';
export type OverrideMicroClient<T extends Record<string, anny>> = Omit<ClientProxy, 'send' | 'emit'> & {
@bogdanovna
bogdanovna / omit-enhencers.generic.ts
Last active September 17, 2024 06:07
type Omit with additional generic modifications
export type Prettify<T> = {
[K in keyof T]: T[K];
} & {};
export type Prefixed<T, P extends string> = {
[K in keyof T as K extends string ? `${P}${K}` : never]: T[K];
};
export type OmitStrict<T extends Record<string, any>, K extends keyof T> = Omit<
T,