jaxfis

1.0.3 • Public • Published

Модуль для работы с AJAX в Browser JS и Node.JS

Оглавление

 

 

Краткое описание

 

Jax это универсальный кросс-платформенный класс для отправки запросов из браузера на сервер, либо с сервера на сервер. Библиотека работает одинаково как на Node.JS так и в браузерах. Поддерживаются следующие запросы:

  • GET

  • POST

  • PUT

  • DELETE

По умолчанию для отправки запросов из браузера используется XMLHttpRequest, есть поддержка Fetch API. Для отправки с Node.JS используются стандартные пакеты Node - http/https. Различия в отправке данных с сервера и клиента заключаются только в отправляемых данных. Для удобства и поддержки кросплатформенности пакет включает в себя несколько вспомогательных классов - JFile, JFileList, JFormData и JBuffer. Для отправки запросов следует использовать методы и свойства Jax которые будут описаны ниже

 

 

Класс Jax

Поля и свойства

 

Jax.SEND_TYPES (Object)

Объект-перечисление представляющий способы отправки данных, имеет следующие значения:

  • URL - отправляет данные как закодированную URL-строку ( используется по умолчанию для GET и DELETE запросов ), нельзя отправлять файлы
  • JSON - отправляет данные в формате JSON
  • FORM - отправляет данные с заголовком multipart/form-data ( используется по умолчанию при отправке форм )  

 

Jax.RESPONSE_TYPES (Object)

Объект-перечисление представляющий формат получения ответа на запрос, имеет следующие значения

  • TEXT - возвращает ответ в виде текстовой строки
  • BUFFER - возвращает объект JBuffer
  • JSON - возвращает объект с данными из JSON
  • BLOB - возвращает объект Blob
  • DOC - В зависимости от используемого API возвращает разный результат  

 

Jax.CREDENTIALS (Object)

Объект-перечисление представляющий разрешения на отправку стандартных учетных данных, имеет следующие значения

  • NO_SEND - Не отправлять учетные данные при отправке запроса ( используется по умолчанию ) ( при отправке с помощью XMLHttpRequest, равен withCredentials=false )
  • SAME_ORIGIN - Отправляет учетные данные только если вызвающий скрипт находится в том же источнике что и URL-адрес запроса ( при отправке с помощью XMLHttpRequest, равен withCredentials=false )
  • ALL_SEND - Всегда отправляет учетные данные ( при отправке с помощью XMLHttpRequest, равен withCredentials=true )  

 

Jax.MIME_FILES (Array<[any,any]>) (только чтение)

Представляет массив mime-типов в котором тип и расширение хранятся по парам ( Пример: ['video/3gpp','.3gp'] )  

 

Jax.PROTOCOL (String) (только чтение)

(значение по умолчанию: 'http')

Возвращает протокол используемый по умолчанию для отправки запросов. (Для установки протокола см. Jax.setSSL())  

 

Jax.useFetch (Boolean)

Представляет логическое значение, указывающее следует ли использовать Fetch API вместо XMLHttpRequest при отправке запросов ( по умолчанию - false )( работает только для браузеров )  

 

Jax.isServer (Boolean)

Представляет логическое значение, определяющее откуда был запущен скрипт, из Node.JS или браузера ( определяется автоматически при использовании )  

 

Функции

Jax.setSSL(isSet)

Функция для установки протокола запросов. Протокол нужен в том случае если он не указан в URL-адресе запроса

Параметры:

  • isSet ( Boolean ) (не обязательный) - Логическое значение, если true - установит HTTPS (по умолчанию), если false - HTTP

Jax.get(url,params)

Функция для отправки GET-запроса

Параметры:

  • url ( String ) - URL-адрес отправки
  • params ( Object ) - Объект с параметрами запроса
    • params.headers ( Map<string,string>)(не обязательный ) - Коллекция дополнительных заголовков запроса, где ключ - наименование заголовка. Сontent-Type заголовок добавлять не нужно!
    • params.body ( Object | JFormData | FormData | Map | HTMLFormElement | string )( не обязательный ) - Тело запроса, может быть объектом, формой, HTML-элементом либо строкой(id формы, только для браузера), все данные будут закодированны в виде URL строки при отправке. Файлы отправлять нельзя
    • params.responseType ( String )( не обязательный ) - Устанавливает тип ответа, смотреть - Jax.RESPONSE_TYPES
    • params.credentials ( String )( не обязательный ) - Параметр для установки разрешения на отправку учетных данных, смотреть - Jax.CREDENTIALS
    • params.progress ( Function )( не обязательный ) - Callback-функция для получения текущего прогресса отправки данных ( не работает в Node.JS )

