Security News
Cloudflare Adds Security.txt Setup Wizard
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
tracked-built-ins
Advanced tools
This addon provides tracked versions of JavaScript's built-ins:
import {
TrackedObject,
TrackedArray,
TrackedMap,
TrackedSet,
TrackedWeakMap,
TrackedWeakSet,
} from 'tracked-built-ins';
These classes have the same APIs as their native equivalents, but reading from them or writing to them will be tracked, allowing you to use them in your Ember apps and have changes automatically propagate!
Also included is an enhanced version of the @tracked
decorator, which
automatically shallow-wraps the native versions of these classes:
import { tracked } from 'tracked-built-ins';
class Foo {
@tracked value = 123;
obj = tracked({});
arr = tracked([]);
map = tracked(Map);
set = tracked(Set);
weakMap = tracked(WeakMap);
weakSet = tracked(WeakSet);
}
Note: This addon does NOT support IE 11 or older browsers. If you need to support them, consider using tracked-maps and sets instead.
ember install tracked-built-ins
See the MDN documentation for each class to learn more about it:
All public APIs are the same, with a few exceptions:
new TrackedArray()
should receive an array instead of variable number of
arguments. This decision was due to the confusing nature of new Array()
in
general, and for symmetry with the other new
APIs.
// bad
new TrackedArray(123);
new TrackedArray('foo', 'bar', 'baz');
// good
new TrackedArray([123]);
new TrackedArray(['foo', 'bar', 'baz']);
new TrackedObject()
returns a copy of the object passed back to it,
whereas new Object()
will return the original object. This is to prevent
accidentally mutating the original object.
let original = {};
let obj = new TrackedObject(original);
obj.foo = 123;
original.foo; // undefined;
Static Array
and Object
methods that do not create a new Array/Object
have been omitted. In general, you should use the original static methods for
these features, since autotracking has nothing to do with them. The static
methods that are supported are:
Array
from
of
Object
fromEntries
Object.create
has also been omitted, even though it creates an instance,
because manual prototype manipulation is an advanced use case in general that
is not currently supported.
All types will also register as instanceof
their base type, so they can be
used as fully transparent replacements in most circumstances.
This project follows the current draft of the Semantic Versioning for TypeScript Types specification.
-private
module are publicSee the Contributing guide for details.
This project is licensed under the MIT License.
v3.3.0 (2023-09-22)
FAQs
Tracked versions of JavaScript's built-in classes!
The npm package tracked-built-ins receives a total of 37,283 weekly downloads. As such, tracked-built-ins popularity was classified as popular.
We found that tracked-built-ins demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.
Security News
ENISA’s 2024 report highlights the EU’s top cybersecurity threats, including rising DDoS attacks, ransomware, supply chain vulnerabilities, and weaponized AI.