Skip to content

Commit

Permalink
πŸ› Add more default traps to the Magic class
Browse files Browse the repository at this point in the history
  • Loading branch information
skerit committed Nov 28, 2024
1 parent 37baaea commit b8b5528
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.9.5 (WIP)

* Add more default traps to the `Magic` class

## 0.9.4 (2024-10-19)

* Fix `RequestEvents` class restarting request that is already being handled
Expand Down
59 changes: 58 additions & 1 deletion lib/magic.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Magic.setMethod(function __get(name) {
});

/**
* MAgic property setter
* Magic property setter
*
* @author Jelle De Loecker <[email protected]>
* @since 0.6.6
Expand All @@ -57,6 +57,63 @@ Magic.setMethod(function __set(name, value) {
return this[name] = value;
});

/**
* Magic delete handler
*
* @author Jelle De Loecker <[email protected]>
* @since 0.9.5
* @version 0.9.5
*
* @param {string} name
*/
Magic.setMethod(function __delete(name) {
return delete this[name];
});

/**
* Get the "own" keys
*
* @author Jelle De Loecker <[email protected]>
* @since 0.9.5
* @version 0.9.5
*/
Magic.setMethod(function __ownKeys() {
return Object.keys(this);
});

/**
* See if this property exists
*
* @author Jelle De Loecker <[email protected]>
* @since 0.9.5
* @version 0.9.5
*/
Magic.setMethod(function has(name) {
return typeof this[name] != 'undefined' && name in this;
});

/**
* Define a property
*
* @author Jelle De Loecker <[email protected]>
* @since 0.9.5
* @version 0.9.5
*/
Magic.setMethod(function __define(key, descriptor) {
return Object.defineProperty(this, key, descriptor);
});

/**
* Get a property descriptor
*
* @author Jelle De Loecker <[email protected]>
* @since 0.9.5
* @version 0.9.5
*/
Magic.setMethod(function __describe(key) {
return Object.getOwnPropertyDescriptor(this, key);
});

/**
* The actual traps
*
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "protoblast",
"description": "Native object expansion library",
"version": "0.9.4",
"version": "0.9.5-alpha",
"author": "Jelle De Loecker <[email protected]>",
"keywords": [
"prototype",
Expand Down

0 comments on commit b8b5528

Please sign in to comment.