Возврат:

( Promise<object> ) В случае успешного выполнения вернет объект с результатом следующего вида

{
    success: true
    data: /*response*/ 
    headers: /*response headers Map*/
}

// Свойство data необходимо проверять на undefined, т.к. его может и не быть если с сервера был отправлен только код состояния

Пример GET-запроса:

Jax.get('http://example/jax-get',{
    body:{
        user:'TestUser',
        age:18,
        policy:true,
    }
}).then(result=>{
    console.log(result)
}).catch(err=>{
    console.error(err)
})

 


 

Jax.post(url,params)

Функция для отправки POST-запроса

Параметры:

  • url ( String ) - URL-адрес отправки
  • params ( Object ) - Объект с параметрами запроса
    • params.headers ( Map<string,string>)(не обязательный ) - Коллекция дополнительных заголовков запроса, где ключ - наименование заголовка. Сontent-Type заголовок добавлять не нужно!
    • params.body ( Object | JFormData | FormData | Map | HTMLFormElement | string )( не обязательный ) - Тело запроса, может быть объектом, формой, HTML-элементом либо строкой(id формы, только для браузера). Способ отправки зависит от нескольких факторов, подробнее об этом смотрите ниже - [Перейти]
    • params.sendType ( String )( не обязательный ) - Устанавливает способ отправки, смотреть - Jax.SEND_TYPES
    • params.responseType ( String )( не обязательный ) - Устанавливает тип ответа, смотреть - Jax.RESPONSE_TYPES
    • params.credentials ( String )( не обязательный ) - Параметр для установки разрешения на отправку учетных данных, смотреть - Jax.CREDENTIALS
    • params.progress ( Function )( не обязательный ) - Callback-функция для получения текущего прогресса отправки данных ( не работает в Node.JS )

Возврат:

( Promise<object> ) В случае успешного выполнения вернет объект с результатом следующего вида

{
    success: true
    data: /*response*/
    headers: /*response headers Map*/ 
}

Пример POST-запроса:

Jax.post('http://example/jax-post',{
    body:{
        user:'TestUser',
        age:18,
        policy:true,
    }
}).then(result=>{
    console.log(result)
}).catch(err=>{
    console.error(err)
})

Особенности POST

Случай №1:

При передаче параметра sendType, он может быть проигнорирован в случае если в body был передан id HTML-формы или HTMLFormElement, но только в том случае если в форме есть поля input c типом file. Тогда неважно какой тип был передан в sendType он по умолчанию будет заменен на multipart/form-data.

Случай №2:

Если в body был передан объект в свойствах которого есть значения типов JFile, JFileList, File, FileList, а sendType установлен как application/x-www-form-urlencoded (по умолчанию), то эти свойства будут игнорироваться.

Случай №3:

Если в body был передан объект в свойствах которого есть значения типов JFile, JFileList, File, FileList, а sendType установлен как application/json, то эти свойства будут сериализованы в JSON как пустые объекты, т.к. у объектов этих типов нет открытых свойств

Отправка файлов через POST

Для корректной отправки файлов рекомендуется устанавливать sendType в multipart/form-data (Jax.SEND_TYPES.FORM), и передавать данные в виде FormData, JFormData либо объекта. Примеры смотрите ниже.

Пример №1: Отправка с использованием id формы

Предположим что нужно передать форму с файлам с клиента(браузера) на сервер. На клиенте есть следующая форма для загрузки изображений:

<form id="form">
    <input type="text" id="email" name="email">
	<input type="file" id="file" name="photo" multiple>
	<button id="send-button" type="button">Send</button>
</form>

Запрос:

Jax.post('http://example/send-files',{
    body:'form'
}).then(result=>{
    console.log(result)
}).catch(err=>{
    console.error(err)
})

Запрос будет выполнен корректно и все данные переданные в форму буду конвертированы внутри запроса в multipart/form-data ( см. Случай№1 )

