@adviser/cement 0.2.22 → 0.2.23
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/index.cjs +154 -85
- package/index.cjs.map +1 -1
- package/index.d.cts +16 -5
- package/index.d.ts +16 -5
- package/index.js +152 -85
- package/index.js.map +1 -1
- package/package.json +2 -2
package/index.cjs
CHANGED
@@ -116,8 +116,10 @@ __export(src_exports, {
|
|
116
116
|
WrapperSysAbstraction: () => WrapperSysAbstraction,
|
117
117
|
asyncLogValue: () => asyncLogValue,
|
118
118
|
envFactory: () => envFactory,
|
119
|
+
exception2Result: () => exception2Result,
|
119
120
|
isURL: () => isURL,
|
120
121
|
logValue: () => logValue,
|
122
|
+
protocols: () => protocols,
|
121
123
|
removeSelfRef: () => removeSelfRef,
|
122
124
|
runtimeFn: () => runtimeFn,
|
123
125
|
toCryptoRuntime: () => toCryptoRuntime,
|
@@ -842,6 +844,91 @@ function WebSysAbstraction(param) {
|
|
842
844
|
return new WrapperSysAbstraction(my, param);
|
843
845
|
}
|
844
846
|
|
847
|
+
// src/result.ts
|
848
|
+
var Result = class _Result {
|
849
|
+
static Ok(t) {
|
850
|
+
return new ResultOK(t);
|
851
|
+
}
|
852
|
+
static Err(t) {
|
853
|
+
if (typeof t === "string") {
|
854
|
+
return new ResultError(new Error(t));
|
855
|
+
}
|
856
|
+
return new ResultError(t);
|
857
|
+
}
|
858
|
+
static Is(t) {
|
859
|
+
if (!t) {
|
860
|
+
return false;
|
861
|
+
}
|
862
|
+
if (t instanceof _Result) {
|
863
|
+
return true;
|
864
|
+
}
|
865
|
+
const rt = t;
|
866
|
+
if ([typeof rt.is_ok, typeof rt.is_err, typeof rt.unwrap, typeof rt.unwrap_err].every((x) => x === "function")) {
|
867
|
+
return true;
|
868
|
+
}
|
869
|
+
return false;
|
870
|
+
}
|
871
|
+
isOk() {
|
872
|
+
return this.is_ok();
|
873
|
+
}
|
874
|
+
isErr() {
|
875
|
+
return this.is_err();
|
876
|
+
}
|
877
|
+
Ok() {
|
878
|
+
return this.unwrap();
|
879
|
+
}
|
880
|
+
Err() {
|
881
|
+
return this.unwrap_err();
|
882
|
+
}
|
883
|
+
};
|
884
|
+
var ResultOK = class extends Result {
|
885
|
+
constructor(t) {
|
886
|
+
super();
|
887
|
+
this._t = t;
|
888
|
+
}
|
889
|
+
is_ok() {
|
890
|
+
return true;
|
891
|
+
}
|
892
|
+
is_err() {
|
893
|
+
return false;
|
894
|
+
}
|
895
|
+
unwrap_err() {
|
896
|
+
throw new Error("Result is Ok");
|
897
|
+
}
|
898
|
+
unwrap() {
|
899
|
+
return this._t;
|
900
|
+
}
|
901
|
+
};
|
902
|
+
var ResultError = class extends Result {
|
903
|
+
constructor(t) {
|
904
|
+
super();
|
905
|
+
this._error = t;
|
906
|
+
}
|
907
|
+
is_ok() {
|
908
|
+
return false;
|
909
|
+
}
|
910
|
+
is_err() {
|
911
|
+
return true;
|
912
|
+
}
|
913
|
+
unwrap() {
|
914
|
+
throw new Error(`Result is Err: ${this._error}`);
|
915
|
+
}
|
916
|
+
unwrap_err() {
|
917
|
+
return this._error;
|
918
|
+
}
|
919
|
+
};
|
920
|
+
function exception2Result(fn) {
|
921
|
+
try {
|
922
|
+
const res = fn();
|
923
|
+
if (res instanceof Promise) {
|
924
|
+
return res.then((value) => Result.Ok(value)).catch((e) => Result.Err(e));
|
925
|
+
}
|
926
|
+
return Result.Ok(res);
|
927
|
+
} catch (e) {
|
928
|
+
return Result.Err(e);
|
929
|
+
}
|
930
|
+
}
|
931
|
+
|
845
932
|
// src/uri.ts
|
846
933
|
function falsy2undef(value) {
|
847
934
|
return value === void 0 || value === null ? void 0 : value;
|
@@ -866,16 +953,21 @@ function isURL(value) {
|
|
866
953
|
var MutableURL = class _MutableURL extends URL {
|
867
954
|
constructor(urlStr) {
|
868
955
|
super("defect://does.not.exist");
|
869
|
-
|
870
|
-
|
956
|
+
const partedURL = urlStr.split(":");
|
957
|
+
this._hasHostpart = protocols.has(partedURL[0]);
|
958
|
+
let hostPartUrl = ["http", ...partedURL.slice(1)].join(":");
|
959
|
+
if (!this._hasHostpart) {
|
960
|
+
const pathname = hostPartUrl.replace(/http:\/\/[/]*/, "").replace(/[#?].*$/, "");
|
961
|
+
hostPartUrl = hostPartUrl.replace(/http:\/\//, `http://localhost/${pathname}`);
|
962
|
+
}
|
871
963
|
try {
|
872
|
-
this._sysURL = new URL(
|
964
|
+
this._sysURL = new URL(hostPartUrl);
|
873
965
|
} catch (ie) {
|
874
966
|
const e = ie;
|
875
967
|
e.message = `${e.message} for URL: ${urlStr}`;
|
876
968
|
throw e;
|
877
969
|
}
|
878
|
-
this._protocol =
|
970
|
+
this._protocol = `${partedURL[0]}:`;
|
879
971
|
if (this._hasHostpart) {
|
880
972
|
this._pathname = this._sysURL.pathname;
|
881
973
|
} else {
|
@@ -886,15 +978,35 @@ var MutableURL = class _MutableURL extends URL {
|
|
886
978
|
clone() {
|
887
979
|
return new _MutableURL(this.toString());
|
888
980
|
}
|
981
|
+
get host() {
|
982
|
+
if (!this._hasHostpart) {
|
983
|
+
throw new Error(
|
984
|
+
`you can use hostname only if protocol is ${this.toString()} ${JSON.stringify(Array.from(protocols.keys()))}`
|
985
|
+
);
|
986
|
+
}
|
987
|
+
return this._sysURL.host;
|
988
|
+
}
|
989
|
+
get port() {
|
990
|
+
if (!this._hasHostpart) {
|
991
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
992
|
+
}
|
993
|
+
return this._sysURL.port;
|
994
|
+
}
|
995
|
+
set port(p) {
|
996
|
+
if (!this._hasHostpart) {
|
997
|
+
throw new Error(`you can use port only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
998
|
+
}
|
999
|
+
this._sysURL.port = p;
|
1000
|
+
}
|
889
1001
|
get hostname() {
|
890
1002
|
if (!this._hasHostpart) {
|
891
|
-
throw new Error(
|
1003
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
892
1004
|
}
|
893
1005
|
return this._sysURL.hostname;
|
894
1006
|
}
|
895
1007
|
set hostname(h) {
|
896
1008
|
if (!this._hasHostpart) {
|
897
|
-
throw new Error(
|
1009
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
898
1010
|
}
|
899
1011
|
this._sysURL.hostname = h;
|
900
1012
|
}
|
@@ -966,6 +1078,10 @@ var BuildURI = class _BuildURI {
|
|
966
1078
|
static from(strURLUri, defaultProtocol = "file:") {
|
967
1079
|
return from((url) => new _BuildURI(url), strURLUri, defaultProtocol);
|
968
1080
|
}
|
1081
|
+
port(p) {
|
1082
|
+
this._url.port = p;
|
1083
|
+
return this;
|
1084
|
+
}
|
969
1085
|
hostname(h) {
|
970
1086
|
this._url.hostname = h;
|
971
1087
|
return this;
|
@@ -1027,7 +1143,20 @@ var BuildURI = class _BuildURI {
|
|
1027
1143
|
return URI.from(this._url);
|
1028
1144
|
}
|
1029
1145
|
};
|
1146
|
+
var protocols = /* @__PURE__ */ new Map([
|
1147
|
+
["http", true],
|
1148
|
+
["https", true],
|
1149
|
+
["ws", true],
|
1150
|
+
["wss", true]
|
1151
|
+
]);
|
1030
1152
|
var URI = class _URI {
|
1153
|
+
static protocolHasHostpart(protocol) {
|
1154
|
+
protocol = protocol.replace(/:$/, "");
|
1155
|
+
protocols.set(protocol, true);
|
1156
|
+
return () => {
|
1157
|
+
protocols.delete(protocol);
|
1158
|
+
};
|
1159
|
+
}
|
1031
1160
|
// if no protocol is provided, default to file:
|
1032
1161
|
static merge(into, from2, defaultProtocol = "file:") {
|
1033
1162
|
const intoUrl = BuildURI.from(into, defaultProtocol);
|
@@ -1049,6 +1178,9 @@ var URI = class _URI {
|
|
1049
1178
|
static from(strURLUri, defaultProtocol = "file:") {
|
1050
1179
|
return from((url) => new _URI(url), strURLUri, defaultProtocol);
|
1051
1180
|
}
|
1181
|
+
static fromResult(strURLUri, defaultProtocol = "file:") {
|
1182
|
+
return exception2Result(() => from((url) => new _URI(url), strURLUri, defaultProtocol));
|
1183
|
+
}
|
1052
1184
|
constructor(url) {
|
1053
1185
|
this._url = url.clone();
|
1054
1186
|
}
|
@@ -1061,9 +1193,12 @@ var URI = class _URI {
|
|
1061
1193
|
// get password(): string {
|
1062
1194
|
// return this._url.password;
|
1063
1195
|
// }
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1196
|
+
get port() {
|
1197
|
+
return this._url.port;
|
1198
|
+
}
|
1199
|
+
get host() {
|
1200
|
+
return this._url.host;
|
1201
|
+
}
|
1067
1202
|
// get username(): string {
|
1068
1203
|
// return this._url.username;
|
1069
1204
|
// }
|
@@ -1074,7 +1209,7 @@ var URI = class _URI {
|
|
1074
1209
|
return this._url.protocol;
|
1075
1210
|
}
|
1076
1211
|
get pathname() {
|
1077
|
-
return this._url.
|
1212
|
+
return this._url.pathname;
|
1078
1213
|
}
|
1079
1214
|
// get hash(): string {
|
1080
1215
|
// return this._url.hash;
|
@@ -1438,7 +1573,13 @@ var LoggerImpl = class _LoggerImpl {
|
|
1438
1573
|
}
|
1439
1574
|
Err(err) {
|
1440
1575
|
var _a;
|
1441
|
-
if (err
|
1576
|
+
if (Result.Is(err)) {
|
1577
|
+
if (err.isOk()) {
|
1578
|
+
this.Result("noerror", err);
|
1579
|
+
} else {
|
1580
|
+
this.Result("error", err);
|
1581
|
+
}
|
1582
|
+
} else if (err instanceof Error) {
|
1442
1583
|
this._attributes["error"] = logValue(err.message);
|
1443
1584
|
if (this._levelHandler.isStackExposed) {
|
1444
1585
|
this._attributes["stack"] = logValue((_a = err.stack) == null ? void 0 : _a.split("\n").map((s) => s.trim()));
|
@@ -1792,80 +1933,6 @@ function MockLogger(params) {
|
|
1792
1933
|
};
|
1793
1934
|
}
|
1794
1935
|
|
1795
|
-
// src/result.ts
|
1796
|
-
var Result = class _Result {
|
1797
|
-
static Ok(t) {
|
1798
|
-
return new ResultOK(t);
|
1799
|
-
}
|
1800
|
-
static Err(t) {
|
1801
|
-
if (typeof t === "string") {
|
1802
|
-
return new ResultError(new Error(t));
|
1803
|
-
}
|
1804
|
-
return new ResultError(t);
|
1805
|
-
}
|
1806
|
-
static Is(t) {
|
1807
|
-
if (!t) {
|
1808
|
-
return false;
|
1809
|
-
}
|
1810
|
-
if (t instanceof _Result) {
|
1811
|
-
return true;
|
1812
|
-
}
|
1813
|
-
const rt = t;
|
1814
|
-
if ([typeof rt.is_ok, typeof rt.is_err, typeof rt.unwrap, typeof rt.unwrap_err].every((x) => x === "function")) {
|
1815
|
-
return true;
|
1816
|
-
}
|
1817
|
-
return false;
|
1818
|
-
}
|
1819
|
-
isOk() {
|
1820
|
-
return this.is_ok();
|
1821
|
-
}
|
1822
|
-
isErr() {
|
1823
|
-
return this.is_err();
|
1824
|
-
}
|
1825
|
-
Ok() {
|
1826
|
-
return this.unwrap();
|
1827
|
-
}
|
1828
|
-
Err() {
|
1829
|
-
return this.unwrap_err();
|
1830
|
-
}
|
1831
|
-
};
|
1832
|
-
var ResultOK = class extends Result {
|
1833
|
-
constructor(t) {
|
1834
|
-
super();
|
1835
|
-
this._t = t;
|
1836
|
-
}
|
1837
|
-
is_ok() {
|
1838
|
-
return true;
|
1839
|
-
}
|
1840
|
-
is_err() {
|
1841
|
-
return false;
|
1842
|
-
}
|
1843
|
-
unwrap_err() {
|
1844
|
-
throw new Error("Result is Ok");
|
1845
|
-
}
|
1846
|
-
unwrap() {
|
1847
|
-
return this._t;
|
1848
|
-
}
|
1849
|
-
};
|
1850
|
-
var ResultError = class extends Result {
|
1851
|
-
constructor(t) {
|
1852
|
-
super();
|
1853
|
-
this._error = t;
|
1854
|
-
}
|
1855
|
-
is_ok() {
|
1856
|
-
return false;
|
1857
|
-
}
|
1858
|
-
is_err() {
|
1859
|
-
return true;
|
1860
|
-
}
|
1861
|
-
unwrap() {
|
1862
|
-
throw new Error(`Result is Err: ${this._error}`);
|
1863
|
-
}
|
1864
|
-
unwrap_err() {
|
1865
|
-
return this._error;
|
1866
|
-
}
|
1867
|
-
};
|
1868
|
-
|
1869
1936
|
// src/option.ts
|
1870
1937
|
var Option = class _Option {
|
1871
1938
|
static Some(t) {
|
@@ -2219,8 +2286,10 @@ function uint8array2stream(str) {
|
|
2219
2286
|
WrapperSysAbstraction,
|
2220
2287
|
asyncLogValue,
|
2221
2288
|
envFactory,
|
2289
|
+
exception2Result,
|
2222
2290
|
isURL,
|
2223
2291
|
logValue,
|
2292
|
+
protocols,
|
2224
2293
|
removeSelfRef,
|
2225
2294
|
runtimeFn,
|
2226
2295
|
toCryptoRuntime,
|