@mixd-id/web-scaffold 0.1.230406265 → 0.1.230406267

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mixd-id/web-scaffold",
3
3
  "private": false,
4
- "version": "0.1.230406265",
4
+ "version": "0.1.230406267",
5
5
  "scripts": {
6
6
  "dev": "vite serve",
7
7
  "build": "vite build",
@@ -114,7 +114,15 @@ export default{
114
114
  },
115
115
 
116
116
  close(){
117
- this._state = false
117
+ if(this.hash){
118
+ this.$router.replace({
119
+ ...this.$route,
120
+ hash: this.$route.hash.replace(`${this.hash}`, '')
121
+ })
122
+ }
123
+ else{
124
+ this._state = false
125
+ }
118
126
  },
119
127
 
120
128
  dismiss(){
@@ -255,9 +263,11 @@ export default{
255
263
  }
256
264
  },
257
265
 
258
- '$route.hash'(to){
259
- if(this.hash !== null){
260
- this._state = to === this.hash
266
+ '$route.hash': {
267
+ handler(to){
268
+ if(this.hash !== null){
269
+ this._state = (to ?? '').indexOf(this.hash) >= 0
270
+ }
261
271
  }
262
272
  }
263
273
 
@@ -275,7 +285,7 @@ export default{
275
285
  }
276
286
 
277
287
  if(this.hash !== null){
278
- this._state = this.$route.hash === this.hash
288
+ this._state = (this.$route.hash ?? '').indexOf(this.hash) >= 0
279
289
  }
280
290
  })
281
291
  },
@@ -200,7 +200,7 @@ export default{
200
200
  }
201
201
 
202
202
  .tag2{
203
- @apply bg-text-50 p-1 rounded-lg px-2 cursor-pointer;
203
+ @apply bg-text-50 p-1 rounded-lg px-2 cursor-pointer whitespace-nowrap;
204
204
  @apply hover:bg-text-100 hover:text-white;
205
205
  }
206
206
 
package/src/index.js CHANGED
@@ -221,6 +221,8 @@ const util = {
221
221
  },
222
222
 
223
223
  unshift: (arr, item, opt = {}) => {
224
+ if(!Array.isArray(arr)) return
225
+
224
226
  opt = Object.assign({ key:"id", highlight:false }, opt)
225
227
 
226
228
  const index = arr.findIndex((_) => _[opt.key] === item[opt.key])
@@ -247,6 +249,8 @@ const util = {
247
249
  },
248
250
 
249
251
  removeEmpty(array, emptyValues = [ '', '{}', '[]' ]){
252
+ if(!Array.isArray(array)) return
253
+
250
254
  for (let i = array.length - 1; i >= 0; i--) {
251
255
  if (!array[i] || emptyValues.includes(JSON.stringify(array[i])) || Object.values(array[i]).join('').length <= 0){
252
256
  array.splice(i, 1);
package/src/utils/wss.js CHANGED
@@ -128,7 +128,6 @@ class WSS extends EventEmitter2{
128
128
  }
129
129
 
130
130
  socket.on('message', async (binaryData) => {
131
- console.log('message#1', socket.isAuth)
132
131
  if(!socket.isAuth) return
133
132
 
134
133
  let obj
@@ -139,45 +138,46 @@ class WSS extends EventEmitter2{
139
138
  return socket.close(1002, e.message);
140
139
  }
141
140
 
142
- const { _requestId, path, params } = obj
141
+ const { _requestId, path, params, pong } = obj
143
142
 
144
- let status = 200
145
- let data
146
- switch(path){
147
-
148
- case 'ping':
149
- data = { type:'pong' }
150
- break
143
+ if(pong){
144
+ delete socket.pinging
145
+ }
146
+ else{
147
+ let status = 200
148
+ let data
149
+ switch(path){
151
150
 
152
- default:
153
- try{
154
- const arr = (await Promise.all(this._reqFn.map(fn => fn({ path, params }, socket))))
155
- .filter(_ => _)
151
+ default:
152
+ try{
153
+ const arr = (await Promise.all(this._reqFn.map(fn => fn({ path, params }, socket))))
154
+ .filter(_ => _)
156
155
 
157
- data = arr.length > 0 ? JSON.parse(JSON.stringify(arr.pop())) : data
158
- }
159
- catch(e){
160
- if(this._opt.debug){
161
- console.error(e)
156
+ data = arr.length > 0 ? JSON.parse(JSON.stringify(arr.pop())) : data
162
157
  }
163
-
164
- status = 500
165
- data = {
166
- name: e.name,
167
- message: e.message,
168
- errors: e.errors,
169
- stack: process.env.APP_DEBUG === 'true' ?
170
- e.stack : undefined
158
+ catch(e){
159
+ if(this._opt.debug){
160
+ console.error(e)
161
+ }
162
+
163
+ status = 500
164
+ data = {
165
+ name: e.name,
166
+ message: e.message,
167
+ errors: e.errors,
168
+ stack: process.env.APP_DEBUG === 'true' ?
169
+ e.stack : undefined
170
+ }
171
171
  }
172
- }
173
- break
174
- }
172
+ break
173
+ }
175
174
 
176
- socket.send(await this.toBinaryData({
177
- _requestId,
178
- status,
179
- data
180
- }))
175
+ socket.send(await this.toBinaryData({
176
+ _requestId,
177
+ status,
178
+ data
179
+ }))
180
+ }
181
181
  });
182
182
 
183
183
  socket.on('close', (e) => {
@@ -193,6 +193,21 @@ class WSS extends EventEmitter2{
193
193
  catch(e){
194
194
  return socket.close(1002, e.message);
195
195
  }
196
+
197
+ const ping = async() => {
198
+ socket.send(await this.toBinaryData({ ping:1 }))
199
+ socket.pinging = true
200
+
201
+ setTimeout(() => {
202
+ if(socket.pinging){
203
+ socket.close(1002, 'ping timeout')
204
+ }
205
+ else{
206
+ setTimeout(ping, (Math.round(Math.random() * 10) % 5) * 5000)
207
+ }
208
+ }, 3000)
209
+ }
210
+ setTimeout(ping, (Math.round(Math.random() * 10) % 5) * 5000)
196
211
  })
197
212
  }
198
213
 
package/src/utils/wss.mjs CHANGED
@@ -77,16 +77,20 @@ class WSS extends EventEmitter2{
77
77
 
78
78
  async connect(reconnect = false){
79
79
 
80
- this._instance = new WebSocket(this._opt.url, this._opt.token)
80
+ this._instance = new WebSocket(this._opt.url, [ this._opt.token ])
81
81
 
82
82
  this._instance.binaryType = 'arraybuffer';
83
83
 
84
84
  this._instance.onmessage = async (event) => {
85
+
85
86
  const obj = await this.fromBinaryData(event.data);
86
87
 
87
- const { _requestId, status, data, auth } = obj
88
+ const { _requestId, status, data, auth, ping } = obj
88
89
 
89
- if(auth){
90
+ if(ping){
91
+ this._instance.send(await this.toBinaryData({ pong:1 }))
92
+ }
93
+ else if(auth){
90
94
  this._instance.isAuth = auth
91
95
 
92
96
  reconnect ? this.emit('reconnect', null, []) : this.emit('connect', null, [])