STARTPOINT_DEV Telegram 155
Недавно увидела в одной статье аббревиатуру REPL, которая оказалась для меня на первый взгляд незнакомой. Но на самом деле, я знаю, что это такое, и хочу, чтобы теперь знали и вы)

REPL — это Read–Eval–Print–Loop: интерактивная оболочка, в которой можно писать JavaScript-код построчно, и он сразу выполняется. Похоже на консоль в инструментах разработчика в браузере.

Когда мы просто запускаем node в терминале и дальше можем писать разные команды вида 2 + 2 — вот это и есть REPL.

Неожиданность для меня была в другом. В Node.js есть отдельный модуль для REPL. С его помощью можно встроить собственный REPL прямо в код, например, для дебага приложения.

Такой подход используется и в NestJS. Запустить REPL там можно командой npm run start -- --entryFile repl, если заранее настроен файл repl.ts (документация). Там можно получить доступ к инстансам сервисов и вызывать их методы руками. И для реализации такого механизма NestJS как раз использует модуль repl, исходники можно посмотреть тут.

А волшебный доступ ко всем сервисам приложения реализуется с помощью дополнения контекста repl. Вот так можно сделать свой микро-repl с доступными в контексте переменными и функциями:

import repl from 'node:repl';

const context = {
hello: 'world',
add: (a, b) => a + b,
};

const r = repl.start('> ');
Object.assign(r.context, context)


Вывод будет вот такой:

node repl-test.js
> hello
'world'
> add(2, 3)
5
>


#startpoint_dev_nodejs
🔥18👍42



tgoop.com/startpoint_dev/155
Create:
Last Update:

Недавно увидела в одной статье аббревиатуру REPL, которая оказалась для меня на первый взгляд незнакомой. Но на самом деле, я знаю, что это такое, и хочу, чтобы теперь знали и вы)

REPL — это Read–Eval–Print–Loop: интерактивная оболочка, в которой можно писать JavaScript-код построчно, и он сразу выполняется. Похоже на консоль в инструментах разработчика в браузере.

Когда мы просто запускаем node в терминале и дальше можем писать разные команды вида 2 + 2 — вот это и есть REPL.

Неожиданность для меня была в другом. В Node.js есть отдельный модуль для REPL. С его помощью можно встроить собственный REPL прямо в код, например, для дебага приложения.

Такой подход используется и в NestJS. Запустить REPL там можно командой npm run start -- --entryFile repl, если заранее настроен файл repl.ts (документация). Там можно получить доступ к инстансам сервисов и вызывать их методы руками. И для реализации такого механизма NestJS как раз использует модуль repl, исходники можно посмотреть тут.

А волшебный доступ ко всем сервисам приложения реализуется с помощью дополнения контекста repl. Вот так можно сделать свой микро-repl с доступными в контексте переменными и функциями:


import repl from 'node:repl';

const context = {
hello: 'world',
add: (a, b) => a + b,
};

const r = repl.start('> ');
Object.assign(r.context, context)


Вывод будет вот такой:

node repl-test.js
> hello
'world'
> add(2, 3)
5
>


#startpoint_dev_nodejs

BY Настя Котова // Frontend & Node.js


Share with your friend now:
tgoop.com/startpoint_dev/155

View MORE
Open in Telegram


Telegram News

Date: |

Invite up to 200 users from your contacts to join your channel Telegram Channels requirements & features To view your bio, click the Menu icon and select “View channel info.” ZDNET RECOMMENDS With the “Bear Market Screaming Therapy Group,” we’ve now transcended language.
from us


Telegram Настя Котова // Frontend & Node.js
FROM American