Пример №2: Отправка с использованием HTMLFormElement За основу возьмем HTML-форму с предыдущего примера

let form = document.getElementById('form')
if(form){
    Jax.post('http://example/send-files',{
        body:form
    }).then(result=>{
        console.log(result)
    }).catch(err=>{
        console.error(err)
    })
}

Так же как и в первом примере запрос будет успешно отработан

Пример №3: Отправка с использованием JFormData или Object

Данный способ подойдет когда нет HTMLFormElement на странице, либо при отправке с сервера на сервер(будет отличаться только способ загрузки файлов, подробнее см. JFile и JFileList).

Предположим что мы отправляем два файла и email пользователя с одного сервера на другой:

let form = new JFormData()
let files = await JFileList.load([
    './images/1.png',
    './images/2.png'
])
if(files && files?.length){
    form.set('images',files)
    form.set('email','example@mail.com')

    Jax.post('http://example/send-files',{
        body:form,
        sendType:Jax.SEND_TYPES.FORM //явно указываем способ отправки
    }).then(result=>{
        console.log(result)
    }).catch(err=>{
        console.error(err)
    })
}

Тоже самое но с использованием объекта:

let files = await JFileList.load([
    './images/1.png',
    './images/2.png'
])

if(files && files?.length){
    Jax.post('http://example/send-files',{
        body:{
            files,
            email:'example@mail.com' 
        },
        sendType:Jax.SEND_TYPES.FORM //явно указываем способ отправки
    }).then(result=>{
        console.log(result)
    }).catch(err=>{
        console.error(err)
    })
}

Если у вы хотите отправить только файлы, рекомендуется посмотреть Jax.file

Отправка POST/PUT запроса без параметров

Метод POST как и PUT допускается использовать без передачи params.body и других параметров, используя только URL, при этом если в строке адреса присутсвуют url encoded параметры они автоматически будут отправлены в теле запроса. Пример:

let url = Url.encode({user: 'TestUser', age: 18,},'http://example/send-url-post')
// В url: http://example/send-url-post?user=TestUser&age=18

Jax.post(url).then(result => {
	console.log(result)
}).catch(err => {
	console.error(err)
})

// При отправке будет указан адрес без параметров - http://example/send-url-post, все параметры будут переданы в тело запроса 

 


 

Jax.put(url,params)

Функция для отправки PUT-запроса

Параметры:

  • url ( String ) - URL-адрес отправки
  • params ( Object ) - Объект с параметрами запроса
    • params.headers ( Map<string,string>)(не обязательный ) - Коллекция дополнительных заголовков запроса, где ключ - наименование заголовка. Сontent-Type заголовок добавлять не нужно!
    • params.body ( Object | JFormData | FormData | Map | HTMLFormElement | string )( не обязательный ) - Тело запроса, может быть объектом, формой, HTML-элементом либо строкой(id формы, только для браузера), все данные будут закодированны в виде URL строки при отправке. Файлы отправлять нельзя
    • params.responseType ( String )( не обязательный ) - Устанавливает тип ответа, смотреть - Jax.RESPONSE_TYPES
    • params.sendType ( String )( не обязательный ) - Устанавливает способ отправки, смотреть - Jax.SEND_TYPES
    • params.credentials ( String )( не обязательный ) - Параметр для установки разрешения на отправку учетных данных, смотреть - Jax.CREDENTIALS
    • params.progress ( Function )( не обязательный ) - Callback-функция для получения текущего прогресса отправки данных ( не работает в Node.JS )

Возврат:

( Promise<object> ) В случае успешного выполнения вернет объект с результатом следующего вида

{
    success: true
    data: /*response*/
    headers: /*response headers Map*/ 
}

// Свойство data необходимо проверять на undefined, т.к. его может и не быть если с сервера был отправлен только код состояния

 


 

Jax.delete(url,params)

Функция для отправки DELETE-запроса

