JavaScript
31.6K subscribers
1.17K photos
10 videos
33 files
843 links
A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript 🚀 Don't miss our Quizzes!

Let's chat: @nairihar
Download Telegram
🌟 Bun v1.3.14 Adds Image Processing, HTTP/3, HTTP/2 Fetch and More

Another mammoth Bun release. Bun.Image is a new built-in image processing API which can replace Sharp in many cases. Bun’s package manager has added a global virtual store (akin to pnpm’s), Bun.serve has experimental HTTP/3 over QUIC support, and fetch gets HTTP/2 and HTTP/3 support. Plus the usual raft of Node.js compatibility improvements.

Jarred Sumner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🤔1
CHALLENGE

const handler = {
get(target, prop, receiver) {
if (prop in target) {
const value = Reflect.get(target, prop, receiver);
return typeof value === "number" ? value * 2 : value;
}
return `Property "${prop}" not found`;
},
set(target, prop, value) {
if (typeof value !== "number") {
throw new TypeError("Only numbers allowed");
}
Reflect.set(target, prop, value ** 2);
return true;
},
has(target, prop) {
return prop.startsWith("_") ? false : prop in target;
},
};

const store = new Proxy({ _secret: 99, score: 5 }, handler);

store.level = 3;

console.log(store.score);
console.log(store.level);
console.log("_secret" in store);
console.log("score" in store);
console.log(store._secret);
🔥2
CHALLENGE


class Range {
constructor(start, end, step = 1) {
this.start = start;
this.end = end;
this.step = step;
}

[Symbol.iterator]() {
let current = this.start;
const { end, step } = this;
return {
next() {
if (current <= end) {
const value = current;
current += step;
return { value, done: false };
}
return { value: undefined, done: true };
}
};
}
}

const range = new Range(1, 10, 3);
const result = [...range].map(n => n ** 2);
console.log(result);
4
CHALLENGE


const p1 = new Promise((resolve) => {
console.log("A");
resolve("B");
});

const p2 = p1.then((val) => {
console.log(val);
return "C";
});

p2.then((val) => console.log(val));

console.log("D");
What is the output?
Anonymous Quiz
29%
D A B C
33%
A B D C
25%
A D B C
14%
A B C D
4🤔2
CHALLENGE


class EventEmitter {
#listeners = new Map();

on(event, listener) {
if (!this.#listeners.has(event)) {
this.#listeners.set(event, []);
}
this.#listeners.get(event).push(listener);
return this;
}

emit(event, ...args) {
const handlers = this.#listeners.get(event) ?? [];
handlers.forEach(fn => fn(...args));
return this;
}
}

const emitter = new EventEmitter();
const log = [];

emitter
.on("data", val => log.push(`A:${val}`))
.on("data", val => log.push(`B:${val * 2}`))
.on("end", () => log.push("done"));

emitter.emit("data", 5).emit("data", 3).emit("end");

console.log(log.join(","));
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1