1.0.9 • Published 2 years ago

ts-dkutil v1.0.9

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

dk-util

Installation

    $ npm i ts-dkutil
    $ npm i --save ts-dkutil

Index

Observe

/**
 * @info use Proxy Pattern
 * @param cb ProxyHandler (Interface)
 */

export function observe<T extends object>(object: T, cb: ProxyHandler<T>) {
  const proxy = new Proxy(object, cb)
  return proxy
}

Factory

/**
 * @info factory pattern
 * @param K names
 * @param T interface
 */

export abstract class Factory<T, K> {
  inject(className: T): K {
    throw new Error('must be override')
  }
}
  

catchWrap

  export function catchWrap<T>(result: T, errTitle?: string): T | Error {
  try {
    return result
  } catch (e) {
    throw new Error(errTitle || e.message)
  }
}

export async function awaitCatchWrap<T>(result: T, errTitle?: string): Promise<T | Error> {
  try {
    return await result
  } catch (e) {
    throw new Error(errTitle || e.message)
  }
}
  • example
const arrSum = (arr: number[], v: number): number => {
      let sum = 0

      arr.forEach((item) => {
        sum += item
      })

      if (v === 0) {
        throw Error()
      }

      return sum * v
    }

    const arr = [1, 2, 3, 4, 5]
    const multipleNumber = 99

  try{
    const sum = catchWrap<number>(arrSum(arr, multipleNumber), 'invalid number')
  }catch(e){
    // ...
  }
1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago