From 330426b966460f71255639d61ae381a04d9628f1 Mon Sep 17 00:00:00 2001 From: Roger Qiu Date: Sun, 3 Sep 2023 11:14:43 +1000 Subject: [PATCH 1/2] feat: added `checkError` for checking the error graph --- docs/assets/search.js | 2 +- docs/classes/AbstractError.html | 1 + docs/functions/utils.checkError.html | 79 ++++++++++++++++++++++++++++ docs/index.html | 3 +- docs/modules.html | 7 ++- docs/modules/utils.html | 55 +++++++++++++++++++ docs/types/Class.html | 1 + docs/types/POJO.html | 1 + src/index.ts | 1 + src/utils.ts | 27 ++++++++++ tests/index.test.ts | 32 ++++++++++- 11 files changed, 205 insertions(+), 4 deletions(-) create mode 100644 docs/functions/utils.checkError.html create mode 100644 docs/modules/utils.html create mode 100644 src/utils.ts diff --git a/docs/assets/search.js b/docs/assets/search.js index 5df11a7..da6c4e8 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"rows\":[{\"kind\":128,\"name\":\"AbstractError\",\"url\":\"classes/AbstractError.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/AbstractError.html#description\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":2048,\"name\":\"fromJSON\",\"url\":\"classes/AbstractError.html#fromJSON\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AbstractError.html#constructor\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/AbstractError.html#data\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/AbstractError.html#cause\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":1024,\"name\":\"timestamp\",\"url\":\"classes/AbstractError.html#timestamp\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":262144,\"name\":\"description\",\"url\":\"classes/AbstractError.html#description-1\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":2048,\"name\":\"toJSON\",\"url\":\"classes/AbstractError.html#toJSON\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":4194304,\"name\":\"POJO\",\"url\":\"types/POJO.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/POJO.html#__type\",\"classes\":\"\",\"parent\":\"POJO\"},{\"kind\":4194304,\"name\":\"Class\",\"url\":\"types/Class.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"types/Class.html#__type\",\"classes\":\"\",\"parent\":\"Class\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,22.336]],[\"comment/0\",[]],[\"name/1\",[1,17.228]],[\"comment/1\",[]],[\"name/2\",[2,22.336]],[\"comment/2\",[]],[\"name/3\",[3,22.336]],[\"comment/3\",[]],[\"name/4\",[4,22.336]],[\"comment/4\",[]],[\"name/5\",[5,22.336]],[\"comment/5\",[]],[\"name/6\",[6,22.336]],[\"comment/6\",[]],[\"name/7\",[1,17.228]],[\"comment/7\",[]],[\"name/8\",[7,22.336]],[\"comment/8\",[]],[\"name/9\",[8,22.336]],[\"comment/9\",[]],[\"name/10\",[9,17.228]],[\"comment/10\",[]],[\"name/11\",[10,22.336]],[\"comment/11\",[]],[\"name/12\",[9,17.228]],[\"comment/12\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":9,\"name\":{\"10\":{},\"12\":{}},\"comment\":{}}],[\"abstracterror\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"cause\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"class\",{\"_index\":10,\"name\":{\"11\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"data\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"description\",{\"_index\":1,\"name\":{\"1\":{},\"7\":{}},\"comment\":{}}],[\"fromjson\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"pojo\",{\"_index\":8,\"name\":{\"9\":{}},\"comment\":{}}],[\"timestamp\",{\"_index\":6,\"name\":{\"6\":{}},\"comment\":{}}],[\"tojson\",{\"_index\":7,\"name\":{\"8\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = JSON.parse("{\"rows\":[{\"kind\":128,\"name\":\"AbstractError\",\"url\":\"classes/AbstractError.html\",\"classes\":\"\"},{\"kind\":1024,\"name\":\"description\",\"url\":\"classes/AbstractError.html#description\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":2048,\"name\":\"fromJSON\",\"url\":\"classes/AbstractError.html#fromJSON\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AbstractError.html#constructor\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/AbstractError.html#data\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/AbstractError.html#cause\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":1024,\"name\":\"timestamp\",\"url\":\"classes/AbstractError.html#timestamp\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":262144,\"name\":\"description\",\"url\":\"classes/AbstractError.html#description-1\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":2048,\"name\":\"toJSON\",\"url\":\"classes/AbstractError.html#toJSON\",\"classes\":\"\",\"parent\":\"AbstractError\"},{\"kind\":4,\"name\":\"utils\",\"url\":\"modules/utils.html\",\"classes\":\"\"},{\"kind\":64,\"name\":\"checkError\",\"url\":\"functions/utils.checkError.html\",\"classes\":\"\",\"parent\":\"utils\"},{\"kind\":4194304,\"name\":\"POJO\",\"url\":\"types/POJO.html\",\"classes\":\"\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/POJO.html#__type\",\"classes\":\"\",\"parent\":\"POJO\"},{\"kind\":4194304,\"name\":\"Class\",\"url\":\"types/Class.html\",\"classes\":\"\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"types/Class.html#__type\",\"classes\":\"\",\"parent\":\"Class\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,23.671]],[\"comment/0\",[]],[\"name/1\",[1,18.563]],[\"comment/1\",[]],[\"name/2\",[2,23.671]],[\"comment/2\",[]],[\"name/3\",[3,23.671]],[\"comment/3\",[]],[\"name/4\",[4,23.671]],[\"comment/4\",[]],[\"name/5\",[5,23.671]],[\"comment/5\",[]],[\"name/6\",[6,23.671]],[\"comment/6\",[]],[\"name/7\",[1,18.563]],[\"comment/7\",[]],[\"name/8\",[7,23.671]],[\"comment/8\",[]],[\"name/9\",[8,23.671]],[\"comment/9\",[]],[\"name/10\",[9,23.671]],[\"comment/10\",[]],[\"name/11\",[10,23.671]],[\"comment/11\",[]],[\"name/12\",[11,18.563]],[\"comment/12\",[]],[\"name/13\",[12,23.671]],[\"comment/13\",[]],[\"name/14\",[11,18.563]],[\"comment/14\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":11,\"name\":{\"12\":{},\"14\":{}},\"comment\":{}}],[\"abstracterror\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"cause\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"checkerror\",{\"_index\":9,\"name\":{\"10\":{}},\"comment\":{}}],[\"class\",{\"_index\":12,\"name\":{\"13\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"data\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"description\",{\"_index\":1,\"name\":{\"1\":{},\"7\":{}},\"comment\":{}}],[\"fromjson\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"pojo\",{\"_index\":10,\"name\":{\"11\":{}},\"comment\":{}}],[\"timestamp\",{\"_index\":6,\"name\":{\"6\":{}},\"comment\":{}}],[\"tojson\",{\"_index\":7,\"name\":{\"8\":{}},\"comment\":{}}],[\"utils\",{\"_index\":8,\"name\":{\"9\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/docs/classes/AbstractError.html b/docs/classes/AbstractError.html index 01ad817..d1684de 100644 --- a/docs/classes/AbstractError.html +++ b/docs/classes/AbstractError.html @@ -292,6 +292,7 @@

