@mornya/primitive-type-libs
v0.6.2
Published
The project of JavaScript Primitive Type extension library.
Downloads
14
Maintainers
Readme
Primitive Type Libs
Prototype methods of JavaScript Primitive Types.
This project has been created by Vessel. For a simple and quick reference, click here.
About
자바스크립트 Primitive Type에 대한 확장 프로토타입 구현 라이브러리.
Installation
해당 라이브러리를 사용 할 프로젝트에서는 아래와 같이 의존성 모듈로 설치한다.
$ npm install --save @mornya/primitive-type-libs
or
$ yarn add @mornya/primitive-type-libs
Usage
아래와 같이 사용 할 모듈을 import 하여 사용한다.
import { PrimitiveType } from '@mornya/primitive-type-libs';
import { move } from '@mornya/primitive-type-libs/dist/array';
import { format } from '@mornya/primitive-type-libs/dist/date';
const option: PrimitiveType.Option = {
array: [move],
date: [format],
};
PrimitiveType.initialize(option);
console.log(Array.move);
console.log(Date.format);
타입 정의를 위해 tsconfig.json
파일에 아래와 같이 include
항목에 경로를 추가하고 exclude
항목에는 node_modules
경로를 제외하는 설정을 해주어야 한다.
{
...
"include": {
"node_modules/@mornya/primitive-type-libs/types/**/*"
},
"exclude": {
// "node_modules"
}
}
Modules in the package
본 패키지에는 아래와 같은 모듈들을 포함한다. 제공되는 모듈과 메소드 사용법 등은 코드 스니핏을 참고한다.
Array module
Array.move
지정한 숫자만큼 배열 아이템의 순서를 이동한다.
let value = [1, 2, 3];
value = value.move(1, 0);
console.log(value); // [2, 1, 3]
Array.removeMatch
지정한 배열과 중복되는 배열 내 아이템을 제거한다.
let value = [1, 2, 3, 4, 5];
value = value.removeMatch([3, 5]);
console.log(value); // [1, 2, 4]
Array.shuffle
배열 내 아이템을 랜덤하게 섞는다.
let value = [1, 2, 3, 4, 5];
value = value.shuffle();
console.log(value); // [5, 1, 3, 2, 4]...
Array.sortObject
Object Type의 리스트를 소팅한다.
let value = [
{ id: '1', value: 'def' },
{ id: '0', value: 'abc' },
];
value = value.sortObject('value');
console.log(value); // [{ id: '0', value: 'abc' },{ id: '1', value: 'def' }]
Array.union
배열간 합집합 구현.
console.log([1, 2, 3].union([4])); // [1, 2, 3, 4]
Array.intersect
배열간 교집합 구현.
console.log([1, 2, 3].intersect([2])); // [2]
Array.complement
배열간 차집합 구현.
console.log([1, 2, 3].complement([3])); // [1, 2]
Array.isSuperset
입력받은 배열이 현재 배열의 서브셋인지의 여부를 리턴한다.
console.log([1, 2, 3].isSuperset([1])); // true
Date module
Date.format
Date 객체를 지정한 날짜형식의 문자열로 리턴한다.
const date = new Date();
const formatted = date.format('yyyy-MM-dd HH:mm:ss / E', {
lang: 'ko', // default value ['ko'|'en'|'ch']
fillZero: true, // default value
});
console.log(formatted); // 2019-01-01 12:34:56 / 화
yyyy
: 네 자릿수 연도
yy
: 두 자릿수 연도
MM
: 두 자릿수 월
MO
: 한국어/영어/한자 월(1월,2월,... / January,February,... / 1月,2月,...)
dd
: 두 자릿수 일
E
: 옵션(lang)에 따라 요일명(월,화,... / Mon,Tue,... / 月,火,...) 표기
HH
: 두 자릿수 시
hh
: 두 자릿수 시 (12시간제)
mm
: 두 자릿수 분
ss
: 두 자릿수 초
ms
: 밀리초
ap
/AP
: 옵션(lang)에 따라 'AM' / '오전' / '午前' 등 표기
$Y
: 옵션(lang)에 따라 '년' / '年' 표기
$M
: 옵션(lang)에 따라 '월' / '月' 표기
$D
: 옵션(lang)에 따라 '일' / '日' 표기
$H
: 옵션(lang)에 따라 '시' / '時' 표기
$m
: 옵션(lang)에 따라 '분' / '分' 표기
$s
: 옵션(lang)에 따라 '초' / '秒' 표기
Date.collect
문자열을 마스킹하여 날짜를 추출하여 Date 타입으로 리턴한다.
millisecond는 추출대상에서 예외.
console.log(new Date().collect(
'yyyy-MM-dd HH:mm:ss',
'2019-01-01 13:59:59',
));
// 2019-01-01T13:59:59.000Z
yyyy
: 네 자릿수 연도
MM
: 두 자릿수 월
dd
: 두 자릿수 일
HH
: 두 자릿수 시 (24시간제)
hh
: 두 자릿수 시 (12시간제)
mm
: 두 자릿수 분
ss
: 두 자릿수 초
Date.isToday
해당 Date 타입의 날짜가 오늘 날짜인지 체크한다.
const today = new Date();
console.log(today.isToday()); // true
today.setFullYear(today.getFullYear() - 1);
console.log(today.isToday()); // false
Date.setYesterday
오늘로부터 N일 전으로 날짜를 설정한다.
console.log(new Date().setYesterday(10)); // 오늘부터 10일 전 날짜
Date.setTomorrow
오늘로부터 N일 이후의 날짜를 설정한다.
console.log(new Date().setTomorrow(10)); // 오늘부터 10일 후 날짜
Number module
Number.zf
지정한 숫자만큼 '0'을 해당 숫자 앞에 추가하여 문자열로 리턴한다.
const value = 123;
value.zf(2);
console.log(value); // 00123
Number.toDigits
숫자(소수포함)를 자릿수 구분 문자열로 리턴한다.
const value = 1000.123;
console.log(value.toDigits()); // 1,000.123
Number.inRange
숫자가 범위내의 수인지의 여부에 따라 true/false를 리턴한다. 1개의 파라미터만 주어지면 0부터 해당 값 내 범위인지를 체크한다.
console.log((10).inRange(9, 10)); // true
console.log((10).inRange(10)); // true
console.log((-2).inRange(-1)); // false
Set module
Set.union
세트간 합집합 구현.
const value = new Set([1, 2, 3]);
console.log(value.union([4])); // [1, 2, 3, 4], 배열 인자 받음
console.log(value.union(new Set([4]))); // set: [1, 2, 3, 4], 세트 인자 받음
Set.intersect
세트간 교집합 구현.
const value = new Set([1, 2, 3]);
console.log(value.intersect([2])); // [2], 배열 인자 받음
console.log(value.intersect(new Set([2]))); // [2], 세트 인자 받음
Set.complement
세트간 차집합 구현.
const value = new Set([1, 2, 3]);
console.log(value.complement([3])); // [1, 2], 배열 인자 받음
console.log(value.complement(new Set([3]))); // [1, 2], 세트 인자 받음
Set.isSuperset
입력받은 세트가 현재 세트의 서브셋인지의 여부를 리턴한다.
const value = new Set([1, 2, 3]);
console.log(value.isSuperset([1])); // true, 배열 인자 받음
console.log(value.isSuperset(new Set([1]))); // true, 세트 인자 받음
String module
String.zf
지정한 숫자만큼 '0'을 해당 문자열 앞에 추가한다.
const value = '123';
value.zf(2);
console.log(value); // 00123
String.truthy
빈 문자열이 아닐 경우 true, 그렇지 않으면 false 반환.
const value = '';
console.log(value.truthy()); // false
String.falsy
빈 문자열일 경우 true, 그렇지 않으면 false 반환.
const value = '';
console.log(value.falsy()); // true
String.format
문자열에 포함된 { }
안의 값을 파라미터 오브젝트의 동일 키에 해당하는 값으로 치환한다.
const value = '안녕하세요. {mornya} 입니다.';
const result = value.format({ mornya: '염전노예' });
console.log(result); // 안녕하세요. 염전노예 입니다.
String.toCamelCase
문자열을 camelCase 표기법으로 치환한다.
const value = 'HelloWorld';
console.log(value.toCamelCase()); // helloWorld
String.extractNumber
문자열에서 숫자만 추출해낸다.
const value = '안녕 "M0123" 친구야. 넌 43살이 맞니?';
console.log(value.extractNumber()); // 012343
Change Log
프로젝트 변경사항은 CHANGELOG.md 파일 참조.
License
프로젝트 라이센스는 LICENSE 파일 참조.