Параметры:

  • url ( String ) - URL-адрес отправки
  • params ( Object ) - Объект с параметрами запроса
    • params.headers ( Map<string,string>)(не обязательный ) - Коллекция дополнительных заголовков запроса, где ключ - наименование заголовка. Сontent-Type заголовок добавлять не нужно!
    • params.body ( Object | JFormData | FormData | Map | HTMLFormElement | string )( не обязательный ) - Тело запроса, может быть объектом, формой, HTML-элементом либо строкой(id формы, только для браузера), все данные будут закодированны в виде URL строки при отправке. Файлы отправлять нельзя
    • params.sendType ( String )( не обязательный ) - Устанавливает способ отправки, смотреть - Jax.SEND_TYPES
    • params.responseType ( String )( не обязательный ) - Устанавливает тип ответа, смотреть - Jax.RESPONSE_TYPES
    • params.credentials ( String )( не обязательный ) - Параметр для установки разрешения на отправку учетных данных, смотреть - Jax.CREDENTIALS
    • params.progress ( Function )( не обязательный ) - Callback-функция для получения текущего прогресса отправки данных ( не работает в Node.JS )

Возврат:

( Promise<object> ) В случае успешного выполнения вернет объект с результатом следующего вида

{
    success: true
    data: /*response*/
    headers: /*response headers Map*/ 
}

// Свойство data необходимо проверять на undefined, т.к. его может и не быть если с сервера был отправлен только код состояния

Обратите внимание что при отправке запроса DELETE с sendType = application/x-www-form-urlencoded все данные будут преобразованы в url строку но при этом переданы в тело запроса как и в методах POST/PUT, если вы хотите передать параметры в url строке адреса, нужно сделать это вручную. Для этого можно использовать класс Url, например:

let url = Url.encode({user: 'TestUser', age: 18,},'http://example/delete-url-test')

Jax.delete(url).then(res => {
	console.log(`DELETE success: ${res}`)
}).catch(err => {
	console.log(`DELETE error: ${err}`)
})

 


 

Jax.file(url,params)

Функция для отправки файлов, используется POST-запрос. В отличии от Jax.post() можно передавать только файловые объекты. При этом есть отправка в multipart/form-data формате, и отправка бинарных данных каждого файла в отдельном запросе со своим заголовком contentType

Параметры:

  • url ( String ) - URL-адрес отправки
  • params ( Object ) - Объект с параметрами запроса
    • params.headers ( Map<string,string>)(не обязательный ) - Коллекция дополнительных заголовков запроса, где ключ - наименование заголовка. Сontent-Type заголовок добавлять не нужно!
    • params.body ( File | FileList | JFile | JFileList )( не обязательный ) - Тело запроса, может быть объектом, формой, HTML-элементом либо строкой(id формы, только для браузера), все данные будут закодированны в виде URL строки при отправке. Файлы отправлять нельзя
    • params.isMultipart ( Boolean ) - Отправить данные с заголовком multipart/form-data (по умолчанию true)
    • params.responseType ( String )( не обязательный ) - Устанавливает тип ответа, смотреть - Jax.RESPONSE_TYPES
    • params.credentials ( String )( не обязательный ) - Параметр для установки разрешения на отправку учетных данных, смотреть - Jax.CREDENTIALS
    • params.progress ( Function )( не обязательный ) - Callback-функция для получения текущего прогресса отправки данных ( не работает в Node.JS )

Возврат:

( Promise<object> ) Возвращает Promise c результатом в случае успешного выполнения * (При установке isMultipart:false и передаче коллекции файлов возвращает массив с результатами всех промисов для каждого файла)

Пример отправки файлов:

let fileInput = document.getElementById('file')
let files = await JFileList.load(fileInput.files)
if(files && files?.length){
	Jax.file('http://example/send-files', {
		body: files,
	}).then(result => {
		console.log(result)
	}).catch(err => {
		console.error(err)
	})
}

 


 

Jax.jsonMapReplacer(key,value)

Функция для правильной сериализации Map в json с помощью функции JSON.stringify()

Параметры:

  • key ( any ) - наименование параметра
  • value ( any ) - значение

Возврат:

( Object ) Возвращает Map преобразованный в объект

 


 

Jax.jsonMapReviewer(key,value)

Функция для правильной десериализации Map с помощью функции JSON.parse() (работает только для Map сериализованных с помощью Jax.jsonMapReplacer)

Параметры:

  • key ( any ) - наименование параметра
  • value ( any ) - значение

Возврат:

( Map ) Преобразует сериализованные объекты в Map если в них есть свойство bodyType:'Map'  

 

Класс JFile

