Skip to content

Instantly share code, notes, and snippets.

@davlgd
Created March 7, 2024 22:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davlgd/79caad1d7195943143390555e419faa8 to your computer and use it in GitHub Desktop.
Save davlgd/79caad1d7195943143390555e419faa8 to your computer and use it in GitHub Desktop.
Node.js 21.7.0 features demo
// This is a quick Node.js 21.7.0 new features demo
// Update Node.js to 21.7.0 to run this code
// You can use nvm or Volta to sideload it
// Run this file with: node index.js
const { styleText } = require('node:util');
const { parseEnv } = require('node:util');
const { loadEnvFile } = require('node:process');
const crypto = require('node:crypto');
const fs = require('node:fs');
let message = styleText('bold', 'Hello, world!');
console.log(message);
message = styleText('italic', 'Hello, world!');
console.log(message);
message = styleText('underline', 'Hello, world!');
console.log(message);
message =
styleText('bold',
styleText('italic',
styleText('underline', 'Hello, world!')));
console.log(message);
console.log();
message = styleText('blue', 'Hello, world!');
console.log(message);
message = styleText('red', 'Hello, world!');
console.log(message);
message = styleText('green', 'Hello, world!');
console.log(message);
message = styleText('yellow', styleText('blink', 'Hello, world!'));
console.log(message);
const fileName = 'lorem.txt.demo';
const envName = '.env.demo';
const shaType = 'sha512';
const enVars = `NODE_ENV=production
HOST=0.0.0.0
PORT=3000`;
const loremContent = `Lorem ipsum dolor sit amet consetetur sadipscing elitr sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat sed diam voluptua at vero eos et accusam et justo duo dolores et ea rebum stet clita kasd gubergren no sea takimata sanctus est lorem ipsum dolor sit amet.
Minim diam at ipsum tempor. Augue feugait luptatum in lorem tincidunt sed eros elitr aliquip suscipit. Diam molestie sanctus ut. Sadipscing iriure dolor rebum et justo diam nonumy dolore ut sit ipsum ut lorem. No nihil eu lorem sea.
Erat no euismod diam elitr diam erat velit. Diam kasd ipsum sit est laoreet diam commodo laoreet exerci congue hendrerit in vel et takimata accusam est. Elitr sanctus volutpat id at clita kasd et ut sit te et gubergren sadipscing eos takimata sadipscing.`;
fs.writeFileSync(envName, enVars);
fs.writeFileSync(fileName, loremContent);
const loremFile = fs.readFileSync(fileName)
const fileHash = crypto.hash(shaType, loremFile.toString());
console.log();
console.log(`${fileName} (${shaType}):`);
console.log(`${fileHash}`);
loadEnvFile(envName);
console.log();
console.log('Environment variables loaded from .env file:');
console.log(process.env.NODE_ENV);
console.log(process.env.HOST);
console.log(process.env.PORT);
console.log();
console.log('Raw env vars:');
console.log(enVars);
console.log();
console.log('Parsed env vars:');
console.log(parseEnv(enVars));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment