1.0.0 • Published 3 years ago
@xeerx/nodejs-parser v1.0.0
xeerx nodeJS parser
Install
npm i @xeerx/nodejs-parser
const xparser = require('@xeerx/nodejs-parser');
Functions
query
// => object
xparser.query('param1=val1¶m2=val2');
/*
param1: 'val1',
param2: 'val2'
*/
path
// => object
xparser.path('/os/windows/info.html');
/*
root: 'os',
dir: '/os/windows',
base: 'info.html',
ext: '.html',
name: 'info'
*/
url
// => object
xparser.url('https://www.domain.com:80/path/file.ext?param1=val1¶m2=val2#hash');
/*
protocol: 'https:',
host: 'www.domain.com',
port: '80',
path: '/path/file.ext',
hash: '#hash',
query: { param1: 'val1', param2: 'val2' }
*/
find hostname in hosts object
// example hosts object
const hosts = {main:['domain.com','www.domain.com'], wiki:'wiki.domain.com'};
// => string
xparser.findHost(hosts,'domain.com'); // main
xparser.findHost(hosts,'wiki.domain.com'); // wiki
xparser.findHost(hosts,'sub.domain.com'); // unknown
get mime type
// default object list, you can edit it by: xparser.mimeTypes = {...};
{html:"text/html",js:"text/javascript",css:"text/css",png:"image/png",jpg:"image/jpg",mp4:"video/mp4",mp3:"audio/mp3",json:"application/json",zip:"application/zip",woff:"application/font-woff",ttf:"application/font-ttf",eot:"application/vnd.ms-fontobject",otf:"application/font-otf",xml:"text/xml",xlsx:"application/vnd.ms-excelf",xls:"text/xls",pdf:"application/pdf",php:"application/php",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/vnd.microsoft.icon",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp",webm:"video/webm",avi:"video/x-msvideo",mpeg:"video/mpeg",ogv:"video/ogg",ts:"video/mp2t",mkv:"video/x-matroska","3gp":"audio/3gpp",weba:"audio/webm",wav:"audio/wav",opus:"audio/opus",oga:"audio/oga","3gp":"audio/3gpp",aac:"audio/aac","7z":"application/x-7z-compressed",tar:"application/x-tar",rar:"application/vnd.rar",jar:"application/java-archive",gz:"application/gzip",bz:"application/x-bzip",bz2:"application/x-bzip2",arc:"application/x-freearc"}
// => string | unknown
xparser.mime('test.html'); // text/html
parsing multipart/form-data as object
// example
const example = `
-----------------------------9051914041544843365972754266
Content-Disposition: form-data; name="username"
xeerx
-----------------------------9051914041544843365972754266
Content-Disposition: form-data; name="password"
12345
-----------------------------9051914041544843365972754266
Content-Disposition: form-data; name="profile-picutre"; filename="image.png"
Content-Type: image/png
content of image.png file
-----------------------------9051914041544843365972754266--
`;
// => string | unknown
xparser.multipart(example,'multipart/form-data; boundary=---------------------------9051914041544843365972754266'); // text/html
/*
{
username: {
val: 'xeerx',
file: undefined,
size: 0,
mime: undefined,
mode: 'form-data',
encode: undefined
},
password: {
val: '12345',
file: undefined,
size: 0,
mime: undefined,
mode: 'form-data',
encode: undefined
},
'profile-picutre': {
val: 'content of image.png file',
file: 'image.png',
size: 9,
mime: 'image/png',
mode: 'form-data',
encode: undefined
}
}
*/
1.0.0
3 years ago