@adviser/cement 0.4.2 → 0.4.3

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.
Files changed (44) hide show
  1. package/cf/index.js +2 -2
  2. package/{chunk-XJ3SFZPE.js → chunk-FURW5CDL.js} +2 -2
  3. package/{chunk-S5OZRDIH.js → chunk-FZHQTSQU.js} +7 -3
  4. package/chunk-FZHQTSQU.js.map +1 -0
  5. package/{chunk-C5L2FW7O.js → chunk-NJMNJYN2.js} +2 -2
  6. package/{chunk-MBLJQD6G.js → chunk-NTOGMD33.js} +1 -1
  7. package/chunk-NTOGMD33.js.map +1 -0
  8. package/deno/index.js +2 -2
  9. package/{index-TtYD7HhB.d.cts → index-BpBCVun3.d.cts} +2 -0
  10. package/{index-N0bkrgSt.d.ts → index-Dnurrov8.d.ts} +2 -0
  11. package/index.cjs +4 -0
  12. package/index.cjs.map +1 -1
  13. package/index.d.cts +4 -3
  14. package/index.d.ts +4 -3
  15. package/index.js +4 -4
  16. package/metafile-cjs.json +1 -1
  17. package/metafile-esm.json +1 -1
  18. package/node/index.js +2 -2
  19. package/package.json +5 -4
  20. package/src/is-promise.ts +2 -0
  21. package/src/jsr.json +1 -1
  22. package/src/uri.ts +6 -0
  23. package/test/index.cjs +4 -0
  24. package/test/index.cjs.map +1 -1
  25. package/test/index.d.cts +1 -1
  26. package/test/index.d.ts +1 -1
  27. package/test/index.js +3 -3
  28. package/ts/src/is-promise.d.ts +1 -0
  29. package/ts/src/is-promise.d.ts.map +1 -1
  30. package/ts/src/is-promise.js.map +1 -1
  31. package/ts/src/uri.d.ts +2 -0
  32. package/ts/src/uri.d.ts.map +1 -1
  33. package/ts/src/uri.js +4 -0
  34. package/ts/src/uri.js.map +1 -1
  35. package/ts/vitest.browser.config.d.ts.map +1 -1
  36. package/ts/vitest.browser.config.js +6 -2
  37. package/ts/vitest.browser.config.js.map +1 -1
  38. package/utils/index.cjs.map +1 -1
  39. package/utils/index.js +2 -2
  40. package/web/index.js +2 -2
  41. package/chunk-MBLJQD6G.js.map +0 -1
  42. package/chunk-S5OZRDIH.js.map +0 -1
  43. /package/{chunk-XJ3SFZPE.js.map → chunk-FURW5CDL.js.map} +0 -0
  44. /package/{chunk-C5L2FW7O.js.map → chunk-NJMNJYN2.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "better try/catch/finally handling",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -48,7 +48,7 @@
48
48
  "yaml": "^2.5.1"
49
49
  },
50
50
  "devDependencies": {
51
- "@cloudflare/vitest-pool-workers": "^0.7.1",
51
+ "@cloudflare/vitest-pool-workers": "^0.8.0",
52
52
  "@eslint/js": "^9.20.0",
53
53
  "@types/node": "^22.10.2",
54
54
  "@typescript-eslint/eslint-plugin": "^8.7.0",
@@ -57,14 +57,15 @@
57
57
  "esbuild-plugin-replace": "^1.4.0",
58
58
  "esbuild-plugin-resolve": "^2.0.0",
59
59
  "eslint": "9.22.0",
60
+ "playwright": "^1.51.0",
61
+ "playwright-chromium": "^1.51.0",
60
62
  "prettier": "^3.3.3",
61
63
  "tsup": "^8.3.0",
62
64
  "tsx": "^4.19.1",
63
65
  "typescript": "^5.8.0",
64
66
  "typescript-eslint": "^8.24.0",
65
67
  "vite-tsconfig-paths": "^5.0.1",
66
- "vitest": "^3.0.7",
67
- "webdriverio": "^9.9.0"
68
+ "vitest": "^3.0.8"
68
69
  },
69
70
  "engines": {
70
71
  "node": ">=20"
package/src/is-promise.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export type UnPromisify<T> = T extends Promise<infer U> ? U : T;
2
2
 
3
+ export type Promisable<T> = T | Promise<T>;
4
+
3
5
  export function isPromise<T>(a: T): a is T extends Promise<unknown> ? T : never {
4
6
  const mayBe = a as unknown as { then: () => void; catch: () => void; finally: () => void };
5
7
  return (
package/src/jsr.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adviser/cement",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./web": "./web/index.ts",
package/src/uri.ts CHANGED
@@ -168,6 +168,7 @@ export function isURL(value: unknown): value is URL {
168
168
 
169
169
  // due to that the System URL class is has a strange behavior
170
170
  // on different platforms, we need to implement our own URL class
171
+ const customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
171
172
  export class MutableURL extends URL {
172
173
  private readonly _sysURL: URL;
173
174
  // private readonly _urlStr: string;
@@ -203,6 +204,11 @@ export class MutableURL extends URL {
203
204
  this.hash = this._sysURL.hash;
204
205
  }
205
206
 
207
+ [customInspectSymbol](): string {
208
+ // make node inspect to show the URL and not crash if URI is not http/https/file
209
+ return this.toString();
210
+ }
211
+
206
212
  clone(): MutableURL {
207
213
  return new MutableURL(this.toString());
208
214
  }
package/test/index.cjs CHANGED
@@ -1231,6 +1231,7 @@ function ensureURLWithDefaultProto(url, defaultProtocol) {
1231
1231
  function isURL(value) {
1232
1232
  return value instanceof URL || !!value && typeof value.searchParams === "object" && typeof value.searchParams.sort === "function" && typeof value.hash === "string";
1233
1233
  }
1234
+ var customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
1234
1235
  var MutableURL = class _MutableURL extends URL {
1235
1236
  constructor(urlStr) {
1236
1237
  super("defect://does.not.exist");
@@ -1256,6 +1257,9 @@ var MutableURL = class _MutableURL extends URL {
1256
1257
  }
1257
1258
  this.hash = this._sysURL.hash;
1258
1259
  }
1260
+ [customInspectSymbol]() {
1261
+ return this.toString();
1262
+ }
1259
1263
  clone() {
1260
1264
  return new _MutableURL(this.toString());
1261
1265
  }