dep update
- typescript 5.9 업데이트: Uint8Array 문제 해결 - jest -> vitest (이후엔 그냥 node.test ?) - @trpc 준비 - node 24
This commit is contained in:
@@ -19,8 +19,8 @@
|
||||
"author": "Hide_D <hided62@gmail.com>",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.11.24",
|
||||
"date-fns": "^3.3.1",
|
||||
"@types/node": "^24.7.0",
|
||||
"date-fns": "^4.1.0",
|
||||
"lodash-es": "^4.17.21"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -5,7 +5,7 @@ type BsonifiableLite = string | number | boolean | bigint | null | undefined;
|
||||
|
||||
export type PlainBsonItem =
|
||||
string | number | boolean | null | undefined |
|
||||
Date | ArrayBuffer | SharedArrayBuffer | ArrayBufferView |
|
||||
Date | ArrayBuffer | ArrayBufferView |
|
||||
PlainBsonItem[] |
|
||||
{ [key: string]: PlainBsonItem };
|
||||
|
||||
@@ -14,7 +14,7 @@ export type PlainBson =
|
||||
|
||||
export type BsonifiableItem =
|
||||
BsonifiableLite |
|
||||
Date | ArrayBuffer | SharedArrayBuffer | ArrayBufferView |
|
||||
Date | ArrayBuffer | ArrayBufferView |
|
||||
Array<BsonifiableItem> |
|
||||
Map<BsonifiableLite, BsonifiableItem> |
|
||||
Set<BsonifiableLite> |
|
||||
|
||||
@@ -36,9 +36,6 @@ export function isBufferSource(obj: unknown): obj is BufferSource {
|
||||
if (obj instanceof ArrayBuffer){
|
||||
return true;
|
||||
}
|
||||
if('SharedArrayBuffer' in globalThis && obj instanceof SharedArrayBuffer){
|
||||
return true;
|
||||
}
|
||||
if (ArrayBuffer.isView(obj)){
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
|
||||
|
||||
/** Buffer이지만 ts에서 타입 구분 편의를 제공 */
|
||||
export interface WrappedBuffer extends Buffer {
|
||||
export interface WrappedBuffer extends Buffer<ArrayBuffer> {
|
||||
/** 타입구분자. 항상 undefined일 것이다 */
|
||||
_w_type?: string;
|
||||
}
|
||||
@@ -9,27 +7,27 @@ export interface WrappedBuffer extends Buffer {
|
||||
|
||||
/** ArrayBuffer,Uint8Array,Buffer를 WrappedBuffer로 변환
|
||||
*/
|
||||
export function wrapBuffer<T extends WrappedBuffer>(buffer: BufferSource): T {
|
||||
export function wrapBuffer<T extends WrappedBuffer>(buffer: BufferSource | Uint8Array): T {
|
||||
/**
|
||||
* Buffer라면 wrapBuffer없이 그대로 대입 가능
|
||||
* ArrayBuffer, Uint8Array 등이라면 Buffer.from을 사용 가능
|
||||
* DataView 등인 경우는 ArrayBufferView 활용
|
||||
* 그냥 써도 되지만, 위 방법보다 아무렇게나 쓰기 좋다는 장점은 있음
|
||||
*/
|
||||
if (buffer instanceof Buffer) {
|
||||
if (buffer instanceof Buffer && buffer.buffer instanceof ArrayBuffer) {
|
||||
return buffer as T;
|
||||
}
|
||||
if (buffer instanceof ArrayBuffer) {
|
||||
if (buffer instanceof Uint8Array) {
|
||||
return Buffer.from(buffer) as T;
|
||||
}
|
||||
if (buffer instanceof SharedArrayBuffer) {
|
||||
if (buffer instanceof ArrayBuffer) {
|
||||
return Buffer.from(buffer) as T;
|
||||
}
|
||||
return Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength) as T;
|
||||
}
|
||||
|
||||
/** 호출할 필요 없이 바로 Buffer에 대입해도 되지만, 누군가 찾을 수 있어서. */
|
||||
export function unwrapBuffer<T extends WrappedBuffer>(buffer: T): Buffer {
|
||||
export function unwrapBuffer<T extends WrappedBuffer>(buffer: T): Buffer<ArrayBuffer> {
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@@ -42,7 +40,7 @@ export type Base64String<T extends Buffer> = string & {
|
||||
_b_type?: T;
|
||||
}
|
||||
|
||||
export function base64FromWrappedBuffer<T extends WrappedBuffer>(buffer: T | ArrayBuffer | Uint8Array): Base64String<T> {
|
||||
export function base64FromWrappedBuffer<T extends WrappedBuffer>(buffer: T): Base64String<T> {
|
||||
return Buffer.from(buffer).toString('base64');
|
||||
}
|
||||
|
||||
|
||||
@@ -11,5 +11,4 @@ export type Entries<T> = {
|
||||
}[keyof T][];
|
||||
|
||||
|
||||
export type BufferSource = ArrayBufferView | ArrayBuffer | SharedArrayBuffer;
|
||||
export type BytesLike = BufferSource | string;
|
||||
|
||||
Reference in New Issue
Block a user