@dooboostore/simple-boot-http-server 1.0.29 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -1
- package/dist/cjs/SimpleBootHttpServer.js +9 -4
- package/dist/cjs/SimpleBootHttpServer.js.map +2 -2
- package/dist/cjs/codes/Mimes.js +2 -0
- package/dist/cjs/codes/Mimes.js.map +2 -2
- package/dist/cjs/generators/ContentTypeGenerator.js +320 -0
- package/dist/cjs/generators/ContentTypeGenerator.js.map +7 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/models/RequestResponse.js +3 -2
- package/dist/cjs/models/RequestResponse.js.map +2 -2
- package/dist/esm/SimpleBootHttpServer.js +9 -4
- package/dist/esm/SimpleBootHttpServer.js.map +2 -2
- package/dist/esm/codes/Mimes.js +2 -0
- package/dist/esm/codes/Mimes.js.map +2 -2
- package/dist/esm/generators/ContentTypeGenerator.js +287 -0
- package/dist/esm/generators/ContentTypeGenerator.js.map +7 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/models/RequestResponse.js +3 -2
- package/dist/esm/models/RequestResponse.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +628 -5219
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
- package/dist/types/SimpleBootHttpServer.d.ts.map +1 -1
- package/dist/types/codes/Mimes.d.ts +2 -0
- package/dist/types/codes/Mimes.d.ts.map +1 -1
- package/dist/types/generators/ContentTypeGenerator.d.ts +172 -0
- package/dist/types/generators/ContentTypeGenerator.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/models/RequestResponse.d.ts +4 -1
- package/dist/types/models/RequestResponse.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +628 -5219
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
- package/package.json +4 -4
- package/src/SimpleBootHttpServer.ts +12 -4
- package/src/codes/Mimes.ts +2 -0
- package/src/generators/ContentTypeGenerator.ts +431 -0
- package/src/index.ts +1 -0
- package/src/models/RequestResponse.ts +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleBootHttpServer.d.ts","sourceRoot":"","sources":["../../src/SimpleBootHttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAkB,MAAM,IAAI,UAAU,EAAiB,MAAM,MAAM,CAAA;AAC1E,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SimpleBootHttpServer.d.ts","sourceRoot":"","sources":["../../src/SimpleBootHttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAkB,MAAM,IAAI,UAAU,EAAiB,MAAM,MAAM,CAAA;AAC1E,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,OAAO,CAAC;AA4B5C,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAInD,qBAAa,oBAAqB,SAAQ,iBAAiB;IAKtC,MAAM,EAAE,gBAAgB;IAJpC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAsD;gBAE3D,MAAM,GAAE,gBAAyC;IAM7D,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,CAAC;IAW5F,OAAO,CAAC,WAAW;CAgYpB"}
|
|
@@ -26,6 +26,8 @@ export declare enum Mimes {
|
|
|
26
26
|
MultipartFormData = "multipart/form-data",
|
|
27
27
|
TextEventStream = "text/event-stream",// SSE 실시간 텍스트 스트리밍
|
|
28
28
|
ApplicationXndjson = "application/x-ndjson",
|
|
29
|
+
ApplicationJsonSeq = "application/json-seq",// RFC 7464 JSON Text Sequences
|
|
30
|
+
TextCsv = "text/csv",
|
|
29
31
|
ApplicationJsonPostSimpleBootSsrIntentScheme = "application/json-post+simple-boot-ssr-intent-scheme",
|
|
30
32
|
Intent = "intent"
|
|
31
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mimes.d.ts","sourceRoot":"","sources":["../../../src/codes/Mimes.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,eAAe,qBAAqB;IACpC,sBAAsB,6BAA6B;IACnD,cAAc,oBAAoB;IAClC,oBAAoB,gCAAgC;IACpD,6BAA6B,sCAAsC;IACnE,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,GAAG,QAAQ;IACX,OAAO,aAAa;IACpB,cAAc,oBAAoB;IAClC,OAAO,aAAa;IACpB,QAAQ,cAAc;IACtB,UAAU,iBAAiB;IAC3B,aAAa,8BAA8B;IAC3C,QAAQ,cAAc;IACtB,QAAQ,cAAc;IACtB,SAAS,eAAe;IACxB,QAAQ,kBAAkB;IAC1B,QAAQ,cAAc;IACtB,SAAS,eAAe;IACxB,QAAQ,oBAAoB;IAC5B,SAAS,gBAAgB;IACzB,YAAY,oBAAoB;IAChC,SAAS,gBAAgB;IACzB,iBAAiB,wBAAwB;IACzC,eAAe,sBAAsB,CAAE,mBAAmB;IAC1D,kBAAkB,yBAAyB;IAC3C,4CAA4C,wDAAwD;IACpG,MAAM,WAAW;CAClB"}
|
|
1
|
+
{"version":3,"file":"Mimes.d.ts","sourceRoot":"","sources":["../../../src/codes/Mimes.ts"],"names":[],"mappings":"AAAA,oBAAY,KAAK;IACf,eAAe,qBAAqB;IACpC,sBAAsB,6BAA6B;IACnD,cAAc,oBAAoB;IAClC,oBAAoB,gCAAgC;IACpD,6BAA6B,sCAAsC;IACnE,SAAS,eAAe;IACxB,QAAQ,cAAc;IACtB,GAAG,QAAQ;IACX,OAAO,aAAa;IACpB,cAAc,oBAAoB;IAClC,OAAO,aAAa;IACpB,QAAQ,cAAc;IACtB,UAAU,iBAAiB;IAC3B,aAAa,8BAA8B;IAC3C,QAAQ,cAAc;IACtB,QAAQ,cAAc;IACtB,SAAS,eAAe;IACxB,QAAQ,kBAAkB;IAC1B,QAAQ,cAAc;IACtB,SAAS,eAAe;IACxB,QAAQ,oBAAoB;IAC5B,SAAS,gBAAgB;IACzB,YAAY,oBAAoB;IAChC,SAAS,gBAAgB;IACzB,iBAAiB,wBAAwB;IACzC,eAAe,sBAAsB,CAAE,mBAAmB;IAC1D,kBAAkB,yBAAyB;IAC3C,kBAAkB,yBAAyB,CAAE,+BAA+B;IAC5E,OAAO,aAAa;IACpB,4CAA4C,wDAAwD;IACpG,MAAM,WAAW;CAClB"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content-Type 별 스트리밍 응답 묶음.
|
|
3
|
+
* 핸들러는 내용(payload)만 넘기고, 형식(SSE `data:`·multipart boundary·CRLF·Content-Type·Content-Length·NDJSON 줄바꿈)은 여기서 붙인다.
|
|
4
|
+
*
|
|
5
|
+
* 돌려주는 Stream 은 그대로 async generator 라서 핸들러에서 return 하면 프레임워크가 yield 마다 바로 body 로 쏜다.
|
|
6
|
+
* Stream 이 contentType(boundary 포함)·compress 를 들고 있어 데코레이터에 contentType 을 따로 적지 않아도 된다.
|
|
7
|
+
*
|
|
8
|
+
* pull — 내 반복문이 만들어 yield 할 때:
|
|
9
|
+
* return ContentTypeGenerator.multipartReplace(this.frames(file, signal));
|
|
10
|
+
* push — 콜백·이벤트로 올 때마다 넣을 때:
|
|
11
|
+
* const out = ContentTypeGenerator.multipartReplace.channel({ signal, keep: 'latest' });
|
|
12
|
+
* watcher.on('change', buf => out.push(buf));
|
|
13
|
+
* out.onClose(() => watcher.close());
|
|
14
|
+
* return out;
|
|
15
|
+
*/
|
|
16
|
+
export declare namespace ContentTypeGenerator {
|
|
17
|
+
type Source<T> = Iterable<T> | AsyncIterable<T>;
|
|
18
|
+
/** 프레임워크가 받는 스트림: async generator + 응답 헤더 정보 */
|
|
19
|
+
type Stream<T = string | Buffer> = AsyncGenerator<T, void, undefined> & {
|
|
20
|
+
readonly contentType: string;
|
|
21
|
+
/** false 면 Accept-Encoding: gzip 이어도 압축 안 함 (JPEG 처럼 이미 압축된 내용) */
|
|
22
|
+
readonly compress: boolean;
|
|
23
|
+
};
|
|
24
|
+
/** push 용: Stream + 넣기·닫기 */
|
|
25
|
+
type Channel<In, Out = string | Buffer> = Stream<Out> & {
|
|
26
|
+
/** 넣기. 닫혔으면 false */
|
|
27
|
+
push(value: In): boolean;
|
|
28
|
+
/** 더 넣을 게 없음 — 쌓인 건 마저 보내고 끝냄 */
|
|
29
|
+
close(): void;
|
|
30
|
+
readonly closed: boolean;
|
|
31
|
+
/** 끝날 때(클라이언트 끊김·close·signal abort) 한 번 — 감시자·리스너 정리용 */
|
|
32
|
+
onClose(fn: () => void): void;
|
|
33
|
+
};
|
|
34
|
+
type ChannelOption = {
|
|
35
|
+
/** abort 되면 채널을 닫음 */
|
|
36
|
+
signal?: AbortSignal;
|
|
37
|
+
/** 'queue': 하나도 안 버리고 순서대로 (이벤트) · 'latest': 밀리면 최신 하나만 (영상 프레임) */
|
|
38
|
+
keep?: 'queue' | 'latest';
|
|
39
|
+
/** 'queue' 최대 개수 — 넘치면 가장 오래된 것부터 버림 (기본 1000) */
|
|
40
|
+
max?: number;
|
|
41
|
+
};
|
|
42
|
+
const isStream: (value: any) => value is Stream;
|
|
43
|
+
type SseEvent = string | {
|
|
44
|
+
data?: unknown;
|
|
45
|
+
event?: string;
|
|
46
|
+
id?: string;
|
|
47
|
+
retry?: number;
|
|
48
|
+
comment?: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* SSE 이벤트 하나 → `field: value\n` 줄들 + 빈 줄(\n).
|
|
52
|
+
* data 가 여러 줄이면 줄마다 `data: ` (그냥 넣으면 줄바꿈에서 이벤트가 끊김). 문자열이 아니면 JSON.
|
|
53
|
+
*/
|
|
54
|
+
const sseChunk: (e: SseEvent) => string;
|
|
55
|
+
/** 연결 유지용 SSE 주석 (브라우저 EventSource 는 무시) */
|
|
56
|
+
const ssePing: () => string;
|
|
57
|
+
type Part = Buffer | Uint8Array | string | {
|
|
58
|
+
body: Buffer | Uint8Array | string;
|
|
59
|
+
type?: string;
|
|
60
|
+
name?: string;
|
|
61
|
+
headers?: Record<string, string>;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* 파트 MIME: type > mime-types(name) > 바이트 판별 > 문자열이면 text/plain;utf-8 > octet-stream
|
|
65
|
+
*/
|
|
66
|
+
const partType: (part: Part, fallback?: string) => string;
|
|
67
|
+
/**
|
|
68
|
+
* multipart 파트 하나: `--boundary\r\nContent-Type: …\r\nContent-Length: <바이트 수>\r\n[헤더…]\r\n\r\n<body>\r\n`
|
|
69
|
+
* Content-Length 는 문자열도 글자 수가 아니라 UTF-8 바이트 수.
|
|
70
|
+
*/
|
|
71
|
+
const multipartPart: (part: Part, boundary: string, fallbackType?: string) => Buffer;
|
|
72
|
+
/** multipart 끝 표시 (multipart/mixed 처럼 끝이 있는 경우) */
|
|
73
|
+
const multipartEnd: (boundary: string) => Buffer;
|
|
74
|
+
/** NDJSON 한 줄: JSON + \n (그냥 객체를 yield 하면 줄바꿈 없이 붙어서 받는 쪽이 못 나눔) */
|
|
75
|
+
const ndjsonLine: (value: unknown) => string;
|
|
76
|
+
/** RFC 7464 application/json-seq 레코드: RS(0x1E) + JSON + \n */
|
|
77
|
+
const jsonSeqRecord: (value: unknown) => string;
|
|
78
|
+
/** CSV 칸 하나 (RFC 4180): 쉼표·따옴표·줄바꿈·앞뒤 공백이 있으면 "…" 로 감싸고 " 는 "" */
|
|
79
|
+
const csvCell: (value: unknown) => string;
|
|
80
|
+
/** CSV 한 줄: 칸들 + CRLF */
|
|
81
|
+
const csvRow: (cells: readonly unknown[]) => string;
|
|
82
|
+
/** text/plain 한 줄: 문자열은 그대로, 나머지는 JSON + \n */
|
|
83
|
+
const textLine: (value: unknown) => string;
|
|
84
|
+
/** RFC 2046: 1~70자, 허용 문자만, 공백으로 끝나지 않게 */
|
|
85
|
+
const boundary: (value?: string) => string;
|
|
86
|
+
type CsvRow = readonly unknown[] | Record<string, unknown>;
|
|
87
|
+
type CsvOption = {
|
|
88
|
+
/** 헤더 줄 + 객체 행을 이 순서로 칸에 맞춤 (없으면 객체는 Object.values 순서, 헤더 없음) */
|
|
89
|
+
columns?: string[];
|
|
90
|
+
/** UTF-8 BOM — Excel 이 한글 CSV 를 깨지지 않게 열려면 필요 */
|
|
91
|
+
bom?: boolean;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* text/event-stream. heartbeatMs 를 주면 그동안 이벤트가 없을 때 `: ping` 을 끼워 연결 유지
|
|
95
|
+
* (프록시·브라우저는 오래 조용한 연결을 끊는다).
|
|
96
|
+
*/
|
|
97
|
+
function sse(src: Source<SseEvent>, opt?: {
|
|
98
|
+
heartbeatMs?: number;
|
|
99
|
+
}): Stream<string>;
|
|
100
|
+
/** multipart/x-mixed-replace (MJPEG 등 — 파트가 올 때마다 앞 것을 갈아끼움). 이미 압축된 내용이라 gzip 안 함 */
|
|
101
|
+
function multipartReplace(src: Source<Part>, opt?: {
|
|
102
|
+
boundary?: string;
|
|
103
|
+
type?: string;
|
|
104
|
+
}): Stream<Buffer>;
|
|
105
|
+
/** multipart/mixed (끝이 있는 여러 파트). 원본이 끝나면 `--boundary--` */
|
|
106
|
+
function multipartMixed(src: Source<Part>, opt?: {
|
|
107
|
+
boundary?: string;
|
|
108
|
+
type?: string;
|
|
109
|
+
}): Stream<Buffer>;
|
|
110
|
+
/** application/x-ndjson (한 줄에 JSON 하나) */
|
|
111
|
+
function ndjson(src: Source<unknown>): Stream<string>;
|
|
112
|
+
/** application/json-seq (RFC 7464, 레코드마다 RS 로 시작) */
|
|
113
|
+
function jsonSeq(src: Source<unknown>): Stream<string>;
|
|
114
|
+
/**
|
|
115
|
+
* application/json 배열을 항목마다 흘려보냄: `[` 항목 `,` 항목 … `]`.
|
|
116
|
+
* 받는 쪽은 다 받은 뒤 평범한 JSON 으로 파싱 (끝까지 받아야 유효한 JSON — 중간에 끊기면 깨진 JSON)
|
|
117
|
+
*/
|
|
118
|
+
function jsonArray(src: Source<unknown>): Stream<string>;
|
|
119
|
+
/** text/csv; charset=utf-8 — 행은 배열 또는 객체(columns 순서). 줄바꿈 CRLF */
|
|
120
|
+
function csv(src: Source<CsvRow>, opt?: CsvOption): Stream<string>;
|
|
121
|
+
/** text/plain; charset=utf-8 — 한 줄에 하나 (로그 tail 등) */
|
|
122
|
+
function text(src: Source<unknown>): Stream<string>;
|
|
123
|
+
/**
|
|
124
|
+
* push 한 값을 큐에 담았다가 yield 하는 스트림.
|
|
125
|
+
* 직접 iterator 를 만드는 이유: 기다리는 중(await)에 클라이언트가 끊겨도 return() 이 바로 끝내고 onClose 를 부르게
|
|
126
|
+
* (async generator 는 await 중의 return 을 다음 yield 까지 미뤄서, 조용한 채널이면 정리가 안 됨).
|
|
127
|
+
*/
|
|
128
|
+
function channel<In, Out>(encodeFn: (v: In) => Out, contentType: string, compress: boolean, opt?: ChannelOption & {
|
|
129
|
+
start?: () => Out;
|
|
130
|
+
end?: () => Out;
|
|
131
|
+
heartbeat?: {
|
|
132
|
+
ms: number;
|
|
133
|
+
chunk: () => Out;
|
|
134
|
+
};
|
|
135
|
+
}): Channel<In, Out>;
|
|
136
|
+
namespace sse {
|
|
137
|
+
/** push 로 SSE: out.push('hello') · out.push({ event: 'tick', data: { n: 1 } }) */
|
|
138
|
+
const channel: (opt?: ChannelOption & {
|
|
139
|
+
heartbeatMs?: number;
|
|
140
|
+
}) => Channel<SseEvent, string>;
|
|
141
|
+
}
|
|
142
|
+
namespace multipartReplace {
|
|
143
|
+
/** push 로 MJPEG 등: out.push(jpegBuffer) — 프레임은 보통 keep: 'latest' */
|
|
144
|
+
const channel: (opt?: ChannelOption & {
|
|
145
|
+
boundary?: string;
|
|
146
|
+
type?: string;
|
|
147
|
+
}) => Channel<Part, Buffer>;
|
|
148
|
+
}
|
|
149
|
+
namespace multipartMixed {
|
|
150
|
+
const channel: (opt?: ChannelOption & {
|
|
151
|
+
boundary?: string;
|
|
152
|
+
type?: string;
|
|
153
|
+
}) => Channel<Part, Buffer>;
|
|
154
|
+
}
|
|
155
|
+
namespace ndjson {
|
|
156
|
+
const channel: (opt?: ChannelOption) => Channel<unknown, string>;
|
|
157
|
+
}
|
|
158
|
+
namespace jsonSeq {
|
|
159
|
+
const channel: (opt?: ChannelOption) => Channel<unknown, string>;
|
|
160
|
+
}
|
|
161
|
+
namespace jsonArray {
|
|
162
|
+
/** close 해야 `]` 가 나가서 유효한 JSON 이 됨 */
|
|
163
|
+
const channel: (opt?: ChannelOption) => Channel<unknown, string>;
|
|
164
|
+
}
|
|
165
|
+
namespace csv {
|
|
166
|
+
const channel: (opt?: ChannelOption & CsvOption) => Channel<CsvRow, string>;
|
|
167
|
+
}
|
|
168
|
+
namespace text {
|
|
169
|
+
const channel: (opt?: ChannelOption) => Channel<unknown, string>;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=ContentTypeGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContentTypeGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/ContentTypeGenerator.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;;AACvC,wBAAiB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC;AAClD,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;;AACvC,wBAAiB"}
|
|
@@ -102,9 +102,12 @@ export declare class RequestResponse {
|
|
|
102
102
|
* - 문자열/Buffer 는 그대로, 그 외는 JSON.stringify
|
|
103
103
|
* - Accept-Encoding 에 gzip 이 있으면 gzip 스트림으로 압축하고, 청크마다 Z_SYNC_FLUSH 로 바로 내보낸다
|
|
104
104
|
* (flush 없이 쓰면 zlib 내부 버퍼에 모였다가 늦게 나가서 SSE 실시간성이 깨짐)
|
|
105
|
+
* option.compress === false 면 압축 안 함 (MJPEG 처럼 이미 압축된 내용 — CPU만 쓰고, gzip 못 푸는 클라이언트도 있음)
|
|
105
106
|
* - 클라이언트가 끊으면 source.return() 으로 제너레이터를 종료시켜 finally 가 돌게 한다
|
|
106
107
|
*/
|
|
107
|
-
resStream(source: Iterable<any> | AsyncIterable<any
|
|
108
|
+
resStream(source: Iterable<any> | AsyncIterable<any>, option?: {
|
|
109
|
+
compress?: boolean;
|
|
110
|
+
}): Promise<void>;
|
|
108
111
|
resIsDone(): boolean;
|
|
109
112
|
createRequestResponseChain<T = any>(data?: T): RequestResponseChain<T>;
|
|
110
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestResponse.d.ts","sourceRoot":"","sources":["../../../src/models/RequestResponse.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RequestResponse.d.ts","sourceRoot":"","sources":["../../../src/models/RequestResponse.ts"],"names":[],"mappings":"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"}
|