Класс предназначен для облегчения загрузки и отправки файлов. Данный класс можно использовать в браузерах и Node.JS

Поля и свойства

 

(JFile) object.contentType (String) ( только чтение )

Свойство содержащее mime тип файла  

(JFile)object.fullName (String) ( только чтение )

Свойство содержит полное имя файла с расширением  

(JFile) object.name (String) ( только чтение )

Свойство содержащее имя файла без расширения  

(JFile) object.ext (String) ( только чтение )

Свойство с расширением файла  

(JFile) object.size (Number) ( только чтение )

Свойство содержащее размер файла в байтах  

(JFile) object.data (JBuffer) ( только чтение )

Свойство содержащее данные из файла в виде JBuffer  

(JFile) object.path (String) ( только чтение ) ( только в Node.js )

Свойство содержащее путь к файлу  

Функции

JFile.load(file)

Функция для загрузки файла и создания нового объекта jFile

Параметры:

  • file ( String | File ) - Объект File( в браузерах ), либо путь к файлу в виде строки ( Node.JS )

Возврат:

( Promise<JFile|undefined> ) В случае успешной загрузки файла возвращает промис с новым объектом JFile, иначе вернет промис с undefined

Пример загрузки файла:

let file = await JFile.load('./images/test.png') // в Node.js

let fileBrowser = await JFile.load(fileInput.files[0]) // в браузере, fileInput это input элемент с type=file

 

 

Класс JFileList

Класс является аналогом браузерного FileList, позволяет создавать итерируемые объекты с которыми можно работать как с массивами. Элементами коллекции могут быть только JFile объекты

Поля и свойства

 

(JFileList)object.length (Number) ( только чтениe )

Свойство содержащее кол-во элементов коллекции  

Функции

JFileList.constructor(files)

Конструктор в который можно передать массив с объектами JFile

Параметры:

  • files ( Array<JFile> ) - Массив объектов JFile, если в массиве есть значения другого типа они будут отфильтрованы

 


 

JFileList.load(files)

Функция для загрузки файлов и создания новой коллекции

Параметры:

  • files ( FileList|File|JFile|Array<string>|Array<File>|Array<JFile> ) - Файловые объекты, массив или коллекция файловых объектов или путей к файлам

Возврат:

( Promise<JFileList|undefined> ) Возвращает промис с новым объектом JFileList. При этом в коллекцию будут добавлены только успешно загруженные файлы. Если ни один файл не удалось загрузить, промис вернет пустую коллекцию, а в случае ошибки undefined

Пример загрузки файлов и создания нового JFileList:

let files = await JFileList.load([
    './images/1.png',
    './images/2.png'
]) 

 


 

(JFileList) object.push(file)

Добавляет новый элемент в конец коллекции, добавить можно только объект типа JFile

Параметры:

  • file ( JFile ) - Объект JFile

Возврат:

( Boolean ) Возвращает логический результат выполнения функции

Пример:

let file = await JFile.load('./images/1.png')
let list = new JFileList()
if(file)
    console.log(list.push(file)) // Выведет true, новый элемент будет добавлен

let file2 = './images/2.png'
console.log(list.push(file2)) // Выведет false 

 


 

(JFileList) object.pop()

Извлекает последний элемент и удаляет его из коллекции

Возврат:

( JFile|undefined ) Возвращает объект JFile, либо undefined если коллекция пуста

 


 

(JFileList) object.shift()

Извлекает первый элемент и удаляет его из коллекции

Возврат:

( JFile|undefined ) Возвращает объект JFile, либо undefined если коллекция пуста

 


 

(JFileList) object.unshift(file)

Добавляет новый элемент в начало коллекции, добавить можно только объект типа JFile

Параметры:

  • file ( JFile ) - Объект JFile

Возврат:

( Boolean ) Возвращает логический результат выполнения функции (см push())

 


 

(JFileList) object.concat(list)

Функция для объединения двух и более коллекций в одну

Параметры:

  • list ( JFileList|Array<JFileList> ) - Объект либо массив объектов JFileList

Возврат:

( JFileList ) Возвращает новую коллекцию JFileList с элементами объединенных коллекций

 


 

(JFileList) object.toArray()

Функция для получения обычного массива из JFileList

Возврат:

( Array<JFile> ) Возвращает массив с JFile объектами

 


 

