@adviser/cement 0.4.49 → 0.4.51

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.
@@ -71,43 +71,54 @@ class HeadersImpl {
71
71
  }
72
72
  }
73
73
  exports.HeadersImpl = HeadersImpl;
74
+ function hasForEach(unk) {
75
+ return typeof unk.forEach == "function";
76
+ }
74
77
  class HttpHeader {
75
78
  _headers = new Map();
76
- static from(headers) {
79
+ static coerce(headers) {
77
80
  if (headers instanceof HttpHeader) {
78
- return headers.Clone();
81
+ return headers;
79
82
  }
80
83
  const h = new HttpHeader();
81
84
  if (headers) {
82
- if (Array.isArray(headers)) {
83
- for (const [k, v] of headers) {
84
- if (v) {
85
- h.Add(k, v);
86
- }
87
- }
88
- }
89
- else if (headers instanceof Headers) {
90
- headers.forEach((v, k) => {
91
- if (v) {
92
- h.Add(k, v.split(",").map((v) => v.trim()));
85
+ switch (true) {
86
+ case Array.isArray(headers):
87
+ for (const [k, v] of headers) {
88
+ if (v) {
89
+ h.Add(k, v);
90
+ }
93
91
  }
94
- });
95
- }
96
- else {
97
- for (const k in headers) {
98
- const v = headers[k];
99
- (Array.isArray(v) ? v : [v]).forEach((v) => {
100
- h.Add(k, v);
92
+ break;
93
+ case hasForEach(headers):
94
+ headers.forEach((v, k) => {
95
+ if (v) {
96
+ const arrayV = (typeof v === "string" ? [v] : v)
97
+ .map((vv) => vv.split(",").map((v) => v.trim()))
98
+ .flat()
99
+ .filter((v) => !!v);
100
+ h.Add(k, arrayV);
101
+ }
101
102
  });
102
- }
103
+ break;
104
+ default:
105
+ for (const k in headers) {
106
+ const v = headers[k];
107
+ (Array.isArray(v) ? v : [v]).forEach((v) => {
108
+ h.Add(k, v);
109
+ });
110
+ }
103
111
  }
104
112
  }
105
113
  return h;
106
114
  }
115
+ static from(...headersArgs) {
116
+ return headersArgs.map((headers) => HttpHeader.coerce(headers)).reduce((acc, cur) => acc.MergeInplace(cur), new HttpHeader());
117
+ }
107
118
  _asStringString() {
108
119
  const ret = new Map();
109
120
  for (const [key, values] of this._headers) {
110
- ret.set(key, values.join(", "));
121
+ ret.set(key, Array.from(values).join(", "));
111
122
  }
112
123
  return ret;
113
124
  }
@@ -116,32 +127,41 @@ class HttpHeader {
116
127
  }
117
128
  Values(key) {
118
129
  const values = this._headers.get(this._key(key));
119
- return values || [];
130
+ return values ? Array.from(values) : [];
120
131
  }
121
132
  Get(key) {
122
133
  const values = this._headers.get(this._key(key));
123
- if (values === undefined || values.length === 0) {
134
+ if (values === undefined || values.size === 0) {
124
135
  return undefined;
125
136
  }
126
- return values[0];
137
+ return values.values().next().value;
127
138
  }
128
139
  Set(key, valueOr) {
129
- const value = Array.isArray(valueOr) ? valueOr : [valueOr];
130
- this._headers.set(this._key(key), value);
140
+ const value = new Set((Array.isArray(valueOr) ? valueOr : [valueOr]).map((v) => v.trim()).filter((v) => v !== ""));
141
+ if (value.size > 0) {
142
+ this._headers.set(this._key(key), value);
143
+ }
144
+ else {
145
+ this._headers.delete(this._key(key));
146
+ }
131
147
  return this;
132
148
  }
133
149
  Add(key, value) {
134
150
  if (typeof value === "undefined") {
135
151
  return this;
136
152
  }
137
- const vs = Array.isArray(value) ? value : [value];
138
- const values = this._headers.get(this._key(key));
139
- if (values === undefined) {
140
- this._headers.set(this._key(key), vs);
141
- }
142
- else {
143
- values.push(...vs);
144
- }
153
+ let values = this._headers.get(this._key(key));
154
+ if (!values) {
155
+ values = new Set();
156
+ this._headers.set(this._key(key), values);
157
+ }
158
+ (Array.isArray(value) ? value : [value])
159
+ .map((v) => v.trim())
160
+ .filter((v) => v !== "")
161
+ .reduce((acc, v) => {
162
+ acc.add(v);
163
+ return acc;
164
+ }, values);
145
165
  return this;
146
166
  }
147
167
  Del(ey) {
@@ -149,7 +169,9 @@ class HttpHeader {
149
169
  return this;
150
170
  }
151
171
  Items() {
152
- return Array.from(this._headers).filter(([_, vs]) => vs.length > 0);
172
+ return Array.from(this._headers)
173
+ .filter(([_, vs]) => vs.size > 0)
174
+ .map(([k, vs]) => [k, Array.from(vs)]);
153
175
  }
154
176
  SortItems() {
155
177
  return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));
@@ -157,7 +179,7 @@ class HttpHeader {
157
179
  Clone() {
158
180
  const clone = new HttpHeader();
159
181
  for (const [key, values] of this._headers.entries()) {
160
- clone._headers.set(key, values.slice());
182
+ clone._headers.set(key, new Set(values));
161
183
  }
162
184
  return clone;
163
185
  }
@@ -171,28 +193,33 @@ class HttpHeader {
171
193
  AsRecordStringString() {
172
194
  const obj = {};
173
195
  for (const [key, values] of this._headers.entries()) {
174
- obj[key] = values.join(", ");
196
+ obj[key] = Array.from(values).join(", ");
175
197
  }
176
198
  return obj;
177
199
  }
178
200
  AsHeaderInit() {
179
201
  const obj = {};
180
202
  for (const [key, values] of this._headers.entries()) {
181
- obj[key] = values[0];
203
+ const vs = values.values().next();
204
+ if (vs.value) {
205
+ obj[key] = vs.value;
206
+ }
182
207
  }
183
208
  return obj;
184
209
  }
185
210
  AsHeaders() {
186
211
  return new HeadersImpl(this._asStringString());
187
212
  }
188
- Merge(other) {
189
- const ret = this.Clone();
190
- if (other) {
191
- for (const [key, values] of other.Items()) {
192
- ret.Add(key, values);
213
+ MergeInplace(...other) {
214
+ for (const h of other.map((h) => HttpHeader.coerce(h))) {
215
+ for (const [key, values] of h.Items()) {
216
+ this.Add(key, values);
193
217
  }
194
218
  }
195
- return ret;
219
+ return this;
220
+ }
221
+ Merge(...other) {
222
+ return this.Clone().MergeInplace(...other);
196
223
  }
197
224
  }
198
225
  exports.HttpHeader = HttpHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"http_header.js","sourceRoot":"","sources":["../../../src/http_header.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http_header.js","sourceRoot":"","sources":["../../../src/http_header.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,14 @@ export declare class HeadersImpl implements Headers {
13
13
  values(): IterableIterator<string>;
14
14
  append(key: string, value?: string | string[]): HeadersImpl;
15
15
  }
16
+ export interface HeaderForeach {
17
+ forEach(callbackfn: (value: string | string[], key: string, parent: this) => void): void;
18
+ }
19
+ export type CoercedHeadersInit = HeadersInit | HeaderForeach | HttpHeader;
16
20
  export declare class HttpHeader {
17
- readonly _headers: Map<string, string[]>;
18
- static from(headers?: HeadersInit | Headers | HttpHeader): HttpHeader;
21
+ readonly _headers: Map<string, Set<string>>;
22
+ static coerce(headers: CoercedHeadersInit): HttpHeader;
23
+ static from(...headersArgs: CoercedHeadersInit[]): HttpHeader;
19
24
  _asStringString(): Map<string, string>;
20
25
  _key(key: string): string;
21
26
  Values(key: string): string[];
@@ -28,8 +33,9 @@ export declare class HttpHeader {
28
33
  Clone(): HttpHeader;
29
34
  AsRecordStringStringArray(): Record<string, string[]>;
30
35
  AsRecordStringString(): Record<string, string>;
31
- AsHeaderInit(): HeadersInit;
36
+ AsHeaderInit<H extends HeadersInit>(): H;
32
37
  AsHeaders(): HeadersImpl;
33
- Merge(other?: HttpHeader): HttpHeader;
38
+ MergeInplace(...other: CoercedHeadersInit[]): HttpHeader;
39
+ Merge(...other: CoercedHeadersInit[]): HttpHeader;
34
40
  }
35
41
  //# sourceMappingURL=http_header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http_header.d.ts","sourceRoot":"","sources":["../../../src/http_header.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,YAAW,OAAO;IAEzC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAiB;IAEvC,YAAY,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAK/C;IAKD,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAI5E;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzB;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/B;IACD,YAAY,IAAI,MAAM,EAAE,CAEvB;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErC;IAEA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQvD;IAED,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE5C;IACA,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAQhC;IACA,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAQlC;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,WAAW,CAW1D;CACF;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAA+B;IAEvE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CA+BpE;IAED,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrC;IAED,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExB;IACD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5B;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnC;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,CAIvD;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU,CAYjE;IACD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAG1B;IACD,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAE5B;IACD,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAEhC;IACD,KAAK,IAAI,UAAU,CAMlB;IACD,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAMpD;IACD,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7C;IACD,YAAY,IAAI,WAAW,CAM1B;IACD,SAAS,IAAI,WAAW,CAEvB;IACD,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,CAQpC;CACF"}
1
+ {"version":3,"file":"http_header.d.ts","sourceRoot":"","sources":["../../../src/http_header.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const http_header_js_1 = require("./http_header.cjs");
4
4
  const vitest_1 = require("vitest");
5
+ class OnlyForEach {
6
+ _my;
7
+ constructor(init = {}) {
8
+ this._my = { ...init };
9
+ }
10
+ forEach(callback, thisArg) {
11
+ for (const [k, v] of Object.entries(this._my)) {
12
+ if (Array.isArray(v)) {
13
+ for (const vv of v) {
14
+ callback.call(thisArg, vv, k, this);
15
+ }
16
+ }
17
+ else {
18
+ callback.call(thisArg, v, k, this);
19
+ }
20
+ }
21
+ }
22
+ }
5
23
  (0, vitest_1.describe)("HttpHeader", () => {
6
24
  (0, vitest_1.it)("Add should join different case headings to case insensitive ", () => {
7
25
  const h = http_header_js_1.HttpHeader.from({
@@ -95,5 +113,31 @@ const vitest_1 = require("vitest");
95
113
  (0, vitest_1.expect)(h).not.toBe(sh);
96
114
  (0, vitest_1.expect)(h.Items()).toEqual([["content-type", ["application/json"]]]);
97
115
  });
116
+ (0, vitest_1.it)("Merge two HttpHeaders", () => {
117
+ const CORS = {
118
+ "Access-Control-Allow-Origin": "*",
119
+ "Access-Control-Allow-Methods": "GET,POST,OPTIONS,PUT,DELETE",
120
+ "Access-Control-Allow-Headers": "Origin, Content-Type, Accept",
121
+ "Access-Control-Max-Age": "86400",
122
+ };
123
+ const headers = http_header_js_1.HttpHeader.from(Object.fromEntries(Object.entries({
124
+ ...CORS,
125
+ }).map(([k, v]) => [k.toUpperCase(), v])), CORS).AsRecordStringString();
126
+ (0, vitest_1.expect)(headers).toEqual(Object.fromEntries(Object.entries(CORS).map(([k, v]) => [k.toLowerCase(), v])));
127
+ });
128
+ (0, vitest_1.it)("OnlyForEach Headers", () => {
129
+ const h = http_header_js_1.HttpHeader.from(new OnlyForEach({
130
+ "Content-Type": "application/json",
131
+ Array: ["a", "b"],
132
+ String: "string,with,commas",
133
+ ArrayWithCommas: ["string,with,commas", "and,more,,commas", ""],
134
+ }));
135
+ (0, vitest_1.expect)(h.Items()).toEqual([
136
+ ["content-type", ["application/json"]],
137
+ ["array", ["a", "b"]],
138
+ ["string", ["string", "with", "commas"]],
139
+ ["arraywithcommas", ["string", "with", "commas", "and", "more"]],
140
+ ]);
141
+ });
98
142
  });
99
143
  //# sourceMappingURL=http_header.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http_header.test.js","sourceRoot":"","sources":["../../../src/http_header.test.ts"],"names":[],"mappings":";;AAAA,qDAA8C;AAC9C,mCAA8C;AAE9C,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE,CAAC;IAC3B,IAAA,WAAE,EAAC,8DAA8D,EAAE,GAAG,EAAE,CAAC;QACvE,MAAM,CAAC,GAAG,2BAAU,CAAC,IAAI,CAAC;YACxB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC1D,IAAA,eAAM,EAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAAA,CACnF,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,2BAAU,EAAE,CAAC;QAC3B,IAAA,eAAM,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjB,IAAA,eAAM,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtB,IAAA,eAAM,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CACjD,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,2BAAU,CAAC,IAAI,CAAC;YACxB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC9D,IAAA,eAAM,EAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAAA,CAC/D,CAAC,CAAC;IACH,IAAA,WAAE,EAAC,+DAA+D,EAAE,GAAG,EAAE,CAAC;QACxE,MAAM,CAAC,GAAG,IAAI,2BAAU,EAAE,CAAC;QAC3B,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEjB,IAAA,eAAM,EAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAA,eAAM,EAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEpC,IAAA,eAAM,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAAA,CAC/B,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,YAAY,EAAE,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,2BAAU,CAAC,IAAI,CAAC;YACxB,CAAC,cAAc,EAAE,kBAAkB,CAAC;YACpC,CAAC,cAAc,EAAE,iBAAiB,CAAC;YACnC,CAAC,KAAK,EAAE,iBAAiB,CAAC;YAC1B,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SACX,CAAC,CAAC;QAClB,IAAA,eAAM,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;YAC5B,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC5B,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzB,CAAC,cAAc,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;SAC1D,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,aAAa,EAAE,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,2BAAU,CAAC,IAAI,CAAC;YACxB,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,iBAAiB;YACjC,GAAG,EAAE,iBAAiB;YACtB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAsB;SAC3C,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;YAC5B,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC5B,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzB,CAAC,cAAc,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;SAC1D,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,cAAc,EAAE,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,2BAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAA,eAAM,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC;YACxB,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,CAAC;YAC5B,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACzB,CAAC,cAAc,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;SAC1D,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,2BAAU,EAAE,CAAC,SAAS,EAAE,CAAC;QACxC,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1D,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvB,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;IAAA,CAC9D,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,2BAAU,CAAC,IAAI,CAAC,2BAAU,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,GAAG,2BAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,IAAA,eAAM,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CACrE,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"http_header.test.js","sourceRoot":"","sources":["../../../src/http_header.test.ts"],"names":[],"mappings":"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"}
package/cjs/version.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "0.4.49";
4
+ exports.VERSION = "0.4.51";
5
5
  //# sourceMappingURL=version.js.map
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.4.49",
3
+ "version": "0.4.51",
4
4
  "license": "AFL-2.0",
5
5
  "exports": {
6
6
  ".": "./src/index.ts",
@@ -13,9 +13,14 @@ export declare class HeadersImpl implements Headers {
13
13
  values(): IterableIterator<string>;
14
14
  append(key: string, value?: string | string[]): HeadersImpl;
15
15
  }
16
+ export interface HeaderForeach {
17
+ forEach(callbackfn: (value: string | string[], key: string, parent: this) => void): void;
18
+ }
19
+ export type CoercedHeadersInit = HeadersInit | HeaderForeach | HttpHeader;
16
20
  export declare class HttpHeader {
17
- readonly _headers: Map<string, string[]>;
18
- static from(headers?: HeadersInit | Headers | HttpHeader): HttpHeader;
21
+ readonly _headers: Map<string, Set<string>>;
22
+ static coerce(headers: CoercedHeadersInit): HttpHeader;
23
+ static from(...headersArgs: CoercedHeadersInit[]): HttpHeader;
19
24
  _asStringString(): Map<string, string>;
20
25
  _key(key: string): string;
21
26
  Values(key: string): string[];
@@ -28,8 +33,9 @@ export declare class HttpHeader {
28
33
  Clone(): HttpHeader;
29
34
  AsRecordStringStringArray(): Record<string, string[]>;
30
35
  AsRecordStringString(): Record<string, string>;
31
- AsHeaderInit(): HeadersInit;
36
+ AsHeaderInit<H extends HeadersInit>(): H;
32
37
  AsHeaders(): HeadersImpl;
33
- Merge(other?: HttpHeader): HttpHeader;
38
+ MergeInplace(...other: CoercedHeadersInit[]): HttpHeader;
39
+ Merge(...other: CoercedHeadersInit[]): HttpHeader;
34
40
  }
35
41
  //# sourceMappingURL=http_header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http_header.d.ts","sourceRoot":"","sources":["../../../src/http_header.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,YAAW,OAAO;IAEzC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAiB;IAEvC,YAAY,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAK/C;IAKD,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,CAI5E;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzB;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/B;IACD,YAAY,IAAI,MAAM,EAAE,CAEvB;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IACD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAErC;IAEA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQvD;IAED,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE5C;IACA,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAQhC;IACA,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAQlC;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,WAAW,CAW1D;CACF;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAA+B;IAEvE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CA+BpE;IAED,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrC;IAED,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExB;IACD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5B;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnC;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,CAIvD;IACD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU,CAYjE;IACD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAG1B;IACD,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAE5B;IACD,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAEhC;IACD,KAAK,IAAI,UAAU,CAMlB;IACD,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAMpD;IACD,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7C;IACD,YAAY,IAAI,WAAW,CAM1B;IACD,SAAS,IAAI,WAAW,CAEvB;IACD,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,CAQpC;CACF"}
1
+ {"version":3,"file":"http_header.d.ts","sourceRoot":"","sources":["../../../src/http_header.ts"],"names":[],"mappings":"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"}
@@ -67,43 +67,54 @@ export class HeadersImpl {
67
67
  return this;
68
68
  }
69
69
  }
70
+ function hasForEach(unk) {
71
+ return typeof unk.forEach == "function";
72
+ }
70
73
  export class HttpHeader {
71
74
  _headers = new Map();
72
- static from(headers) {
75
+ static coerce(headers) {
73
76
  if (headers instanceof HttpHeader) {
74
- return headers.Clone();
77
+ return headers;
75
78
  }
76
79
  const h = new HttpHeader();
77
80
  if (headers) {
78
- if (Array.isArray(headers)) {
79
- for (const [k, v] of headers) {
80
- if (v) {
81
- h.Add(k, v);
82
- }
83
- }
84
- }
85
- else if (headers instanceof Headers) {
86
- headers.forEach((v, k) => {
87
- if (v) {
88
- h.Add(k, v.split(",").map((v) => v.trim()));
81
+ switch (true) {
82
+ case Array.isArray(headers):
83
+ for (const [k, v] of headers) {
84
+ if (v) {
85
+ h.Add(k, v);
86
+ }
89
87
  }
90
- });
91
- }
92
- else {
93
- for (const k in headers) {
94
- const v = headers[k];
95
- (Array.isArray(v) ? v : [v]).forEach((v) => {
96
- h.Add(k, v);
88
+ break;
89
+ case hasForEach(headers):
90
+ headers.forEach((v, k) => {
91
+ if (v) {
92
+ const arrayV = (typeof v === "string" ? [v] : v)
93
+ .map((vv) => vv.split(",").map((v) => v.trim()))
94
+ .flat()
95
+ .filter((v) => !!v);
96
+ h.Add(k, arrayV);
97
+ }
97
98
  });
98
- }
99
+ break;
100
+ default:
101
+ for (const k in headers) {
102
+ const v = headers[k];
103
+ (Array.isArray(v) ? v : [v]).forEach((v) => {
104
+ h.Add(k, v);
105
+ });
106
+ }
99
107
  }
100
108
  }
101
109
  return h;
102
110
  }
111
+ static from(...headersArgs) {
112
+ return headersArgs.map((headers) => HttpHeader.coerce(headers)).reduce((acc, cur) => acc.MergeInplace(cur), new HttpHeader());
113
+ }
103
114
  _asStringString() {
104
115
  const ret = new Map();
105
116
  for (const [key, values] of this._headers) {
106
- ret.set(key, values.join(", "));
117
+ ret.set(key, Array.from(values).join(", "));
107
118
  }
108
119
  return ret;
109
120
  }
@@ -112,32 +123,41 @@ export class HttpHeader {
112
123
  }
113
124
  Values(key) {
114
125
  const values = this._headers.get(this._key(key));
115
- return values || [];
126
+ return values ? Array.from(values) : [];
116
127
  }
117
128
  Get(key) {
118
129
  const values = this._headers.get(this._key(key));
119
- if (values === undefined || values.length === 0) {
130
+ if (values === undefined || values.size === 0) {
120
131
  return undefined;
121
132
  }
122
- return values[0];
133
+ return values.values().next().value;
123
134
  }
124
135
  Set(key, valueOr) {
125
- const value = Array.isArray(valueOr) ? valueOr : [valueOr];
126
- this._headers.set(this._key(key), value);
136
+ const value = new Set((Array.isArray(valueOr) ? valueOr : [valueOr]).map((v) => v.trim()).filter((v) => v !== ""));
137
+ if (value.size > 0) {
138
+ this._headers.set(this._key(key), value);
139
+ }
140
+ else {
141
+ this._headers.delete(this._key(key));
142
+ }
127
143
  return this;
128
144
  }
129
145
  Add(key, value) {
130
146
  if (typeof value === "undefined") {
131
147
  return this;
132
148
  }
133
- const vs = Array.isArray(value) ? value : [value];
134
- const values = this._headers.get(this._key(key));
135
- if (values === undefined) {
136
- this._headers.set(this._key(key), vs);
137
- }
138
- else {
139
- values.push(...vs);
140
- }
149
+ let values = this._headers.get(this._key(key));
150
+ if (!values) {
151
+ values = new Set();
152
+ this._headers.set(this._key(key), values);
153
+ }
154
+ (Array.isArray(value) ? value : [value])
155
+ .map((v) => v.trim())
156
+ .filter((v) => v !== "")
157
+ .reduce((acc, v) => {
158
+ acc.add(v);
159
+ return acc;
160
+ }, values);
141
161
  return this;
142
162
  }
143
163
  Del(ey) {
@@ -145,7 +165,9 @@ export class HttpHeader {
145
165
  return this;
146
166
  }
147
167
  Items() {
148
- return Array.from(this._headers).filter(([_, vs]) => vs.length > 0);
168
+ return Array.from(this._headers)
169
+ .filter(([_, vs]) => vs.size > 0)
170
+ .map(([k, vs]) => [k, Array.from(vs)]);
149
171
  }
150
172
  SortItems() {
151
173
  return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));
@@ -153,7 +175,7 @@ export class HttpHeader {
153
175
  Clone() {
154
176
  const clone = new HttpHeader();
155
177
  for (const [key, values] of this._headers.entries()) {
156
- clone._headers.set(key, values.slice());
178
+ clone._headers.set(key, new Set(values));
157
179
  }
158
180
  return clone;
159
181
  }
@@ -167,28 +189,33 @@ export class HttpHeader {
167
189
  AsRecordStringString() {
168
190
  const obj = {};
169
191
  for (const [key, values] of this._headers.entries()) {
170
- obj[key] = values.join(", ");
192
+ obj[key] = Array.from(values).join(", ");
171
193
  }
172
194
  return obj;
173
195
  }
174
196
  AsHeaderInit() {
175
197
  const obj = {};
176
198
  for (const [key, values] of this._headers.entries()) {
177
- obj[key] = values[0];
199
+ const vs = values.values().next();
200
+ if (vs.value) {
201
+ obj[key] = vs.value;
202
+ }
178
203
  }
179
204
  return obj;
180
205
  }
181
206
  AsHeaders() {
182
207
  return new HeadersImpl(this._asStringString());
183
208
  }
184
- Merge(other) {
185
- const ret = this.Clone();
186
- if (other) {
187
- for (const [key, values] of other.Items()) {
188
- ret.Add(key, values);
209
+ MergeInplace(...other) {
210
+ for (const h of other.map((h) => HttpHeader.coerce(h))) {
211
+ for (const [key, values] of h.Items()) {
212
+ this.Add(key, values);
189
213
  }
190
214
  }
191
- return ret;
215
+ return this;
216
+ }
217
+ Merge(...other) {
218
+ return this.Clone().MergeInplace(...other);
192
219
  }
193
220
  }
194
221
  //# sourceMappingURL=http_header.js.map