ranuts 0.1.0-alpha → 0.1.0-alpha.1

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.
Files changed (127) hide show
  1. package/assets/img/sort/bubble.gif +0 -0
  2. package/assets/img/sort/complexity.png +0 -0
  3. package/assets/img/sort/select.gif +0 -0
  4. package/assets/img/sort/sort.png +0 -0
  5. package/assets/img/tree/balanceTree.png +0 -0
  6. package/dist/index.d.ts +15 -8
  7. package/dist/index.js +1078 -44
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.umd.cjs +1 -1
  10. package/dist/index.umd.cjs.map +1 -1
  11. package/dist/src/file/fileInfo.d.ts +7 -0
  12. package/dist/src/file/fs.d.ts +2 -0
  13. package/dist/src/file/readDir.d.ts +6 -0
  14. package/dist/src/file/readFile.d.ts +8 -0
  15. package/dist/src/file/watchFile.d.ts +8 -0
  16. package/dist/src/file/writeFile.d.ts +8 -0
  17. package/dist/src/mode/subscribe.d.ts +16 -0
  18. package/dist/src/ranlog/behavior.d.ts +1 -0
  19. package/dist/src/ranlog/env.d.ts +5 -0
  20. package/dist/src/ranlog/error.d.ts +2 -0
  21. package/dist/src/ranlog/index.d.ts +26 -0
  22. package/dist/src/ranlog/performance.d.ts +21 -0
  23. package/dist/src/ranlog/report.d.ts +7 -0
  24. package/dist/src/ranlog/request.d.ts +18 -0
  25. package/dist/src/ranlog/utils.d.ts +19 -0
  26. package/dist/src/utils/filterObj.d.ts +8 -0
  27. package/dist/src/utils/str2Xml.d.ts +8 -0
  28. package/dist/src/vnode/h.d.ts +6 -0
  29. package/dist/src/vnode/hooks.d.ts +23 -0
  30. package/dist/src/vnode/htmlDomApi.d.ts +33 -0
  31. package/dist/src/vnode/init.d.ts +2 -0
  32. package/dist/src/vnode/is.d.ts +5 -0
  33. package/dist/src/vnode/modules/attributes.d.ts +8 -0
  34. package/dist/src/vnode/modules/class.d.ts +8 -0
  35. package/dist/src/vnode/modules/index.d.ts +7 -0
  36. package/dist/src/vnode/modules/listeners.d.ts +14 -0
  37. package/dist/src/vnode/modules/props.d.ts +8 -0
  38. package/dist/src/vnode/modules/style.d.ts +14 -0
  39. package/dist/src/vnode/vnode.d.ts +31 -0
  40. package/package.json +32 -9
  41. package/readme.md +1 -0
  42. package/src/astParser/Parser.ts +654 -0
  43. package/src/astParser/Tokenizer.ts +447 -0
  44. package/src/astParser/nodeTypes.ts +194 -0
  45. package/src/astParser/utils.ts +27 -0
  46. package/src/babel/parser.ts +10 -0
  47. package/src/colors/fmt.ts +29 -0
  48. package/src/colors/isColorSupported.ts +13 -0
  49. package/src/file/appendFile.ts +29 -0
  50. package/src/file/fileInfo.ts +22 -0
  51. package/src/file/fs.ts +9 -0
  52. package/src/file/readDir.ts +18 -0
  53. package/src/file/readFile.ts +26 -0
  54. package/src/file/watchFile.ts +31 -0
  55. package/src/file/writeFile.ts +38 -0
  56. package/src/mode/subscribe.ts +89 -0
  57. package/src/ran/commit.ts +0 -0
  58. package/src/ran/dom.ts +0 -0
  59. package/src/ran/hooks.ts +0 -0
  60. package/src/ran/reconcile.ts +0 -0
  61. package/src/ran/schedule.ts +0 -0
  62. package/src/ranlog/behavior.ts +5 -0
  63. package/src/ranlog/console.ts +16 -0
  64. package/src/ranlog/env.ts +29 -0
  65. package/src/ranlog/error.ts +11 -0
  66. package/src/ranlog/performance.ts +65 -0
  67. package/src/ranlog/report.ts +33 -0
  68. package/src/ranlog/request.ts +60 -0
  69. package/src/ranlog/utils.ts +92 -0
  70. package/src/ranpack/ast/Declaration.ts +120 -0
  71. package/src/ranpack/ast/Node.ts +7 -0
  72. package/src/ranpack/ast/Reference.ts +32 -0
  73. package/src/ranpack/ast/Scope.ts +80 -0
  74. package/src/ranpack/bundle.ts +50 -0
  75. package/src/ranpack/graph.ts +143 -0
  76. package/src/ranpack/module.ts +431 -0
  77. package/src/ranpack/moduleLoader.ts +73 -0
  78. package/src/ranpack/plugins.ts +70 -0
  79. package/src/ranpack/statement.ts +66 -0
  80. package/src/ranpack/utils/buildScope.ts +77 -0
  81. package/src/ranpack/utils/findReference.ts +36 -0
  82. package/src/ranpack/utils/isFunctionDeclaration.ts +41 -0
  83. package/src/ranpack/utils/makeLegalIdentifier.ts +18 -0
  84. package/src/ranpack/utils/object.ts +8 -0
  85. package/src/ranpack/utils/resolve.ts +32 -0
  86. package/src/ranpack/utils/walk.ts +66 -0
  87. package/src/ranpack/ws.ts +269 -0
  88. package/src/server/connectType.ts +9 -0
  89. package/src/server/encodeUrl.ts +46 -0
  90. package/src/server/escapeHtml.ts +46 -0
  91. package/src/server/get.ts +36 -0
  92. package/src/server/jitter.ts +77 -0
  93. package/src/server/mimeType.ts +858 -0
  94. package/src/server/paresUrl.ts +40 -0
  95. package/src/server/send.ts +89 -0
  96. package/src/server/server.ts +67 -0
  97. package/src/server/status.ts +191 -0
  98. package/src/server/traverse.ts +54 -0
  99. package/src/server/websocket.ts +200 -0
  100. package/src/sort/bubble.ts +21 -0
  101. package/src/sort/bucket.ts +11 -0
  102. package/src/sort/count.ts +10 -0
  103. package/src/sort/heap.ts +10 -0
  104. package/src/sort/insert.ts +20 -0
  105. package/src/sort/merge.ts +35 -0
  106. package/src/sort/quick.ts +50 -0
  107. package/src/sort/radix.ts +11 -0
  108. package/src/sort/randomArray.ts +21 -0
  109. package/src/sort/select.ts +23 -0
  110. package/src/sort/shell.ts +22 -0
  111. package/src/utils/compose.ts +37 -0
  112. package/src/utils/filterObj.ts +21 -0
  113. package/src/utils/mergeObj.ts +12 -0
  114. package/src/utils/startTask.ts +15 -0
  115. package/src/utils/str2Xml.ts +26 -0
  116. package/src/utils/taskEnd.ts +14 -0
  117. package/src/vnode/h.ts +108 -0
  118. package/src/vnode/hooks.ts +25 -0
  119. package/src/vnode/htmlDomApi.ts +199 -0
  120. package/src/vnode/init.ts +429 -0
  121. package/src/vnode/is.ts +17 -0
  122. package/src/vnode/modules/attributes.ts +70 -0
  123. package/src/vnode/modules/class.ts +46 -0
  124. package/src/vnode/modules/listeners.ts +123 -0
  125. package/src/vnode/modules/props.ts +41 -0
  126. package/src/vnode/modules/style.ts +118 -0
  127. package/src/vnode/vnode.ts +65 -0
