util
notification
Використовується для нотифікації користувачів в Email
Параметри
Параметр | Тип | Опис |
---|---|---|
template | string | Вказується шаблон який буде відправлено |
table | string | Вказується назва таблиці яка буде використана в шаблоні |
id | string | Вказується ідентифікатор об'єкту з таблиці |
from | string | Email відправника / Або береться з налаштувань |
to | string/Array string | Перелік Email кому відправити |
title | string | Заголовок повідомлення |
data | object | Дані для використання у шаблоні (якщо не вказано table) |
message | string | Текст повідомлення (якщо не вказано template) |
file | string/Array string | Файли, що додаються до повідомлення (шлях до файлів) |
Приклад
funcs.notification({
to: email,
template: 'change-password-email-template',
table: 'admin.users',
id: user?.uid,
title: `Recover password ${db.domain}`,
});
sign
euSign
Функція для електронного підпису файлу
Параметри
Параметр | Тип | Опис |
---|---|---|
filepath | string | Шлях до файлу, який потрібно підписати |
signPlace | string | Місце підпису у документі |
debug | boolean | Прапорець для режиму налагодження |
signName | string | Назва підпису (альтернатива signPlace) |
type | string | Тип підпису, 'internal' або 'external'. |
forceS3 | boolean | Прапорець, який вказує на необхідність використання сховища S3 |
Приклад
euSign({
filepath: path.join(db.folder, filepath),
type: 'internal',
signPlace: 'status_uservices' });
sign_verify
Перевіряє чи підписано файл
Параметри
Параметр | Тип | Опис |
---|---|---|
filepathSigned | string | Шлях до підписаного файлу, який потрібно перевірити |
Приклад
signVerify({ filepathSigned });
util
getSearchVariant
Дозволяє здійснювати транслітерацію для пошуку даних, коли введення відбувається на одній мові, а власне дані - на іншій. Підтримує клавіатурну розкладку: українську, російську, англійську.
Параметри
Параметр | Тип | Опис |
---|---|---|
_key | string | Рядок, який потрібно транслітерувати |
Приклад
getSearchVariant({ _key: 'яфйцукенгшщзхъэ.юбьтимсчывапролдж' });
event_stream_f
Створює та управляє потоком подій (event stream) для передачі даних у реальному часі до клієнта через HTTP.
Функція повертає функцію, яка приймає об'єкт res (відповідь сервера) і повертає об'єкт із методами send, event та stop.
Внутрішні функції:
- send(mes, data): Відправляє повідомлення або дані до клієнта через потік подій.
- event(name, mes): Генерує подію з заданим ім'ям та повідомленням.
- stop(e): Зупиняє потік подій та відправляє кінцеве повідомлення, може включати обробку помилок.
Приклад
const { send, stop } = await funcs.event_stream_f(res);
exec
Функція виконує JavaScript код або команди системи з використанням Node.js child_process
модуля та повертає результат виконання. Функція також підтримує кешування виконаних команд за допомогою Redis.
Параметри
Параметр | Тип | Опис |
---|---|---|
jsCode | string | JavaScript код або команда для виконання |
params | object | Об'єкт з додатковими параметрами |
Приклад
exec(cmd);
exec('ls -la', { cache: true });
requireNodeModule
Виклик модулів (бібліотек) з ноди
Параметри
Параметр | Тип | Опис |
---|---|---|
module | string | Назва модуля/бібліотеки |
Приклад
const fse = funcs.requireNodeModule('fs-extra');
translitFunction
Функція повертає рядок, транслітерований з кирилиці на латиницю.
Параметри
Параметр | Тип | Опис |
---|---|---|
dataArgs | string | Дані для транслітерації |
check | string | Додатковий параметр для форматування |
Приклад
translitFunction('Серце мліло, не хотіло. Співать на чужині...');
mergePdf
Функція призначена для об'єднання декількох PDF файлів в один. Вона використовує модуль pdfMerge
для об'єднання файлів та fs-extra
для збереження результату.
Параметри
Параметр | Тип | Опис |
---|---|---|
pdfStringList | Array | Масив рядків у форматі base64, які представляють PDF файли |
pathToSave | String | Шлях, за яким потрібно зберегти об'єднаний PDF файл |
filename | String | Назва для об'єднаного PDF файлу (необов'язковий) |
- У разі успіху, повертає об'єкт з полями
filename
таfilepath
. - У разі помилки, повертає об'єкт з полями
err
таstatus
.
Приклад
mergePdf({
pdfStringList: ['base64pdf1', 'base64pdf2'],
pathToSave: '/path/to/save/merged.pdf',
filename: 'merged',
});
request
Функція є обгорткою для відправлення HTTP запитів, використовуючи бібліотеку undici
. Вона підтримує кешування відповідей та обробку типів відповідей.
Параметри
Параметр | Тип | Опис |
---|---|---|
params | Object | Параметри запиту (url, method, responseType, та інші) |
opt | Object | Додаткові опції (cache, try). |
Приклад
const options = {
url: 'https://api.novaposhta.ua/v2.0/json/AddressGeneral/getSettlements/',
method: 'POST',
responseType: 'json',
body: {
apiKey: "a2b264f4b8221f3b47625008ca62a9cd",
modelName: 'Address',
calledMethod: 'getCities',
methodProperties: {
Ref: id,
Page: "1",
},
},
};
const data = await funcs.request(options, { cache: 1 });
gitList
API повертає інформацію про проект (package, readme, changelog, теги).
Параметри
Параметр | Тип | Опис |
---|---|---|
project | String | Вказується назва проекту / Якщо не вказано отримуємо інформацію про всі проекти які вказані в конфізі (Необов'язково) |
file | String | Вказується назва файлу changelog, readme. Отримуємо у форматі html інформацію з цих файлів / Якщо не вказано то отримуємо просто інформацію чи існує цей файл в проекті (true/false) (Необов'язково) |
- Інформацію про один проект
- Інформація про всі проекти
Приклад
/api-user/git-list?project=node&file=changelog,readme
Відповідь
Details
{
"projects": [
{
"name": "node", // Назва проекту
"version": "1.0.0", // Версія
"description": "A packaged foo fooer for fooing foos", // Опис
"homepage": "https://git.softpro.ua/softpro/node/-/blob/main/README.md", // Головна сторінка
"keywords": [ // Ключові слова
"core",
"api",
"node"
],
"man": "./man/doc.1", //
"license": "ISC", // Ліцензія
"author": "Softpro", // Автор
"repository": { // Інофрмація про репозиторій
"type": "git", // Тип
"url": "https://git.softpro.ua/softpro/node" // Посилання
},
"readme": "<h1>Структура</h1>", // Інформація з файлу readme
"changelog": "<p>test</p>\n", // Інформація з файлу changelog
"versionList": [ // Список версій
"1.0.1",
"1.0.2",
"1.0.3",
"1.0.4",
"1.0.5",
"1.0.6",
"1.0.7",
"1.1.0",
"1.1.1",
"1.1.2"
],
"lastVersion": { // Остання версія
"version": "1.1.2", // Версія
"date": "2024-01-11 12:06:18 +0200" // Дата
}
}
],
"status": 200 // Запит успішний
}
Приклад
/api-user/git-list?file=changelog
Відповідь
Details
{
"projects": [
{
"name": "node",
"version": "1.0.0",
"description": "A packaged foo fooer for fooing foos",
"homepage": "https://git.softpro.ua/softpro/node/-/blob/main/README.md",
"keywords": [
"core",
"api",
"node"
],
"man": "./man/doc.1",
"license": "ISC",
"author": "Softpro",
"repository": {
"type": "git",
"url": "https://git.softpro.ua/softpro/node"
},
"readme": true,
"changelog": "<p>test</p>\n",
"versionList": [
"1.0.1",
"1.0.2",
"1.0.3",
"1.0.4",
"1.0.5",
"1.0.6",
"1.0.7",
"1.1.0",
"1.1.1",
"1.1.2"
],
"lastVersion": { // Остання версія
"version": "1.1.2", // Версія
"date": "2024-01-11 12:06:18 +0200" // Дата
}
},
{
"name": "lviv",
"version": "1.0.0",
"description": "Містобудівний кадастр Львову",
"license": "ISC",
"author": "Softpro",
"repository": {
"type": "git",
"url": "https://git.softpro.ua/mbk1/lviv"
},
"readme": true,
"changelog": "",
"versionList": [ ]
},
{
"name": "bi",
"version": "1.0.0",
"description": "Аналітичний модуль",
"license": "ISC",
"author": "Softpro",
"repository": {
"type": "git",
"url": "https://git.softpro.ua/project/bi/-/tree/dev"
},
"readme": true,
"changelog": "",
"versionList": [
"0.1"
]
},
{
"name": "mbk",
"readme": true,
"changelog": "",
"versionList": [ ]
}
],
"status": 200
}