Telegram Web Link
πŸ“₯ The Birth of Prettier

The author takes us back ten years to the genesis of Prettier, the popular opinionated, deterministic code formatter he co-created with James Long. Prettier effectively introduced and popularized the practice of fully-automated AST-based code formatting in the JavaScript ecosystem.

Christopher Chedeau (Vjeux)
Please open Telegram to view this post
VIEW IN TELEGRAM
❀11πŸ‘2πŸ”₯1
CHALLENGE

class Calculator {
static multiply(a, b) {
return a * b;
}

static add = (a, b) => {
return a + b;
}
}

class ScientificCalculator extends Calculator {
static multiply(a, b) {
return super.multiply(a, b) * 2;
}
}

console.log(Calculator.multiply(3, 4));
console.log(ScientificCalculator.add(5, 6));
console.log(ScientificCalculator.multiply(2, 3));
❀3
❀4πŸ€”3πŸ‘2πŸ”₯2
πŸ‘€ Viz.js 3.20: Work with Graphviz in the Browser

Graphviz is a suite of open source graph drawing tools of over 30 years’ vintage. Viz.js is a WebAssembly Graphviz build that brings its functionality into the browser. GitHub repo.

Michael Daines
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ‘2πŸ”₯1
CHALLENGE

class Observable {
constructor(subscriber) {
this.subscriber = subscriber;
}

subscribe(observer) {
return this.subscriber(observer);
}

map(fn) {
return new Observable(observer => {
return this.subscribe({
next: value => observer.next(fn(value)),
error: err => observer.error(err),
complete: () => observer.complete()
});
});
}
}

const source = new Observable(observer => {
observer.next(1);
observer.next(2);
observer.complete();
});

const doubled = source.map(x => x * 2);
doubled.subscribe({
next: value => console.log(value),
complete: () => console.log('done')
});
❀4πŸ‘1πŸ”₯1
πŸ‘ The Firefox team has put together a way for you to give input on which Interop proposals matter the most to you (above). Go to the Interop Feature Ranking site (GitHub account required) and drag the web platform features that matter most for you to the top.
Please open Telegram to view this post
VIEW IN TELEGRAM
❀2πŸ‘1πŸ”₯1
CHALLENGE

const a = 9007199254740991n;
const b = BigInt(9007199254740991);
const c = 9007199254740992;
const d = BigInt(9007199254740992);

console.log(a === b);
console.log(Number(a) === c);
console.log(c === Number.MAX_SAFE_INTEGER + 1);
console.log(d > a);
console.log(typeof (a + 1n));
console.log(Number(d) === c);
CHALLENGE

const userInput = "<script>alert('xss')</script>";
const sanitized = userInput
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#x27;');

const credentials = {
username: 'admin',
password: 'secret123'
};

const safeLog = (obj) => {
const { password, ...safe } = obj;
return JSON.stringify(safe);
};

console.log(sanitized);
console.log(safeLog(credentials));
❀4πŸ”₯3πŸ‘1
CHALLENGE

const wm = new WeakMap();
const obj1 = {};
const obj2 = {};
const obj3 = obj1;

wm.set(obj1, 'first');
wm.set(obj2, 'second');
wm.set(obj3, 'third');

console.log(wm.get(obj1));
console.log(wm.get(obj2));
console.log(wm.get(obj3));
console.log(wm.has(obj1));
console.log(wm.size);
CHALLENGE

const data = '{"name": "Maria", "age": 25, "skills": ["JavaScript", "Python"]}';

try {
const parsed = JSON.parse(data);
const modified = {
...parsed,
age: parsed.age + 5,
skills: [...parsed.skills, "TypeScript"]
};

const serialized = JSON.stringify(modified, null, 0);
const reparsed = JSON.parse(serialized);

console.log(reparsed.skills.length);
console.log(typeof reparsed.age);
} catch (error) {
console.log('Parse error');
}
❀2
πŸ‘2πŸ”₯2πŸ€”2❀1
CHALLENGE

const numbers = [1, 2, 3, 4, 5];

const pipeline = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);

const multiply = (x) => (y) => x * y;
const add = (x) => (y) => x + y;
const square = (x) => x * x;

const transform = pipeline(
multiply(2),
add(3),
square
);

const result = numbers.map(transform);
console.log(result);
πŸ‘5❀1
🀟 Node.js v25.0.0 (Current) Released

The latest cutting edge version of Node has arrived with Web Storage enabled by default, JSON.stringify perf improvements, a new --allow-net option in the permission model, built-in Uint8Array base64/hex conversion, and WebAssembly and JIT optimizations. As shown in the diagram above, this means Node 24 will soon be promoted to being the 'active' LTS release and Node 22 will enter its 'maintenance' LTS phase.

Rafael Gonzaga
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5❀3πŸ”₯1
2025/10/21 21:25:28
Back to Top
HTML Embed Code: