@xylabs/error 5.0.38 → 5.0.40

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.
@@ -0,0 +1,5 @@
1
+ type AssertCallback = (value: unknown, message: string) => string | boolean;
2
+ export type AssertConfig = string | AssertCallback | boolean;
3
+ export declare const assertError: (value: unknown, assert: AssertConfig | undefined, defaultMessage: string) => undefined;
4
+ export {};
5
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/assert.ts"],"names":[],"mappings":"AAEA,KAAK,cAAc,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAA;AAE3E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,OAAO,CAAA;AAE5D,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,EAAE,QAAQ,YAAY,GAAG,SAAS,EAAE,gBAAgB,MAAM,cAcnG,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './assert.ts';
1
2
  export * from './handleError.ts';
2
3
  export { isError } from '@xylabs/typeof';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,3 +1,15 @@
1
+ // src/assert.ts
2
+ import { isString, isUndefined } from "@xylabs/typeof";
3
+ var assertError = (value, assert, defaultMessage) => {
4
+ if (!isUndefined(assert)) {
5
+ const assertString = typeof assert === "string" ? assert : typeof assert === "boolean" ? defaultMessage : assert(value, defaultMessage);
6
+ if (isString(assertString) || assertString === true) {
7
+ throw new Error(assertString === true ? defaultMessage : assertString);
8
+ }
9
+ }
10
+ return void 0;
11
+ };
12
+
1
13
  // src/handleError.ts
2
14
  import { isError } from "@xylabs/typeof";
3
15
  var handleError = (error, handler) => {
@@ -18,6 +30,7 @@ var handleErrorAsync = async (error, handler) => {
18
30
  // src/index.ts
19
31
  import { isError as isError2 } from "@xylabs/typeof";
20
32
  export {
33
+ assertError,
21
34
  handleError,
22
35
  handleErrorAsync,
23
36
  isError2 as isError
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/handleError.ts","../../src/index.ts"],"sourcesContent":["import { isError } from '@xylabs/typeof'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const handleError = <T>(error: any, handler: (error: Error) => T) => {\n if (isError(error)) {\n return handler(error)\n } else {\n throw error\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const handleErrorAsync = async <T>(error: any, handler: (error: Error) => Promise<T>) => {\n if (isError(error)) {\n return await handler(error)\n } else {\n throw error\n }\n}\n","export * from './handleError.ts'\nexport { isError } from '@xylabs/typeof'\n"],"mappings":";AAAA,SAAS,eAAe;AAGjB,IAAM,cAAc,CAAI,OAAY,YAAiC;AAC1E,MAAI,QAAQ,KAAK,GAAG;AAClB,WAAO,QAAQ,KAAK;AAAA,EACtB,OAAO;AACL,UAAM;AAAA,EACR;AACF;AAGO,IAAM,mBAAmB,OAAU,OAAY,YAA0C;AAC9F,MAAI,QAAQ,KAAK,GAAG;AAClB,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC5B,OAAO;AACL,UAAM;AAAA,EACR;AACF;;;ACjBA,SAAS,WAAAA,gBAAe;","names":["isError"]}
1
+ {"version":3,"sources":["../../src/assert.ts","../../src/handleError.ts","../../src/index.ts"],"sourcesContent":["import { isString, isUndefined } from '@xylabs/typeof'\n\ntype AssertCallback = (value: unknown, message: string) => string | boolean\n\nexport type AssertConfig = string | AssertCallback | boolean\n\nexport const assertError = (value: unknown, assert: AssertConfig | undefined, defaultMessage: string) => {\n if (!isUndefined(assert)) {\n const assertString\n = typeof assert === 'string'\n ? assert\n : typeof assert === 'boolean'\n ? defaultMessage\n : assert(value, defaultMessage)\n if (isString(assertString) || assertString === true) {\n throw new Error(assertString === true ? defaultMessage : assertString)\n }\n }\n // eslint-disable-next-line unicorn/no-useless-undefined\n return undefined\n}\n","import { isError } from '@xylabs/typeof'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const handleError = <T>(error: any, handler: (error: Error) => T) => {\n if (isError(error)) {\n return handler(error)\n } else {\n throw error\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const handleErrorAsync = async <T>(error: any, handler: (error: Error) => Promise<T>) => {\n if (isError(error)) {\n return await handler(error)\n } else {\n throw error\n }\n}\n","export * from './assert.ts'\nexport * from './handleError.ts'\nexport { isError } from '@xylabs/typeof'\n"],"mappings":";AAAA,SAAS,UAAU,mBAAmB;AAM/B,IAAM,cAAc,CAAC,OAAgB,QAAkC,mBAA2B;AACvG,MAAI,CAAC,YAAY,MAAM,GAAG;AACxB,UAAM,eACF,OAAO,WAAW,WAChB,SACA,OAAO,WAAW,YAChB,iBACA,OAAO,OAAO,cAAc;AACpC,QAAI,SAAS,YAAY,KAAK,iBAAiB,MAAM;AACnD,YAAM,IAAI,MAAM,iBAAiB,OAAO,iBAAiB,YAAY;AAAA,IACvE;AAAA,EACF;AAEA,SAAO;AACT;;;ACpBA,SAAS,eAAe;AAGjB,IAAM,cAAc,CAAI,OAAY,YAAiC;AAC1E,MAAI,QAAQ,KAAK,GAAG;AAClB,WAAO,QAAQ,KAAK;AAAA,EACtB,OAAO;AACL,UAAM;AAAA,EACR;AACF;AAGO,IAAM,mBAAmB,OAAU,OAAY,YAA0C;AAC9F,MAAI,QAAQ,KAAK,GAAG;AAClB,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC5B,OAAO;AACL,UAAM;AAAA,EACR;AACF;;;AChBA,SAAS,WAAAA,gBAAe;","names":["isError"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/error",
3
- "version": "5.0.38",
3
+ "version": "5.0.40",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "keywords": [
6
6
  "error",
@@ -45,7 +45,7 @@
45
45
  "!**/*.test.*"
46
46
  ],
47
47
  "dependencies": {
48
- "@xylabs/typeof": "~5.0.38"
48
+ "@xylabs/typeof": "~5.0.40"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
package/src/assert.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { isString, isUndefined } from '@xylabs/typeof'
2
+
3
+ type AssertCallback = (value: unknown, message: string) => string | boolean
4
+
5
+ export type AssertConfig = string | AssertCallback | boolean
6
+
7
+ export const assertError = (value: unknown, assert: AssertConfig | undefined, defaultMessage: string) => {
8
+ if (!isUndefined(assert)) {
9
+ const assertString
10
+ = typeof assert === 'string'
11
+ ? assert
12
+ : typeof assert === 'boolean'
13
+ ? defaultMessage
14
+ : assert(value, defaultMessage)
15
+ if (isString(assertString) || assertString === true) {
16
+ throw new Error(assertString === true ? defaultMessage : assertString)
17
+ }
18
+ }
19
+ // eslint-disable-next-line unicorn/no-useless-undefined
20
+ return undefined
21
+ }
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
+ export * from './assert.ts'
1
2
  export * from './handleError.ts'
2
3
  export { isError } from '@xylabs/typeof'