(JFileList) object.toString()

Функция для строчного вывода JFileList

Возврат:

( String ) Возвращает форматированную строку с содержимым JFileList

 

 

Класс JFormData

Класс является аналогом браузерного FormData, позволяет создать объект с данными, которые хранятся в виде пар (ключ-значение) и правильно преобразовывать эти данные при отправке запроса

Функции

(JFormData)object.from(params, filterFiles)

Функция для преобразования объектов и коллекций в объект JFormData

Параметры:

  • params ( JFormData | Map | Object ) - Map коллекция или объект
  • filterFiles ( Boolean ) ( не обязательный ) - Если true - фильтрует файловые классы (File,FileList,JFile,JFileList) (по умолчанию - false)

Возврат:

( Promise<JFormData> ) Возвращает промис с новым объектом JFormData

 


 

(JFormData)object.fromDOM(params, filterFiles)

Функция для получения данных из HTML формы и их записи в новый JFormData объект

Параметры:

  • params ( HTMLFormElement | string ) - элемент HTML формы либо его id
  • filterFiles ( Boolean ) ( не обязательный ) - Параметр указывающий нужно ли отфильтровывать поля input[type="file"] (по умолчанию - false)

Возврат:

( Promise<JFormData> ) Возвращает промис с новым объектом JFormData

 


 

(JFormData)object.get(name)

Функция для получения значения по его имени(ключу)

Параметры:

  • name ( string ) - Строковое наименование параметра

Возврат:

( any ) Возвращает значение по его ключу если оно есть

 


 

(JFormData)object.getAll()

Функция для получения всех значений JFormData в виде Map коллекции

Возврат:

( Map ) Возвращает Map-коллекцию

 


 

(JFormData)object.set(name,value)

Добавляет новую пару ключ-значение в JFormData

Параметры:

  • name ( string ) - Строковое наименование параметра
  • value ( any ) - Значение параметра

 


 

(JFormData)object.isset(name)

Функция для проверки существования параметра в JFormData по его имени

Параметры:

  • name ( string ) - Строковое наименование параметра

Возврат:

( Boolean ) Возвращает логическое значение

 


 

(JFormData)object.delete(name)

Функция для удаления параметра из JFormData по его имени

Параметры:

  • name ( string ) - Строковое наименование параметра

Возврат:

( Boolean ) Возвращает логическое значение(true - если параметр найден и удален, иначе false)

 


 

(JFormData)object.entries()

Функция для преобразования JFormData в итерируемый объект(массив) пар (ключ-значение)

Возврат:

( IterableIterator<[any,any]> ) Массив пар (ключ-значение)

 


 

(JFormData)object.toObj()

Функция для преобразования JFormData в объект

Возврат:

( Object ) Объект JS в котором ключи = свойства объекта

 


 

(JFormData)object.toMultipart()

Асинхронная функция для преобразования JFormData в формат multipart/form-data

Возврат:

( Promise<JBuffer|undefined> ) Возвращает промис с результатом JBuffer(в случае успешного выполнения)

 

 

Класс JBuffer

Вспомогательный класс для преобразования данных в бинарный формат, так же как и Buffer NodeJS основан на UInt8Array, но в отличии от него работает и в браузере. В JBuffer можно свободно конвертировать ArrayBuffer, Buffer, UInt8Array и Blob

Функции

JBuffer.constructor(buffer)

Конструктор для создания JBuffer из одного или нескольких байт массивов разного типа

Параметры:

  • buffer ( ArrayBuffer | Uint8Array | JBuffer | Buffer | string | Array<ArrayBuffer|Uint8Array|JBuffer|Buffer> ) - Map коллекция или объект

 


 

JBuffer.fromBlob(blob)

Асинхронная функция для получения JBuffer из Blob объекта

Параметры:

  • buffer ( Blob ) - Blob объект

Возврат:

( Promise<JBuffer|undefined> ) Возвращает промис с результатом JBuffer(в случае успешного выполнения)

 


 

JBuffer.concat(buffers)

Статическая функция для объединения нескольких бинарных массивов в новый JBuffer

Параметры:

  • buffers ( Array<Buffer|JBuffer|Uint8Array|any> ) - Массив бинарных массивов

Возврат:

