@adviser/cement 0.2.21 → 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 +160 -84
- package/index.cjs.map +1 -1
- package/index.d.cts +16 -5
- package/index.d.ts +16 -5
- package/index.js +158 -84
- 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,9 +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
|
-
this.
|
|
871
|
-
|
|
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
|
+
}
|
|
963
|
+
try {
|
|
964
|
+
this._sysURL = new URL(hostPartUrl);
|
|
965
|
+
} catch (ie) {
|
|
966
|
+
const e = ie;
|
|
967
|
+
e.message = `${e.message} for URL: ${urlStr}`;
|
|
968
|
+
throw e;
|
|
969
|
+
}
|
|
970
|
+
this._protocol = `${partedURL[0]}:`;
|
|
872
971
|
if (this._hasHostpart) {
|
|
873
972
|
this._pathname = this._sysURL.pathname;
|
|
874
973
|
} else {
|
|
@@ -879,15 +978,35 @@ var MutableURL = class _MutableURL extends URL {
|
|
|
879
978
|
clone() {
|
|
880
979
|
return new _MutableURL(this.toString());
|
|
881
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
|
+
}
|
|
882
1001
|
get hostname() {
|
|
883
1002
|
if (!this._hasHostpart) {
|
|
884
|
-
throw new Error(
|
|
1003
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
|
885
1004
|
}
|
|
886
1005
|
return this._sysURL.hostname;
|
|
887
1006
|
}
|
|
888
1007
|
set hostname(h) {
|
|
889
1008
|
if (!this._hasHostpart) {
|
|
890
|
-
throw new Error(
|
|
1009
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
|
891
1010
|
}
|
|
892
1011
|
this._sysURL.hostname = h;
|
|
893
1012
|
}
|
|
@@ -959,6 +1078,10 @@ var BuildURI = class _BuildURI {
|
|
|
959
1078
|
static from(strURLUri, defaultProtocol = "file:") {
|
|
960
1079
|
return from((url) => new _BuildURI(url), strURLUri, defaultProtocol);
|
|
961
1080
|
}
|
|
1081
|
+
port(p) {
|
|
1082
|
+
this._url.port = p;
|
|
1083
|
+
return this;
|
|
1084
|
+
}
|
|
962
1085
|
hostname(h) {
|
|
963
1086
|
this._url.hostname = h;
|
|
964
1087
|
return this;
|
|
@@ -1020,7 +1143,20 @@ var BuildURI = class _BuildURI {
|
|
|
1020
1143
|
return URI.from(this._url);
|
|
1021
1144
|
}
|
|
1022
1145
|
};
|
|
1146
|
+
var protocols = /* @__PURE__ */ new Map([
|
|
1147
|
+
["http", true],
|
|
1148
|
+
["https", true],
|
|
1149
|
+
["ws", true],
|
|
1150
|
+
["wss", true]
|
|
1151
|
+
]);
|
|
1023
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
|
+
}
|
|
1024
1160
|
// if no protocol is provided, default to file:
|
|
1025
1161
|
static merge(into, from2, defaultProtocol = "file:") {
|
|
1026
1162
|
const intoUrl = BuildURI.from(into, defaultProtocol);
|
|
@@ -1042,6 +1178,9 @@ var URI = class _URI {
|
|
|
1042
1178
|
static from(strURLUri, defaultProtocol = "file:") {
|
|
1043
1179
|
return from((url) => new _URI(url), strURLUri, defaultProtocol);
|
|
1044
1180
|
}
|
|
1181
|
+
static fromResult(strURLUri, defaultProtocol = "file:") {
|
|
1182
|
+
return exception2Result(() => from((url) => new _URI(url), strURLUri, defaultProtocol));
|
|
1183
|
+
}
|
|
1045
1184
|
constructor(url) {
|
|
1046
1185
|
this._url = url.clone();
|
|
1047
1186
|
}
|
|
@@ -1054,9 +1193,12 @@ var URI = class _URI {
|
|
|
1054
1193
|
// get password(): string {
|
|
1055
1194
|
// return this._url.password;
|
|
1056
1195
|
// }
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1196
|
+
get port() {
|
|
1197
|
+
return this._url.port;
|
|
1198
|
+
}
|
|
1199
|
+
get host() {
|
|
1200
|
+
return this._url.host;
|
|
1201
|
+
}
|
|
1060
1202
|
// get username(): string {
|
|
1061
1203
|
// return this._url.username;
|
|
1062
1204
|
// }
|
|
@@ -1067,7 +1209,7 @@ var URI = class _URI {
|
|
|
1067
1209
|
return this._url.protocol;
|
|
1068
1210
|
}
|
|
1069
1211
|
get pathname() {
|
|
1070
|
-
return this._url.
|
|
1212
|
+
return this._url.pathname;
|
|
1071
1213
|
}
|
|
1072
1214
|
// get hash(): string {
|
|
1073
1215
|
// return this._url.hash;
|
|
@@ -1431,7 +1573,13 @@ var LoggerImpl = class _LoggerImpl {
|
|
|
1431
1573
|
}
|
|
1432
1574
|
Err(err) {
|
|
1433
1575
|
var _a;
|
|
1434
|
-
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) {
|
|
1435
1583
|
this._attributes["error"] = logValue(err.message);
|
|
1436
1584
|
if (this._levelHandler.isStackExposed) {
|
|
1437
1585
|
this._attributes["stack"] = logValue((_a = err.stack) == null ? void 0 : _a.split("\n").map((s) => s.trim()));
|
|
@@ -1785,80 +1933,6 @@ function MockLogger(params) {
|
|
|
1785
1933
|
};
|
|
1786
1934
|
}
|
|
1787
1935
|
|
|
1788
|
-
// src/result.ts
|
|
1789
|
-
var Result = class _Result {
|
|
1790
|
-
static Ok(t) {
|
|
1791
|
-
return new ResultOK(t);
|
|
1792
|
-
}
|
|
1793
|
-
static Err(t) {
|
|
1794
|
-
if (typeof t === "string") {
|
|
1795
|
-
return new ResultError(new Error(t));
|
|
1796
|
-
}
|
|
1797
|
-
return new ResultError(t);
|
|
1798
|
-
}
|
|
1799
|
-
static Is(t) {
|
|
1800
|
-
if (!t) {
|
|
1801
|
-
return false;
|
|
1802
|
-
}
|
|
1803
|
-
if (t instanceof _Result) {
|
|
1804
|
-
return true;
|
|
1805
|
-
}
|
|
1806
|
-
const rt = t;
|
|
1807
|
-
if ([typeof rt.is_ok, typeof rt.is_err, typeof rt.unwrap, typeof rt.unwrap_err].every((x) => x === "function")) {
|
|
1808
|
-
return true;
|
|
1809
|
-
}
|
|
1810
|
-
return false;
|
|
1811
|
-
}
|
|
1812
|
-
isOk() {
|
|
1813
|
-
return this.is_ok();
|
|
1814
|
-
}
|
|
1815
|
-
isErr() {
|
|
1816
|
-
return this.is_err();
|
|
1817
|
-
}
|
|
1818
|
-
Ok() {
|
|
1819
|
-
return this.unwrap();
|
|
1820
|
-
}
|
|
1821
|
-
Err() {
|
|
1822
|
-
return this.unwrap_err();
|
|
1823
|
-
}
|
|
1824
|
-
};
|
|
1825
|
-
var ResultOK = class extends Result {
|
|
1826
|
-
constructor(t) {
|
|
1827
|
-
super();
|
|
1828
|
-
this._t = t;
|
|
1829
|
-
}
|
|
1830
|
-
is_ok() {
|
|
1831
|
-
return true;
|
|
1832
|
-
}
|
|
1833
|
-
is_err() {
|
|
1834
|
-
return false;
|
|
1835
|
-
}
|
|
1836
|
-
unwrap_err() {
|
|
1837
|
-
throw new Error("Result is Ok");
|
|
1838
|
-
}
|
|
1839
|
-
unwrap() {
|
|
1840
|
-
return this._t;
|
|
1841
|
-
}
|
|
1842
|
-
};
|
|
1843
|
-
var ResultError = class extends Result {
|
|
1844
|
-
constructor(t) {
|
|
1845
|
-
super();
|
|
1846
|
-
this._error = t;
|
|
1847
|
-
}
|
|
1848
|
-
is_ok() {
|
|
1849
|
-
return false;
|
|
1850
|
-
}
|
|
1851
|
-
is_err() {
|
|
1852
|
-
return true;
|
|
1853
|
-
}
|
|
1854
|
-
unwrap() {
|
|
1855
|
-
throw new Error(`Result is Err: ${this._error}`);
|
|
1856
|
-
}
|
|
1857
|
-
unwrap_err() {
|
|
1858
|
-
return this._error;
|
|
1859
|
-
}
|
|
1860
|
-
};
|
|
1861
|
-
|
|
1862
1936
|
// src/option.ts
|
|
1863
1937
|
var Option = class _Option {
|
|
1864
1938
|
static Some(t) {
|
|
@@ -2212,8 +2286,10 @@ function uint8array2stream(str) {
|
|
|
2212
2286
|
WrapperSysAbstraction,
|
|
2213
2287
|
asyncLogValue,
|
|
2214
2288
|
envFactory,
|
|
2289
|
+
exception2Result,
|
|
2215
2290
|
isURL,
|
|
2216
2291
|
logValue,
|
|
2292
|
+
protocols,
|
|
2217
2293
|
removeSelfRef,
|
|
2218
2294
|
runtimeFn,
|
|
2219
2295
|
toCryptoRuntime,
|