npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@edheldor/simple-cors-proxy

v0.1.1

Published

Простой CORS‑прокси на Node.js (Express + `http-proxy-middleware`) для обхода ограничений CORS. Подходит как для локальной разработки, так и для использования в виде глобальной npm‑утилиты или скомпилированного бинарника.

Readme

Simple CORS Proxy

Простой CORS‑прокси на Node.js (Express + http-proxy-middleware) для обхода ограничений CORS.
Подходит как для локальной разработки, так и для использования в виде глобальной npm‑утилиты или скомпилированного бинарника.


Возможности

  • Обход CORS – добавляет заголовок Access-Control-Allow-Origin: * ко всем ответам.
  • Поддержка preflight‑запросов – корректно отвечает на OPTIONS‑запросы
  • Гибкая конфигурация цели – целевой URL задаётся через:
    • флаг --target / -t,
    • либо переменную окружения TARGET_URL,
  • Гибкая конфигурация порта – порт задаётся через:
    • флаг --port / -p,
    • либо переменную окружения PORT,
    • либо значение по умолчанию (3000).
  • CLI‑утилита – можно устанавливать как глобальный npm‑пакет и вызывать командой simple-cors-proxy.
  • Бинарники через pkg – сборка в standalone‑исполняемые файлы для Windows, Linux и macOS.
  • Красивое логирование – все запросы логируются с помощью signale.

Установка

Установка из исходников (локальная разработка)

git clone <URL_РЕПОЗИТОРИЯ>
cd Simple-CORS-proxy
npm install

Установка как глобальная npm‑утилита

npm install -g @edheldor/simple-cors-proxy

После этого команда simple-cors-proxy будет доступна глобально.


CLI‑интерфейс

Поддерживаемые флаги:

  • -p, --port – порт локального прокси‑сервера.
  • -t, --target – целевой URL, на который проксируются запросы (обязательно с http:// или https://).
  • -h, --help – показать справку и выйти.

Переменные окружения:

  • PORT – порт локального прокси (по умолчанию 3000).
  • TARGET_URL – целевой URL (по умолчанию https://example.com).

Приоритет значений:

  1. CLI‑флаг (--port, --target)
  2. Переменная окружения (PORT, TARGET_URL)
  3. Вшитое значение по умолчанию

Примеры запуска

1. Прямой запуск через Node.js

Минимальный запуск (всё по умолчанию)

node server.js

Что произойдёт:

  • Порт: 3000
  • Цель: https://example.com

Указать только целевой URL (через env)

TARGET_URL=https://api.example.com node server.js

Указать только порт (через env)

PORT=4000 node server.js

Указать и порт, и цель (через env)

PORT=4000 TARGET_URL=https://api.example.com node server.js

Указать порт и цель через CLI‑флаги

node server.js --port 4000 --target https://api.example.com

Смешанный вариант: порт через CLI, URL через env

TARGET_URL=https://api.example.com node server.js --port 5000

Показать справку по CLI

node server.js --help
# или
node server.js -h

Запуск через npm‑scripts

В package.json определены скрипты:

  • run – обычный запуск:

    npm run run
    # под капотом: node server.js
  • run:example – пример запуска с заданными флагами:

    npm run run:example
    # под капотом: node server.js --port 4000 --target https://api.example.com
  • dev – запуск в режиме разработки (с авто‑перезапуском через nodemon):

    npm run dev
    # под капотом: nodemon server.js
  • dev:example – пример dev‑запуска с заданными флагами:

    npm run dev:example
    # под капотом: nodemon server.js --port 4000 --target https://api.example.com

Передача своих флагов в npm‑скрипты

Всё, что идёт после --, передаётся в server.js как аргументы командной строки:

# Задать свой порт и целевой URL при запуске обычного скрипта
npm run run -- --port 5000 --target https://my.api.com

# То же самое в dev-режиме с nodemon
npm run dev -- --port 8080 --target https://backend.local

Можно комбинировать с env‑переменными:

PORT=5000 TARGET_URL=https://api.example.com npm run run

Использование как глобальной npm‑утилиты

После установки:

npm install -g @edheldor/simple-cors-proxy

Команда simple-cors-proxy будет доступна из любого места.

Примеры

Запуск с параметрами по умолчанию

simple-cors-proxy

Задать целевой URL и порт через флаги

simple-cors-proxy --port 4000 --target https://api.example.com

Задать параметры через переменные окружения

PORT=5000 TARGET_URL=https://api.example.com simple-cors-proxy

Смешанный вариант

TARGET_URL=https://api.example.com simple-cors-proxy --port 8080

Показать справку

simple-cors-proxy --help

Сборка бинарников через pkg

Проект настроен для сборки в standalone‑исполняемые файлы с помощью pkg.
Конфигурация хранится в package.json (секция pkg).

Общая сборка

npm run build

Соберутся бинарники для:

  • node18-linux-x64
  • node18-win-x64
  • node18-macos-x64

Файлы появятся в папке dist/.

Сборка под конкретную платформу

  • Windows:

    npm run build:win
  • Linux:

    npm run build:linux
  • macOS:

    npm run build:mac

Запуск бинарников с параметрами

pkg сохраняет и process.argv, и переменные окружения, так что параметры работают так же, как и у node server.js.

Linux / macOS

# только бинарник, всё по умолчанию
./dist/simple-cors-proxy-linux

# задать порт и целевой URL через флаги
./dist/simple-cors-proxy-linux --port 4000 --target https://api.example.com

# задать через env
PORT=5000 TARGET_URL=https://api.example.com ./dist/simple-cors-proxy-linux

Windows (PowerShell)

.\dist\simple-cors-proxy-win.exe

.\dist\simple-cors-proxy-win.exe --port 4000 --target https://api.example.com

$env:PORT = 5000
$env:TARGET_URL = "https://api.example.com"
.\dist\simple-cors-proxy-win.exe

Windows (cmd)

dist\simple-cors-proxy-win.exe

dist\simple-cors-proxy-win.exe --port 4000 --target https://api.example.com

set PORT=5000
set TARGET_URL=https://api.example.com
dist\simple-cors-proxy-win.exe

Конфигурация и расширение

Основная логика находится в server.js:

  • Настройка порта и целевого URL.
  • Обработка preflight‑запросов.
  • Логирование запросов.
  • Настройка прокси (createProxyMiddleware).

Что можно поменять/расширить:

  • Добавить авторизацию (например, по токену или API‑ключу) перед проксированием.
  • Фильтровать/переписывать заголовки запросов и ответов.
  • Ограничивать список допустимых методов / путей.
  • Добавить более строгую CORS‑конфигурацию (не *, а конкретные origin).

Форматирование кода

В проекте используется Prettier:

npm run format

Проверка без автозамен:

npm run format:check

Автор

Edheldor


Используемые библиотеки