JavaScript
31.9K subscribers
1.01K photos
9 videos
33 files
693 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
πŸ‘ Bare: A New Lightweight Runtime for Modular JS Apps

Imagine something like Node.js but really stripped back: bare, if you will. Like Node, it’s built on top of V8 and libuv (though it's designed to support multiple JavaScript engines) but Bare’s approach is to provide as little as possible (a module system, addon system, and thread support) and then rely upon userland modules that can evolve independently of Bare itself. It’s an interesting idea – more details here.

Holepunch
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5πŸ‘4πŸ”₯2
CHALLENGE

async function test() {
console.log('1');

setTimeout(() => {
console.log('2');
}, 0);

await Promise.resolve();
console.log('3');

new Promise(resolve => {
console.log('4');
resolve();
}).then(() => {
console.log('5');
});

console.log('6');
}

test();
console.log('7');
πŸ‘5❀3πŸ”₯1
❀14πŸ€”6πŸ‘3
πŸ‘€ Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot

One of Deno’s compelling features is its support for Jupyter Notebooks and easy notebook-style programming, such as is common in the Python world. Trevor looks at a practical use of using such a notebook environment for data exploration.

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

function getCity(person) {
return person?.address?.city ?? 'Unknown';
}

const data = [
null,
{ name: 'Alice' },
{ name: 'Bob', address: null },
{ name: 'Charlie', address: { street: '123 Main' } },
{ name: 'David', address: { city: 'Boston' } }
];

const cities = data.map(getCity);
console.log(cities);
πŸ‘3❀1
🀨 Anime.js 4.0: A JS Animation Library for the Web

If you’re tired of Web animations, maybe Anime.js will refresh your appetite. This is a major upgrade to a mature library for animating CSS properties, SVGs, the DOM, and JS objects. It’s smooth, well-built, and now complete with fresh documentation.

Julian Garner
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ‘5πŸ”₯4
CHALLENGE

const p1 = Promise.resolve(1);
const p2 = new Promise(resolve => resolve(2));
const p3 = new Promise(resolve => setTimeout(() => resolve(3), 0));
const p4 = Promise.reject(4).catch(err => err);

Promise.all([p1, p2, p3, p4])
.then(values => {
const result = values.reduce((acc, val) => {
return acc + val;
}, 0);
console.log(result);
})
.catch(err => console.log('Error:', err));
❀5πŸ‘1
❀7πŸ€”5πŸ‘2
CHALLENGE

const obj = {
[Symbol('a')]: 'hidden',
[Symbol.for('b')]: 'registered',
c: 'normal'
};

const symbols = Object.getOwnPropertySymbols(obj);
const keys = Object.keys(obj);
const allProps = Reflect.ownKeys(obj);

console.log(symbols.length, keys.length, allProps.length);
πŸ‘3❀2
What is the output?
Anonymous Quiz
26%
2 3 5
42%
2 1 3
21%
3 1 3
11%
0 1 1
πŸ‘8❀5πŸ”₯2🀣2πŸ€”1
🀟 Node.js Testing Best Practices

A detailed guide to modern testing in Node from a group of developers who know all about it. It’s on GitHub but is essentially written like a free book covering over 50 battle-tested tips covering areas as diverse as the β€˜Testing Diamond’, testing microservices, checking contracts, verifying OpenAPI correctness, and simulating flaky network conditions.

Goldberg, Salomon, and Gluskin
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘9πŸ”₯3❀2
CHALLENGE

function createCounter() {
let count = 0;

return function() {
count++;
return count;
};
}

const counter1 = createCounter();
const counter2 = createCounter();

counter1();
counter1();
counter2();

const result = counter1() + counter2();
console.log(result);
πŸ‘8πŸ€”8❀4
What is the output?
Anonymous Quiz
24%
3 + 2
38%
5
29%
3
8%
4
πŸ€”10
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6πŸ€”4❀2
CHALLENGE

// What will be logged when this code runs?
const counter = (() => {
let count = 0;

return {
increment() {
count += 1;
return this;
},
reset() {
count = 0;
return this;
},
get value() {
return count;
}
};
})();

const { increment, value } = counter;

increment();
counter.increment();

console.log(value);
🀣11πŸ‘7❀6πŸ€”3
What is the output?
Anonymous Quiz
25%
undefined
36%
2
23%
0
16%
1
πŸ‘8πŸ€”8🀣2
CHALLENGE

function processConfig(config) {
const defaultPort = 8080;
const defaultTimeout = 5000;

const port = config?.port ?? defaultPort;
const timeout = config?.timeout ?? defaultTimeout;
const debug = config?.debug ?? false;

return {
summary: `Port: ${port}, Timeout: ${timeout}, Debug: ${debug ? 'enabled' : 'disabled'}`,
isUsingDefaults: port === defaultPort && timeout === defaultTimeout
};
}

const result = processConfig({ port: 0, timeout: null });
console.log(result.summary);
πŸ€”4πŸ‘3❀2πŸ”₯1
πŸ€– Firebase Studio: Google's New Agentic AI-Powered Development Environment

Buzzing from the success of Gemini 2.5 Pro for dev tasks, Google’s Firebase team gets in on the AI development action with a Cursor/v0/Lovable-a-like of its own for building apps in the browser.

Google
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8πŸ”₯4❀1