@matrixai/errors diff --git a/docs/functions/utils.checkError.html b/docs/functions/utils.checkError.html new file mode 100644 index 0000000..dfd4aa9 --- /dev/null +++ b/docs/functions/utils.checkError.html @@ -0,0 +1,79 @@ +checkError | @matrixai/errors
+
+ +
+
+
+
+ +

Function checkError

+
+
    + +
  • +

    Checks an error against a predicate recursively. +This handles both AggregateError and Error. +This recursively checks against the cause property.

    +
    +
    +

    Parameters

    +
      +
    • +
      error: unknown
    • +
    • +
      p: ((error) => boolean)
      +
        +
      • +
          +
        • (error): boolean
        • +
        • +
          +

          Parameters

          +
            +
          • +
            error: unknown
          +

          Returns boolean

    • +
    • +
      visited: Set<unknown> = ...
    +

    Returns boolean

    +
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 77cebfd..964e4ca 100644 --- a/docs/index.html +++ b/docs/index.html @@ -18,7 +18,7 @@

@matrixai/errors

Installation

npm install --save @matrixai/errors
 

Development

Run nix-shell, and once you're inside, you can use:

-
# install (or reinstall packages from package.json)
npm install
# build the dist
npm run build
# run the repl (this allows you to import from ./src)
npm run ts-node
# run the tests
npm run test
# lint the source code
npm run lint
# automatically fix the source
npm run lintfix +
# install (or reinstall packages from package.json)
npm install
# build the dist
npm run build
# run the repl (this allows you to import from ./src)
npm run tsx
# run the tests
npm run test
# lint the source code
npm run lint
# automatically fix the source
npm run lintfix

Docs Generation

npm run docs
 
@@ -67,6 +67,7 @@

@matrixai/errors diff --git a/docs/modules.html b/docs/modules.html index db3af73..6b06691 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -16,6 +16,10 @@

@matrixai/errors

Index

+

Namespaces

+
+

Classes

@@ -40,8 +44,9 @@

Member Visibility

Theme

diff --git a/docs/modules/utils.html b/docs/modules/utils.html new file mode 100644 index 0000000..26e441e --- /dev/null +++ b/docs/modules/utils.html @@ -0,0 +1,55 @@ +utils | @matrixai/errors
+
+ +
+
+
+
+ +

Namespace utils

+
+
+

Index

+
+

Functions

+
+
+ +
+
+

Generated using TypeDoc

+
\ No newline at end of file diff --git a/docs/types/Class.html b/docs/types/Class.html index 47f1ad6..ed89861 100644 --- a/docs/types/Class.html +++ b/docs/types/Class.html @@ -54,6 +54,7 @@

Theme