( JBuffer | undefined ) Возвращает JBuffer(в случае успешного выполнения)

 


 

JBuffer.concat(buffers)

Статическая функция для объединения нескольких бинарных массивов в новый JBuffer

Параметры:

  • buffers ( Array<Buffer|JBuffer|Uint8Array|any> ) - Массив бинарных массивов

Возврат:

( JBuffer | undefined ) Возвращает JBuffer(в случае успешного выполнения)

 


 

JBuffer.toText(buffer)

Статическая функция для декодирования буфера в строку

Параметры:

  • buffer ( JBuffer | ArrayBuffer | Uint8Array | Buffer ) - Бинарный массив

Возврат:

( String | undefined ) Возвращает строку в случае успешного выполнения

 


 

(JBuffer)object.concat(buffers)

Функция для объединения текущего JBuffer объекта с бинарными массивами

Параметры:

  • buffers ( Array<Buffer|ArrayBuffer|JBuffer|Uint8Array> | Buffer | JBuffer | Uint8Array | ArrayBuffer ) - Массив бинарных массивов или один бинарный массив

Возврат:

( JBuffer | undefined ) Возвращает JBuffer(в случае успешного выполнения)

 


 

(JBuffer)object.split(len,all)

Функция для разбиения JBuffer объекта на части

Параметры:

  • len ( Number ) - Длина/смещение по которому разбивается буфер
  • all ( Boolean ) ( не обязательный ) - Параметр указывающий разбивать ли весь буфер до конца (по умолчанию - true)

Возврат:

( Array<JBuffer> | undefined ) Возвращает массив с JBuffer объектами в случае успешного выполнения

 


 

(JBuffer)object.toText()

Функция для декодирования текущего объекта JBuffer в строку

Возврат:

( String ) Возвращает декодированную строку

 

 

Класс Url

Вспомогательный класс для преобразования данных из объектов и коллекций в URL адрес и обратно

Функции

Url.encode(params, addr, add)

Функция для преобразования объекта параметров в URL

Параметры:

  • params ( Map | FormData | JFormData | Object ) - Объект параметров
  • addr ( String )( не обязательный ) - Адресная строка без параметров
  • add ( String )( не обязательный ) - Добавочный параметр для обработки вложенных объектов

Возврат:

( String ) Возвращает URL строку

Пример:

let object={
    user:'Alex',
    age:18,
    settings:{
        player:{
            volume:[10,15],
            mute:true
        }
    },
    location:[100,200,[500,550]]
}

console.log(Url.encode(object,'http://example.com/user')) // Преобразует в url адрес с параметрами
/* Вывод: http://example.com/user?user=Alex&age=18&settings[player][volume][]=10&settings[player][volume][]=15&settings[player][mute]=true&location[]=100&location[]=200&location[2][]=500&location[2][]=550 */

console.log(Url.encode(object)) // Преобразует в url параметры
/* user=Alex&age=18&settings[player][volume][]=10&settings[player][volume][]=15&settings[player][mute]=true&location[]=100&location[]=200&location[2][]=500&location[2][]=550 */

 


 

Url.decode(url)

Функция для преобразования параметров из URL в объект

Параметры:

  • url ( String ) - Строка URL параметров

Возврат:

( Object ) Возвращает объект с параметрами

Пример:

let url = 'http://example.com/user?user=Alex&age=18&settings[player][volume][]=10&settings[player][volume][]=15&settings[player][mute]=true&location[]=100&location[]=200&location[2][]=500&location[2][]=550'

let urlParam = 'user=Alex&age=18&settings[player][volume][]=10&settings[player][volume][]=15&settings[player][mute]=true&location[]=100&location[]=200&location[2][]=500&location[2][]=550'

console.log(Url.decode(url)) 
console.log(Url.decode(urlParam)) 

/* В вариантах с адресом и без, адрес будет отсекаться, в результате будет получен следующий объект:
{
    user:'Alex',
    age:18,
    settings:{
        player:{
            volume:[10,15],
            mute:true
        }
    },
    location:[100,200,[500,550]]
}
*/

 


 

Package Sidebar

Install

npm i jaxfis

Weekly Downloads

1

Version

1.0.3

License

AAL

Unpacked Size

153 kB

Total Files

5

Last publish

Collaborators

  • alariel007