Socket
Socket
Sign inDemoInstall

@tarojs/taro-h5

Package Overview
Dependencies
Maintainers
2
Versions
907
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tarojs/taro-h5 - npm Package Compare versions

Comparing version 0.0.46 to 0.0.47

src/__test__/storageApi-test.js

17

package.json
{
"name": "@tarojs/taro-h5",
"version": "0.0.46",
"version": "0.0.47",
"description": "Taro h5 framework",

@@ -12,3 +12,5 @@ "main": "index.js",

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"test": "jest",
"test:dev": "jest --watch",
"test:coverage": "jest --coverage",
"build": "rollup -c rollup.config.js"

@@ -29,6 +31,15 @@ },

"dependencies": {
"@tarojs/taro": "0.0.46",
"@tarojs/taro": "0.0.47",
"jsonp-retry": "^1.0.3",
"nervjs": "^1.2.18"
},
"devDependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.0.1",
"babel-loader": "^7.1.4",
"babel-preset-env": "^1.7.0",
"jest-localstorage-mock": "^2.2.0",
"jest-mock-console": "^0.3.5",
"mock-socket": "^7.1.0"
}
}

144

src/api/storage/index.js

@@ -1,11 +0,26 @@

function setStorage (options = {}) {
import { shouleBeObject, getParameterError } from '../utils'
function setStorage (options) {
// options must be an Object
const isObject = shouleBeObject(options)
if (!isObject.res) {
const res = { errMsg: `setStorage${isObject.msg}` }
console.error(res.errMsg)
return Promise.reject(res)
}
const { key, data, success, fail, complete } = options
const res = { errMsg: 'getStorage:ok' }
const res = { errMsg: 'setStorage:ok' }
if (typeof key !== 'string') {
const e = new Error(`setStorage:fail parameter error: parameter should be String instead of ${typeof key}`)
res.errMsg = e.message
fail && fail(res)
complete && complete(res)
return Promise.reject(e)
res.errMsg = getParameterError({
name: 'setStorage',
para: 'key',
correct: 'String',
wrong: typeof key
})
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return Promise.reject(res)
}

@@ -15,4 +30,4 @@

success && success(res)
complete && complete(res)
typeof success === 'function' && success(res)
typeof complete === 'function' && complete(res)

@@ -23,3 +38,10 @@ return Promise.resolve(res)

function setStorageSync (key, data = '') {
if (typeof key !== 'string') throw new Error(`setStorageSync:fail parameter error: parameter should be String instead of ${typeof key}`)
if (typeof key !== 'string') {
console.error(getParameterError({
name: 'setStorage',
correct: 'String',
wrong: typeof key
}))
return
}

@@ -37,3 +59,11 @@ const type = typeof data

function getStorage (options = {}) {
function getStorage (options) {
// options must be an Object
const isObject = shouleBeObject(options)
if (!isObject.res) {
const res = { errMsg: `getStorage${isObject.msg}` }
console.error(res.errMsg)
return Promise.reject(res)
}
const { key, success, fail, complete } = options

@@ -43,13 +73,26 @@ const res = { errMsg: 'getStorage:ok' }

if (typeof key !== 'string') {
const e = new Error(`getStorage:fail parameter error: parameter should be String instead of ${typeof key}`)
res.errMsg = e.message
fail && fail(res)
complete && complete(res)
return Promise.reject(e)
res.errMsg = getParameterError({
name: 'getStorage',
para: 'key',
correct: 'String',
wrong: typeof key
})
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return Promise.reject(res)
}
res.data = getStorageSync(key)
const { result, data } = getItem(key)
if (result) {
res.data = data
} else {
res.errMsg = 'getStorage:fail data not found'
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return Promise.reject(res)
}
success && success(res)
complete && complete(res)
typeof success === 'function' && success(res)
typeof complete === 'function' && complete(res)

@@ -60,7 +103,13 @@ return Promise.resolve(res)

function getStorageSync (key) {
if (typeof key !== 'string') throw new Error(`getStorageSync:fail parameter error: parameter should be String instead of ${typeof key}`)
let res = JSON.parse(localStorage.getItem(key))
if (typeof key !== 'string') {
console.error(getParameterError({
name: 'getStorage',
correct: 'String',
wrong: typeof key
}))
return
}
// 只返回使用 Taro.setStorage API 存储的数据
if (res && res.data) return res.data
let res = getItem(key)
if (res.result) return res.data

@@ -70,2 +119,16 @@ return ''

function getItem (key) {
let item
try {
item = JSON.parse(localStorage.getItem(key))
} catch (e) {}
// 只返回使用 Taro.setStorage API 存储的数据
if (item && typeof item === 'object' && item.hasOwnProperty('data')) {
return { result: true, data: item.data }
} else {
return { result: false }
}
}
function getStorageInfo (options = {}) {

@@ -93,3 +156,11 @@ const { success, complete } = options

function removeStorage (options = {}) {
function removeStorage (options) {
// options must be an Object
const isObject = shouleBeObject(options)
if (!isObject.res) {
const res = { errMsg: `removeStorage${isObject.msg}` }
console.error(res.errMsg)
return Promise.reject(res)
}
const { key, success, fail, complete } = options

@@ -99,7 +170,12 @@ const res = { errMsg: 'removeStorage:ok' }

if (typeof key !== 'string') {
const e = new Error(`removeStorage:fail parameter error: parameter should be String instead of ${typeof key}`)
res.errMsg = e.message
fail && fail(res)
complete && complete(res)
return Promise.reject(e)
res.errMsg = getParameterError({
name: 'removeStorage',
para: 'key',
correct: 'String',
wrong: typeof key
})
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return Promise.reject(res)
}

@@ -116,3 +192,11 @@

function removeStorageSync (key) {
if (typeof key !== 'string') throw new Error(`removeStorageSync:fail parameter error: parameter should be String instead of ${typeof key}`)
if (typeof key !== 'string') {
console.error(getParameterError({
name: 'removeStorage',
correct: 'String',
wrong: typeof key
}))
return
}
localStorage.removeItem(key)

@@ -119,0 +203,0 @@ }

import SocketTask from './socketTask'
import { shouleBeObject, getParameterError } from '../utils'

@@ -6,9 +7,2 @@ let socketTasks = []

// 最多支持同时存在两个 websocket 链接
function checkTasks () {
socketTasks = socketTasks.filter(task => task.readyState !== 3)
if (socketTasks.length <= 1) return true
return false
}
function connectSocket (options) {

@@ -19,14 +13,11 @@ const name = 'connectSocket'

// options must be an Object
const optType = typeof options
if (optType !== 'object') {
const error = getParameterError({
name,
correct: 'Object',
wrong: optType
})
console.error(error)
return reject(error)
const isObject = shouleBeObject(options)
if (!isObject.res) {
const res = { errMsg: `${name}${isObject.msg}` }
console.error(res.errMsg)
return reject(res)
}
const { url, protocols, success, fail, complete } = options
const res = { errMsg: 'connectSocket:ok' }

@@ -36,3 +27,3 @@ // options.url must be String

if (urlType !== 'string') {
const error = getParameterError({
res.errMsg = getParameterError({
name,

@@ -43,6 +34,5 @@ para: 'url',

})
const res = { errMsg: error }
console.error(error)
fail && fail(res)
complete && complete(res)
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return reject(res)

@@ -53,7 +43,6 @@ }

if (!url.startsWith('ws://') && !url.startsWith('wss://')) {
const error = `request:fail invalid url "${url}"`
const res = { errMsg: error }
console.error(error)
fail && fail(res)
complete && complete(res)
res.errMsg = `request:fail invalid url "${url}"`
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return reject(res)

@@ -66,14 +55,19 @@ }

// 2 connection at most
if (!checkTasks()) {
const errMsg = '同时最多发起 2 个 socket 请求,更多请参考文档。'
console.error(errMsg)
return reject(errMsg)
if (socketTasks.length > 1) {
res.errMsg = '同时最多发起 2 个 socket 请求,更多请参考文档。'
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return reject(res)
}
const task = new SocketTask(url, _protocols)
task._destroyWhenClose = function () {
socketTasks = socketTasks.filter(socketTask => socketTask !== this)
}
socketTasks.push(task)
const res = { socketTaskId: socketsCounter++, errMsg: 'connectSocket:ok' }
success && success(res)
complete && complete(res)
res.socketTaskId = socketsCounter++
typeof success === 'function' && success(res)
typeof complete === 'function' && complete(res)

@@ -85,30 +79,25 @@ return resolve(task)

function onSocketOpen () {
console.warin('Deprecated.Please use socketTask.onOpen instead.')
console.warn('Deprecated.Please use socketTask.onOpen instead.')
}
function onSocketError () {
console.warin('Deprecated.Please use socketTask.onError instead.')
console.warn('Deprecated.Please use socketTask.onError instead.')
}
function sendSocketMessage () {
console.warin('Deprecated.Please use socketTask.send instead.')
console.warn('Deprecated.Please use socketTask.send instead.')
}
function onSocketMessage () {
console.warin('Deprecated.Please use socketTask.onMessage instead.')
console.warn('Deprecated.Please use socketTask.onMessage instead.')
}
function closeSocket () {
console.warin('Deprecated.Please use socketTask.close instead.')
console.warn('Deprecated.Please use socketTask.close instead.')
}
function onSocketClose () {
console.warin('Deprecated.Please use socketTask.onClose instead.')
console.warn('Deprecated.Please use socketTask.onClose instead.')
}
function getParameterError ({ name, para, correct, wrong }) {
const parameter = para ? `parameter.${para}` : 'parameter'
return `${name}: fail parameter error: ${parameter} should be ${correct} instead of ${wrong}`
}
export default {

@@ -115,0 +104,0 @@ connectSocket,

@@ -21,3 +21,12 @@ export default class SocketTask {

const { data = '', success, complete } = obj
const { data = '', success, fail, complete } = obj
if (this.readyState !== 1) {
const res = { errMsg: 'SocketTask.send:fail SocketTask.readState is not OPEN' }
console.error(res.errMsg)
typeof fail === 'function' && fail(res)
typeof complete === 'function' && complete(res)
return Promise.reject(res)
}
this.ws.send(data)

@@ -42,2 +51,4 @@

this.closeDetail = { code, reason }
// 主动断开时需要重置链接数
this._destroyWhenClose && this._destroyWhenClose()
this.ws.close()

@@ -61,2 +72,4 @@

this.ws.onclose = () => {
// 若服务器方断掉也需要重置链接数
this._destroyWhenClose && this._destroyWhenClose()
func(this.closeDetail || { code: 1006, reason: 'abnormal closure' })

@@ -63,0 +76,0 @@ }

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc