@adviser/cement 0.2.31 → 0.2.33

Sign up to get free protection for your applications and to get access to all the features.
package/index.cjs CHANGED
@@ -146,8 +146,7 @@ __export(src_exports, {
146
146
  removeSelfRef: () => removeSelfRef,
147
147
  runtimeFn: () => runtimeFn,
148
148
  toCryptoRuntime: () => toCryptoRuntime,
149
- utils: () => utils_exports,
150
- wrapRefcounted: () => wrapRefcounted
149
+ utils: () => utils_exports
151
150
  });
152
151
  module.exports = __toCommonJS(src_exports);
153
152
 
@@ -1052,6 +1051,61 @@ function exception2Result(fn) {
1052
1051
  }
1053
1052
  }
1054
1053
 
1054
+ // src/utils/stripper.ts
1055
+ function stripper(strip, obj) {
1056
+ const strips = Array.isArray(strip) ? strip : [strip];
1057
+ const restrips = strips.map((s) => {
1058
+ if (typeof s === "string") {
1059
+ const escaped = s.replace(/[-\\[\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\^\\$\\|]/g, "\\$&");
1060
+ return new RegExp(`^${escaped}$`);
1061
+ }
1062
+ return s;
1063
+ });
1064
+ return localStripper(void 0, restrips, obj);
1065
+ }
1066
+ function localStripper(path, restrips, obj) {
1067
+ if (typeof obj !== "object" || obj === null) {
1068
+ return obj;
1069
+ }
1070
+ const ret = __spreadValues({}, obj);
1071
+ const matcher = (key, nextPath) => {
1072
+ for (const re of restrips) {
1073
+ if (re.test(key) || re.test(nextPath)) {
1074
+ return true;
1075
+ }
1076
+ }
1077
+ return false;
1078
+ };
1079
+ for (const key in ret) {
1080
+ if (Object.prototype.hasOwnProperty.call(ret, key)) {
1081
+ let nextPath;
1082
+ if (path) {
1083
+ nextPath = [path, key].join(".");
1084
+ } else {
1085
+ nextPath = key;
1086
+ }
1087
+ if (matcher(key, nextPath)) {
1088
+ delete ret[key];
1089
+ continue;
1090
+ }
1091
+ if (typeof ret[key] === "object") {
1092
+ if (Array.isArray(ret[key])) {
1093
+ ret[key] = ret[key].reduce((acc, v, i) => {
1094
+ const toDelete = matcher(key, `${nextPath}[${i}]`);
1095
+ if (!toDelete) {
1096
+ acc.push(localStripper(`${nextPath}[${i}]`, restrips, v));
1097
+ }
1098
+ return acc;
1099
+ }, []);
1100
+ } else {
1101
+ ret[key] = localStripper(nextPath, restrips, ret[key]);
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ return ret;
1107
+ }
1108
+
1055
1109
  // src/uri.ts
1056
1110
  function falsy2undef(value) {
1057
1111
  return value === void 0 || value === null ? void 0 : value;
@@ -1190,6 +1244,35 @@ function from(fac, strURLUri, defaultProtocol) {
1190
1244
  throw new Error(`Invalid argument: ${typeof strURLUri}`);
1191
1245
  }
1192
1246
  }
1247
+ function getParamResult(key, val, msgFn = (key2) => {
1248
+ return `missing parameter: ${key2}`;
1249
+ }) {
1250
+ if (val === void 0) {
1251
+ return Result.Err(msgFn(key));
1252
+ }
1253
+ return Result.Ok(val);
1254
+ }
1255
+ function getParamsResult(keys, getParam) {
1256
+ const keyStrs = keys.flat().filter((k) => typeof k === "string");
1257
+ const msgFn = keys.find((k) => typeof k === "function") || ((...keys2) => {
1258
+ const msg = keys2.join(",");
1259
+ return `missing parameters: ${msg}`;
1260
+ });
1261
+ const errors = [];
1262
+ const result = {};
1263
+ for (const key of keyStrs) {
1264
+ const val = getParam.getParam(key);
1265
+ if (val === void 0) {
1266
+ errors.push(key);
1267
+ } else {
1268
+ result[key] = val;
1269
+ }
1270
+ }
1271
+ if (errors.length) {
1272
+ return Result.Err(msgFn(...errors));
1273
+ }
1274
+ return Result.Ok(result);
1275
+ }
1193
1276
  var BuildURI = class _BuildURI {
1194
1277
  // pathname needs this
1195
1278
  constructor(url) {
@@ -1241,6 +1324,20 @@ var BuildURI = class _BuildURI {
1241
1324
  // this._url.host = h;
1242
1325
  // return this;
1243
1326
  // }
1327
+ appendRelative(p) {
1328
+ const url = URI.from(p);
1329
+ let pathname = url.pathname;
1330
+ if (url.pathname === "/") {
1331
+ pathname = "";
1332
+ } else if (!pathname.startsWith("/")) {
1333
+ pathname = `/${pathname}`;
1334
+ }
1335
+ this.pathname(this._url.pathname + pathname);
1336
+ for (const [key, value] of url.getParams) {
1337
+ this.setParam(key, value);
1338
+ }
1339
+ return this;
1340
+ }
1244
1341
  delParam(key) {
1245
1342
  this._url.searchParams.delete(key);
1246
1343
  return this;
@@ -1261,6 +1358,12 @@ var BuildURI = class _BuildURI {
1261
1358
  getParam(key) {
1262
1359
  return falsy2undef(this._url.searchParams.get(key));
1263
1360
  }
1361
+ getParamResult(key, msgFn) {
1362
+ return getParamResult(key, this.getParam(key), msgFn);
1363
+ }
1364
+ getParamsResult(...keys) {
1365
+ return getParamsResult(keys, this);
1366
+ }
1264
1367
  toString() {
1265
1368
  this._url.searchParams.sort();
1266
1369
  return this._url.toString();
@@ -1268,6 +1371,9 @@ var BuildURI = class _BuildURI {
1268
1371
  toJSON() {
1269
1372
  return this.toString();
1270
1373
  }
1374
+ asObj(...strips) {
1375
+ return this.URI().asObj(...strips);
1376
+ }
1271
1377
  URI() {
1272
1378
  return URI.from(this._url);
1273
1379
  }
@@ -1350,6 +1456,12 @@ var URI = class _URI {
1350
1456
  getParam(key) {
1351
1457
  return falsy2undef(this._url.searchParams.get(key));
1352
1458
  }
1459
+ getParamResult(key, msgFn) {
1460
+ return getParamResult(key, this.getParam(key), msgFn);
1461
+ }
1462
+ getParamsResult(...keys) {
1463
+ return getParamsResult(keys, this);
1464
+ }
1353
1465
  clone() {
1354
1466
  return new _URI(this._url);
1355
1467
  }
@@ -1362,7 +1474,7 @@ var URI = class _URI {
1362
1474
  toJSON() {
1363
1475
  return this.toString();
1364
1476
  }
1365
- asObj() {
1477
+ asObj(...strips) {
1366
1478
  const pathURI = {
1367
1479
  style: "path",
1368
1480
  protocol: this.protocol,
@@ -1370,13 +1482,13 @@ var URI = class _URI {
1370
1482
  searchParams: Object.fromEntries(this.getParams)
1371
1483
  };
1372
1484
  if (hasHostPartProtocols.has(this.protocol.replace(/:$/, ""))) {
1373
- return __spreadProps(__spreadValues({}, pathURI), {
1485
+ return stripper(strips, __spreadProps(__spreadValues({}, pathURI), {
1374
1486
  style: "host",
1375
1487
  hostname: this.hostname,
1376
1488
  port: this.port
1377
- });
1489
+ }));
1378
1490
  }
1379
- return pathURI;
1491
+ return stripper(strips, pathURI);
1380
1492
  }
1381
1493
  };
1382
1494
 
@@ -1869,8 +1981,10 @@ var LoggerImpl = class _LoggerImpl {
1869
1981
  }
1870
1982
  return fnRet;
1871
1983
  });
1984
+ const asError = () => new Error(this._txtEnDe.decode(fnError()));
1872
1985
  return {
1873
- AsError: () => new Error(this._txtEnDe.decode(fnError()))
1986
+ ResultError: () => Result.Err(asError()),
1987
+ AsError: asError
1874
1988
  };
1875
1989
  }
1876
1990
  };
@@ -2346,26 +2460,6 @@ var VERSION = Object.keys({
2346
2460
  __packageVersion__: "xxxx"
2347
2461
  })[0];
2348
2462
 
2349
- // src/refcounted.ts
2350
- function wrapRefcounted(t, method) {
2351
- const my2 = t;
2352
- my2.__refcounted = (my2.__refcounted || 0) + 1;
2353
- if (my2.__refcounted === 1) {
2354
- my2.__unrefcounted = my2[method];
2355
- const mRec = my2;
2356
- mRec[method] = function() {
2357
- this.__refcounted--;
2358
- if (this.__refcounted === 0) {
2359
- this.__unrefcounted();
2360
- }
2361
- if (this.__refcounted < 0) {
2362
- throw new Error("already closed");
2363
- }
2364
- };
2365
- }
2366
- return t;
2367
- }
2368
-
2369
2463
  // src/utils/index.ts
2370
2464
  var utils_exports = {};
2371
2465
  __export(utils_exports, {
@@ -2625,7 +2719,6 @@ function uint8array2stream(str) {
2625
2719
  removeSelfRef,
2626
2720
  runtimeFn,
2627
2721
  toCryptoRuntime,
2628
- utils,
2629
- wrapRefcounted
2722
+ utils
2630
2723
  });
2631
2724
  //# sourceMappingURL=index.cjs.map