Сила междоменного пакета JavaScript от PayPal заключается в том, что, поскольку код должен работать на большом количестве сторонних веб-сайтов и других доменов, не вызывая проблем, он разработан таким образом, чтобы избежать ошибок. PayPal только что открыл исходный код всего пакета.
Вы должны помнить, что ключевое качество этих библиотек заключается в том, что они написаны таким образом, чтобы не нарушать работу других веб-сайтов и не нарушать работу ими в свою очередь. Все дело в защитном JavaScript.
Подробное и интересное описание различных инструментов в пакете было опубликовано на Medium, но вот краткое описание инструментов, которые предоставляет комплект:
Grumbler — это шаблон для написания распространяемых интерфейсных модулей JavaScript. Он описывается как объединение некоторых из лучших инструментов сборки, что позволяет вам просто писать код и забыть о деталях сборки и распространения.
Пост-робот обеспечивает последовательный и надежный способ отправки сообщений и получения ответов с использованием простого шаблона слушатель / клиент.
Xcomponent можно использовать для рендеринга iframe без настройки единственного прослушивателя сообщений — вы просто передаете данные и функции прямо в iframe.
Cross-domain-utils создает библиотеку служебных методов для работы с общими вариантами использования, упрощая работу с междоменными окнами.
Coss-domain-safe-weakmap позволяет хранить данные в окнах. Он работает надежно и согласованно с междоменными окнами в качестве ключей, используя встроенную реализацию WeakMap, если она доступна.
Zalgo-prom переводит все обещания в синхронный режим по умолчанию, чтобы они работали во всех браузерах.
Beaver-logger решает проблему незнания, вызывает ли ваш код какие-либо случаи ошибок в дикой природе и взламывает чей-либо сайт. Он объединяет ваши журналы и периодически сбрасывает их на ваш сервер.
Fetch-robot Выполняет загрузку прокси-сервера через iframe. Это новый экспериментальный модуль, который позволяет вам публиковать манифест в одном месте, определяя, какие URL-адреса могут вызываться, кем и с какими заголовками и другими полями. Это позволяет избежать необходимости настраивать все конечные точки на вашем сервере для возврата правильных заголовков для CORS.