@tinkoff/module-loader-client
TypeScript icon, indicating that this package has built-in type declarations

0.6.7 • Public • Published

module-loader-client

Загрузчик модулей для браузерного окружения. Загружает js по урлу опционально вместе с css. Встроена дедубликация загрузки через атрибут скрипта loaded.

Установка

Для yarn:

yarn add @tinkoff/module-loader-client

Для npm:

npm install @tinkoff/module-loader-client

Подключение и использование

loadModule

В loadModule встроена дедубликация загрузки через поиск уже вставленного скрипта с тем же урлом, что позволяет инициировать загрузку скриптов на этапе разбора html, в этом случае вы должны самостоятельно навесить атрибут loaded скрипту, чтобы метод loadModule понимал загружен скрипт или еще нет:

<script
  src="https://cdn.example.com/bundle.js"
  onload="this.setAttribute('loaded', true)"
  onerror="this.setAttribute('loaded', 'error')"
/>

Пример использования:

import { loadModule } from '@tinkoff/module-loader-client';

loadModule('https://cdn.example.com/js/module.js', {
  cssUrl: 'https://cdn.example.com/js/module.css', // опционально
}).then(() => {
  // ...
});

addScript

Вставляет тег script без какой-либо дополнительной логики по дедубликации:

import { addScript } from '@tinkoff/module-loader-client';

addScript(src, maybeAttrs, maybeScriptHandler).then(() => something());

Коллбэк вызывается синхронно и принимает непосредственно script элемент.

addLink

Вставляет тег link без какой-либо дополнительной логики по дедубликации:

import { addLink } from '@tinkoff/module-loader-client';

addLink(type, href, maybeAttrs).then(() => something());

Интерфейс и типы

@inline src/types.h.ts

Readme

Keywords

none

Package Sidebar

Install

npm i @tinkoff/module-loader-client

Weekly Downloads

2

Version

0.6.7

License

Apache-2.0

Unpacked Size

17.1 kB

Total Files

18

Last publish

Collaborators

  • tinkoffbank
  • dmitry-korolev
  • yeahga
  • hondasmx
  • makar_l
  • rouland
  • ishivan
  • ytsareva
  • shoom3301
  • waterplea
  • meskill
  • marsibarsi
  • zig-green
  • super_oleg
  • dersizes
  • alexkvak
  • sradyukov