@@ -0,0 +1,77 @@
1
+ interface Options {
2
+ url?: string // 请求地址
3
+ duration?: number // 请求的间隔
4
+ count?: number // 请求的次数
5
+ }
6
+
7
+ interface ReturnType {
8
+ ping:number,
9
+ jitter:number
10
+ }
11
+
12
+ /**
13
+ * @description: 图片请求
14
+ * @param {string} url
15
+ * @return {Promise<ImageLoadError | number>}
16
+ */
17
+ const imageRequest = (url?: string): Promise<number> => {
18
+ return new Promise((resolve, reject) => {
19
+ const img = new Image()
20
+ const startTime = new Date().getTime()
21
+ // 此处选择加载 github 的 favicon,大小为2.2kB
22
+ img.src = url ? url : `https://github.com/favicon.ico?d=${startTime}`
23
+ img.onload = () => {
24
+ const endTime = new Date().getTime()
25
+ const delta = endTime - startTime
26
+ resolve(delta)
27
+ }
28
+ img.onerror = (err) => {
29
+ console.log('error', err)
30
+ reject(err)
31
+ }
32
+ })
33
+ }
34
+
35
+ /**
36
+ * @description: 间隔一定时间,执行指定的函数
37
+ * @param {HandlerFunction} handler
38
+ * @param {array} params
39
+ */
40
+ const durationHandler = <T,U>(handler: (...args:T[]) => U, ...params: T[]):(a:number)=>Promise<U> =>
41
+ (duration: number): Promise<U> =>
42
+ new Promise((resolve, reject) => {
43
+ setTimeout(async () => {
44
+ try {
45
+ const result = await handler(...params)
46
+ resolve(result)
47
+ } catch (error) {
48
+ reject(error)
49
+ }
50
+ }, duration)
51
+ })
52
+
53
+ /**
54
+ * @description: 通过请求来测试当前网络的ping值
55
+ * @param {*} options
56
+ */
57
+ const networkSpeed = async (options: Options):Promise<ReturnType> => {
58
+ const { url, duration = 3000, count = 5 } = options
59
+ // 抖动,用来描述网络的波动情况。比如每秒测量一次 ping 值,5s 后取五次测量结果的最大最小值求差,可以看出网络的波动情况,差值越小代表网络越稳定;
60
+ let jitter = 0
61
+ // 平均的ping值
62
+ let ping = 0
63
+ // ping值的数组
64
+ const pingList: Array<number> = []
65
+ for(let i = 0; i < count; i++){
66
+ const handler = durationHandler(imageRequest, url)
67
+ const delta = await handler(duration)
68
+ pingList.push(delta)
69
+ }
70
+ const maxPing = Math.max(...pingList)
71
+ const minPing = Math.min(...pingList)
72
+ jitter = maxPing - minPing
73
+ ping = pingList.reduce((a, b) => a + b) / pingList.length
74
+ return { ping, jitter }
75
+ }
76
+
77
+ export default networkSpeed