1.1.3 • Published 5 years ago
columbus-base-x v1.1.3
columbus-base-x
提供安全的base64的快速编解码方案
# use yarn
yarn add columbus-base-x
# use npm
npm i columbus-base-x -S
API
encode
encode(url, params, include)
入参
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
url | string | - | url地址 |
params | object | - | url需要携带的参数(会与原url携带的参数比较并增量更新) |
include | string[] | 'connect' | params对象中需要编码的key |
若
params.key
的值为对象类型, 务必将使include
包含key
返回值
返回编码后的url
string
example
import { encode } from 'columbus-base-x';
const t1 = encode('https://example.com', { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' }, ['connect', 'to']);
// https://example.com?connect=eyJpZCI6IjEyMyIsIm5hbWUiOiJ0ZXN0IiwiaG9va3MiOnsiaG9va3MxIjoiaG9va3MxIn19&from=wechat&to=cXFfYnJvd3Nlcg
const t2 = encode('https//example.com?from=baidu', { from: 'qq'});
// https://example.com?from=qq
encodeStringify
encodeStringify(params)
入参
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
params | object | - | 需要编码的对象 |
返回值
返回编码后的字符串
string
example
import { encodeStringify } from 'columbus-base-x';
const t = encodeStringify({ connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' });
// eyJjb25uZWN0Ijp7ImlkIjoiMTIzIiwibmFtZSI6InRlc3QiLCJob29rcyI6eyJob29rczEiOiJob29rczEifX0sImZyb20iOiJ3ZWNoYXQiLCJ0byI6InFxX2Jyb3dzZXIifQ
decode
decode(url, include)
入参
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
url | string | - | url地址 |
include | string[] | 'connect' | 若存在在include,则解码,否则返回原值 |
返回值
url中携带的参数
object
example
import { encode, decode } from 'columbus-base-x';
const t1 = encode('https://example.com', { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' }, ['connect', 'to']);
const t2 = decode(t1);
// { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'cXFfYnJvd3Nlcg' }
const t3 = decode(t1, ['connect', 'to']);
// { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' }
decodeParse
decodeParse(str)
入参
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
str | string | - | 字符串 |
返回值
object | string
example
import { encodeStringify, decodeParse } from 'columbus-base-x';
const t1 = encodeStringify({ connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' });
const t2 = decodeParse(t1);
// { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' }
decodeWithReturnPathUrl
decodeWithReturnPathUrl(url, include)
入参
属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
url | string | - | url地址 |
include | string[] | 'connect' | 若存在在include,则解码,否则返回原值 |
返回值
属性 | 类型 | 说明 |
---|---|---|
pathUrl | string | 不含query的url地址 |
params | object | url中携带的参数 |
example
import { encode, decodeWithReturnPathUrl } from 'columbus-base-x';
const t1 = encode('https://example.com', { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' }, ['connect', 'to']);
const t2 = decodeWithReturnPathUrl(t1, ['connect', 'to']);
// {pathUrl: 'https://example.com', params: { connect: { id: '123', name: 'test', hooks: { hooks1: 'hooks1' } }, from: 'wechat', to: 'qq_browser' }}