Что такое deno?
Deno – это безопасное время выполнения для JavaScript и Teadercript, создаваемого Ryan Dahl, который также бывает создателем Nodejs. Если вы никогда не слышали о Deno, я предлагаю вам посмотреть эти переговоры Ryan: он говорит о своих ошибках с Nodejs здесь и более глубокий взгляд в Deno здесь DENO в основном то, какие у Nodejs были бы, если бы это было написано сегодня. Теперь Deno по-прежнему является относительно новым проектом, и он еще не достиг V1.0, и хотя он не предназначен для замены Nodejs, он, безусловно, имеет перспективы, чтобы стать будущим JavaScript Side Side. Некоторые из основных ценностей, которые отличаются от Nodejs, включают в себя:
- Безопасность из коробки – явный доступ требуется для доступа к файлу, сети и среде.
- Различный модуль Management System – Deno не использует NPM и нет Node_Modules. Скорее, у него есть система управления модулем, похожее на то, где модули импортируются через URL.
- Встроенная поддержка SypercriptS – вы можете запустить файлы Teamscript непосредственно без компиляции JavaScript.
- Он построен с ржавчиной!
Я лично очень взволнован этим проектом, особенно из-за его поддержки Typeyctry. Тем не менее, это нигде недалеко от достижения NODEJS с точки зрения популярности и усыновления.
Давайте построим что-то!
В этой статье мы собираемся построить простой инструмент CLI для демонстрации некоторых функций разговор . Наша CLI будет взаимодействовать с API Cryptogurnence, чтобы получить живые данные.
Требование : Убедитесь, что у вас установлен DENO. Если вы этого не сделаете, обратитесь к этому ссылка Отказ Это довольно просто.
Проекты DENO обычно имеют файл входа под названием модуль
Так что мы собираемся начать здесь. Если вы кодируете вместе, создайте папку проекта рядом с вашим файлом ввода. Вот что выглядит каталог проекта:
Обзор:
Mod.ts
это наш входной файл.Makefile
Содержит полезные команды, которые обычно были в Package.json для проекта Node.js.Депонсс
Содержит все наши зависимости.Типы.d.ts
Содержит определения наших типов.Import_map.json
содержит наши карты импорта. Мы используем это, чтобы включить ясность и читаемость.
Наш CLI в основном собирается предоставить две команды. Один, чтобы получить и перечислить все цены за монет в пределах пределе и один, чтобы получить определенную монету, используя I d. Во-первых, нам нужно анализировать флаги, предоставляемые с каждой командой, и Deno предоставляет нам только то, что нам нужно от библиотеки STD. Так что мы собираемся импортировать анализ
Метод из флаги
модуль. Вот как мы импортируем модули в DENO:
В DONO модули импортируются с помощью URL, и они в первую очередь кэшируют ваше приложение, поэтому, даже если у вас нет подключения к Интернету в последующее время, ваше приложение все равно будет запустить. @ v0.38.0
В нашем импорте означает, что я импортирую из версии выпуска, которую я в настоящее время установил. Вы можете опустить это и просто импортировать из последней версии, если вы только что установили DENO. В коде выше, мы разрушаем args
Переменная от DENO
пространство имен, которое просто возвращает аргументы, переданные скрипту, мы передаем его на анализ
Способ, который возвращает объект, содержащий все аргументы, передаваемые в парах ключевых значений. Например, если мы запустим нашу программу как $ Crypto-Cli - Olimit 10
Возвращенный объект будет: {_: [], монеты: правда, лимит: 10}
Отказ Первая недвижимость в объекте всегда является массивом, содержащим все аргументы, которые не имели опции, связанной с ними (то есть не совпадают -f
или --flag
). Если вы не передаете соответствующее значение флага, он по умолчанию для правда
Отказ
Давайте выпишем функцию для нашей первой команды:
Здесь у нас есть асинхронная функция, которая возвращает данные из нашего вызова API. Мы делаем запрос Fetch (да, DENO имеет функциональность браузера встроенную) на конечную точку API, чтобы получить все монеты в рамках Ограничить
при условии. Оператор IF проверяет ли Ограничить
не был предоставлен и по умолчанию до 10.
Функция для второй команды выглядит очень похожу, только что я D
предусмотрен на этот раз.
Данные ответа от API содержат кучу информации, поэтому мы собираемся отфильтровать то, что нам нужно, и отформатируйте данные, которые мы хотим отображать.
В коде выше, formatdata
Функция принимает объект необработанного данных и возвращает строку названия монет и текущей ценой в USD
Отказ
Теперь давайте определим основную функцию, которая выполняет наши программные команды.
Функция выше – это IIFE который работает сразу, файл выполнен. У нас есть Переключатель
Заявление, чтобы проверить первый флаг, который был передан и вызывает соответствующую функцию. Дело по умолчанию просто отображает приветственное сообщение. У нас также есть Если
Условия для проверки дополнительных флагов, таких как Ограничить
Отказ
Чтобы проверить нашу программу, мы собираемся запустить $ deno run - allow-net mod.ts - CCOins --лимит 10
Отказ Мы должны получить следующий результат:
Вы, должно быть, заметили - Нота-сеть
Флаг передан в команду. Это пример первой безопасности DENO. Deno не может получить доступ к вашей сети, файлам или средам, не давая ему явного доступа. Так, например, если ваш код должен получить доступ к файловой системе, вам нужно будет запустить ее с - Прочитайте
флаг.
Это все, что есть для нашего инструмента CLI. Если вы хотите увидеть полный код, репозиторий связан здесь Отказ В заключение, Deno является очень захватывающим проектом, особенно потому, что вы получаете все преимущества Typearcript из коробки без необходимости компилировать ваши файлы на JS
Отказ Вы можете много строить с ним, начиная от программ CLI до HTTP-серверов. Посмотреть на Сборник из 3-го библиотек сторон И посмотрите, что люди строят.
Оригинал: “https://dev.to/unorthodev/build-a-simple-cli-tool-with-deno-1fmk”