본문 바로가기
프로젝트

유틸과 헬퍼함수를 정리해보기.

by ISA(류) 2022. 12. 21.

개발을 하다 보면 핵심 기능은 아니지만 자잘하게 여러 곳에서 공통적으로 쓰이는 헬퍼나 유틸 따위로 지칭 가능한 코드들이 존재한다. 개인적으로 어떤 완성품(프로덕트)보다 개발을 위한 프로덕트 느낌의 도구들을 만들고 설계하고 고민하는데 더 관심을 가지는 입장에서는 최근에 뒤늦게 해당 부분들을 개인적으로 정리해서 패키지화 해볼 생각을 하게 되었다.

 

우선 프론트 개발 위주로 정리해보는 중이다. 간단한 wrap에 해당하는 함수부터 여기저기 자주 쓰이는 함수들까지 jest를 이용한 TDD 형식을 적당히 지켜가면서 생각나는대로 또 귀찮음을 이기는대로 간단하게나마 조금씩 진행해보고 있다.

import isArray from './isArray';

describe('isArray', () => {
  test('arg is Array', () => {
    expect(isArray([])).toBeTruthy();
  });
  test('arg is not Array', () => {
    expect(isArray({})).toBeFalsy();
    expect(isArray(new Map())).toBeFalsy();
    expect(isArray(new Set())).toBeFalsy();
    expect(isArray('[]')).toBeFalsy();
  });
});
import getQuery from './getQuery';

describe('getQuery', () => {
  beforeEach(() => {
    global.window = Object.create({
      location: {
        ancestorOrigins: null,
        assign: null,
        hash: '',
        host: 'www.google.com',
        hostname: 'www.google.com',
        href: 'https://www.google.com/search?q=google&oq=google&aqs=chrome..69i57j69i60l3.1669j0j7&sourceid=chrome&ie=UTF-8',
        origin: 'https://www.google.com',
        pathname: '/search',
        port: '',
        protocol: 'https:',
        reload: null,
        replace: null,
        search:
          '?q=google&oq=google&aqs=chrome..69i57j69i60l3.1669j0j7&sourceid=chrome&ie=UTF-8',
      },
    });
  });

  test('getQuery return URLSearchParams', () => {
    window.location.search = '?test=google&name=top';
    expect(getQuery()).toEqual(new URLSearchParams(window.location.search));
    expect(getQuery().get('test')).toBe('google');
    expect(getQuery().get('name')).toBe('top');
    expect(getQuery().has('asdasd')).toBeFalsy();
  });
});

https://github.com/yoonjonglyu/util-helper

 

GitHub - yoonjonglyu/util-helper: js,ts,utll,helper

js,ts,utll,helper. Contribute to yoonjonglyu/util-helper development by creating an account on GitHub.

github.com

개발이 어느 정도 끝나면 다듬어서 정리 해봐야겠다.

반응형