0.5.12 • Published 1 month ago

@tinkoff/module-loader-server v0.5.12

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
1 month ago

module-loader-server

Загрузчик модулей для серверного окружения. Загружает файл по урлу, компилирует и выполняет модуль с помощью модуля vm, кэширует результат.

Установка

Для yarn:

yarn add @tinkoff/module-loader-server

Для npm:

npm install @tinkoff/module-loader-server

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

import { ServerLoader } from '@tinkoff/module-loader-server';

const loader = new ServerLoader();

loader.resolveByUrl('https://cdn.example.com/js/module.js').then((moduleExports) => {
  // ...
});

В конструктор можно передать опции (см. интерфейс LoaderDeps), из важных это параметр request который по умлочанию определяется библиотекой request, и содержит только deduplicate плагин.

Если вам нужны другие плагины или поведение при запросе на сервер, переопределите параметр request в конструкторе лоадера.

Взаимодействие с кешем

Допустим вам нужно сихронное апи для получения объекта, при условии что он есть в кэше. Тогда есть два способа.

Первый, используем метод loadByUrl<R>(url: string, options: LoadOptions), который возвращает Promise<R> если объекта нет в кеше, и R если он там есть:

const result = loader.loadByUrl(url);
if (!isPromise(result)) {
  syncOperation(result);
} else {
  asyncOperation(result);
}

Второй, можно использовать метод getByUrl<R = any>(url: string, options: LoadOptions = {}): R | void, который возвращает объект, только если он присутствует в кеше:

const result = loader.getByUrl(url);
if (result !== void 0) {
  syncOperation(result);
} else {
  asyncOperation(loader.resolveByUrl(url));
}

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

@inline src/types.h.ts

0.7.1

1 month ago

0.6.3

4 months ago

0.6.2

4 months ago

0.6.1

7 months ago

0.6.0

7 months ago

0.5.12

11 months ago

0.5.11

12 months ago

0.5.10

1 year ago

0.5.8

1 year ago

0.5.9

1 year ago

0.5.7

1 year ago

0.5.6

1 year ago

0.5.4

2 years ago

0.5.5

1 year ago

0.5.3

2 years ago

0.5.2

2 years ago

0.4.46

2 years ago

0.4.45

2 years ago

0.4.42

2 years ago

0.4.43

2 years ago

0.4.44

2 years ago

0.4.41

2 years ago

0.4.40

2 years ago