-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement code aliases. #140
Comments
bigeasy
pushed a commit
that referenced
this issue
Dec 2, 2020
Started aliases, but they are suggesting more complicated rules for inheritance, like aliases referencing aliases. Also need to figure out inheritance of aliases from the parent. See #140.
bigeasy
pushed a commit
that referenced
this issue
Dec 2, 2020
Don't imagine that people are going to create error classes from other modules, but if they do, they should be careful not to use existing templates since they are not public. Seems like maybe they should not be inherited, though. The user can always define a set of common templates in a module somewhere, as a builder function and import it to different modules in their code, so I'm liable to back out of this inheritance. Come to think of it, the messages are not public either. If you where to inherit the messages associated with codes you'd end up having to document the message formats. It really does make more sense to have a builder function and to specify your own symbols. Currently you could use someone else's `Error` class, like `TypeError`, but you can't use their formatting. See #140.
bigeasy
pushed a commit
that referenced
this issue
Dec 2, 2020
Thinking aloud about inheritance. Do not want to have descendent classes inherit templates by default. Don't really want it to happen at all, but certainly not by default. Looking to create a symbol based system, which is probably something of an abuse, certainly is uninviting, but the alternative is to do nothing and suggest the user defined reusable codes as a code function they share between exceptions. At least there's a mechanism. Who creates error hierarchies in JavaScript anyway? See #140. See #133.
bigeasy
pushed a commit
that referenced
this issue
Dec 3, 2020
Working through code definition and started with updating `create`'s `vargs` processing so that an array can include anything that is an argument and gets unshifted onto the `vargs` so that definitions are recursive. This means code functions can return arrays. Also, there's an ambiguity between an initial code function and the super class. They are both functions. See #140. See #133.
bigeasy
pushed a commit
that referenced
this issue
Dec 5, 2020
Appears to be a final draft of aliases or templates. Still not sure what to call them. Have a sketch of inheritance in the swipe. See #140.
bigeasy
pushed a commit
that referenced
this issue
Dec 9, 2020
* Delete unused swipe. See #97. * Remove `Context` class. Closes #144. * Documentation and test for `sprintf` errors. See #95. See #97. * Documentation on inheritance in `swipe.t.js`. See #97. See #133. * Clean up `README.md`. See #97. * Remove debugging message. * An integer argument sets stack trace limit. See #97. See #143. * Implement `toString()` and `inspect.util`. Closes #142. * Inheritance and aliases. * Import symbols using `symbol`. See #133. * Move existing inheritance into `swipe.t.js`. See #133. * Sorted out construction of aliases. See #140. * Rename `Merge.argument` to `combine`. See #140. See #97. * Move used verbiage to `swipe.t.js`. See #97. * Tidy newline printing in `readme.t.js`. See #97. * `codes` no longer reports templates. See #133. See #140. * Tidy declaration of codes lookup. See #133. See #140. * Options object can now go anywhere. See #117. * Sketch of plain code inheritance. See #133. See #141. * Non-enumerable properties in defaults. See #141. * Non-enumerable properties in constructor. See #141. * Corral class properties into `Prototype`. See #133. See #140. * `create` unshifts onto `vargs`. See #133. See #140. * Added thoughts about inheritance to docs. See #133. See #140. * Inheriting templates from super class. See #140. * Sketch of aliases. See #140. * Implement sprintf-only properties. Closes #127. * Document the appropriate use of error properties. See #97. * Derive from derived super class, inherit codes. Closes #133. * Moving some documentation around, diary entry. See #97. * Talk default properties and codes before JSON. See #97. * More documentation. See #97. * Convert nested Errors to Interrupt format. See #102. * Re-implementation of stack trace parser. See #102. * Sort out enumerability. Closes #128. * Thoughts on printing non-Error nested errors. * `code` returns an object. Closes #139. * Print not code if null, nor context if empty. Closes #137. * Reorganization, deliminate some dead code. See #97. * Additional documentation. See #97. * Create static function to get the error message. See #97. Closes #136. * Documentation and reorgainzation. See #97. * Remove old `interrupt.t.js` unit test. See #97. * Remove `assert`. See #131. * Actually using the circular reference JSON. See #130. * `Interrupt.Error` error codes for meta-errors. Closes #131. * Will not derive from `AggregateError`. Closes #116. * Implement a forgiving JSON serializer. Closes #130. * Use `Instances` instead of `MATERIAL`. * Created a context object for nested error context. Closes #135. * Display code in stack trace. * Add test temp directory to `.gitignore`. * Implement default properties by code. Closes #134. * Fix options merging. See #117. * Sketch of code inerhitence. See #133. * Sketch of audit, `sprintf` errors reported. See #114. Closes #122. * One rename of `properties` was skipped. See #129. * Reordered assistants in order of documentation. See #97. * Rename `context` to `properties`. Closes #129. * Currying appears to be finished. Closes #125. * Use the finalized deferred constructor. See #125. See #113. See #112. See #111. * Implement sync `try`/`catch` wapper. See #113. * Decide on `callback()` function signature. See #112. * Sketch of currying, implement `voptions`. See #125. See #111. Closes #126. * Settle on an argument order for constructor. See #117. Seem to have removed ambiguities. The first argument to the constructor * Documentation, discovered an ambiguity. See #97. * Sketch auditing, deferred construct. Assert docs. See #97. See #114. See #117. * Create `Symbol`s for error codes. Closes #124. * Fix `sprintf` format selection. See #117. * Fix `readme.t.js` example error formats. See #97. * Catch `sprintf` errors. See #117. See #122. * Assert that `Interrupt` is protected. Closes #123. * Rename `causes` to `errors. Closes #115. * Further sketch of named parameters. See #117. * Build with Node.js 15 on Travis CI. Closes #121. * Remove dead code. * Build with Node.js 15 on GitHub Actions. Closes #120. * Build with Node.js 14 on GitHub Actions. Closes #119. * Build with Node.js 14 at Travis CI. Closes #118. * Start named parameters, no constructor assertions. See #117. Closes #110. * Promise resolver, callback helper function. * Poking at the `readme.t.js`. See #97. * Change tagline. See #97. * Add a TODO. See #110. * Make `readme.t.js` a unit test. See #97. Closes #145.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add the ability to define a code name that is not a generated code or symbol, used to create a string table.
The text was updated successfully, but these errors were encountered: