wll8

wll8

呜啦啦吧~

Member Since 4 years ago

Experience Points
8
follower
Lessons Completed
6
follow
Lessons Completed
103
stars
Best Reply Awards
30
repos

1582 contributions in the last year

Pinned
⚡ Interface joint debugging tool set.
⚡ Add `Try it out` function like swagger on redoc.
⚡ 简化命令行操作。
⚡ 根据 aardio 帮助手册以及其他资料制作的文档。在线文档: https://www.hongqiye.com/doc/aardio/
⚡ 基于 mpvue 的微信小程序开发基础环境, 包含常用插件及工具库.
⚡ 在 vscode 中运行 aardio 代码, 有代码高亮, 代码片段, 语法提示等功能.
Activity
Jan
12
4 days ago
started
started time in 4 days ago
push

wll8 push wll8/mockm

wll8
wll8

fix: 在判断是否进行代理时应排除已禁用的 webApi

wll8
wll8

fix: 处理 #36 导致的错误: 没有处理重构后的 http data

wll8
wll8

feat: 自动安装依赖时, 也显示安装目录. 当安装失败时可以手动执行命令.

wll8
wll8

build: 更新版本号为 1.1.26-alpha.2

commit sha: 1e71970f9c8c9939f5b001844dbcb15b74311e1b

push time in 4 days ago
Activity icon
issue

wll8 issue wll8/mockm

wll8
wll8

feat: 自动安装依赖时, 也显示安装目录. 当安装失败时可以手动执行命令.

cd node_modules/mockm/
npx cnpm i [email protected] --product --no-save --registry=https://registry.npmjs.org/
cd ${刚才所在位置}
Activity icon
created tag

wll8 in wll8/mockm create tag v1.1.26-alpha.2

createdAt 4 days ago
Activity icon
issue

wll8 issue wll8/mockm

wll8
wll8

refactor: axios 请求方法应使用实例以便于统一配置

Activity icon
issue

wll8 issue wll8/mockm

wll8
wll8

fix: 当 config.api 中的接口与后端接口路径相同时, 应覆盖后端接口

重现

稳定重现。这只在 proxy 中配置了除了 / 以外的路径时才会发生。

module.exports = {
  proxy: {
    '/': `http://www.httpbin.org/`,
    '/abc': `http://www.httpbin.org/anything/`,
  },
  api: {
    '/abc/11': 11,
  },
}
  • 期望 http :9000/abc/11 返回自定义 api 中的 11
  • 实际得到的内容是 http://www.httpbin.org/anything/11 的返回内容。

环境

  • mockm v1.1.25

  • node v14.15.5

  • os windows10 x64 v10.0.19042

started
started time in 4 days ago
Jan
7
1 week ago
Activity icon
issue

wll8 issue comment nuysoft/Mock

wll8
wll8

Update mock.js

在mock.js文件中的string方法这边,字符串替换的时候需要对$符号做特殊处理, 主要是result = result.replace(ph, phed);这一句用到了正则表达式, 而 $$ $& $` $' $n $<分组名称>这些组合是有特殊含义的

wll8
wll8

好像应该修改 src 目录下的。

Activity icon
issue

wll8 issue comment nuysoft/Mock

wll8
wll8

vite+vue3项目中mock怎么使用???

vite+vue3项目中mock怎么使用???

wll8
wll8

运行这条命令即可:

npx mockm --template
Activity icon
issue

wll8 issue comment nuysoft/Mock

wll8
wll8

随机生成字符串的方法有bug,以及修改的方法

在mock.js文件中的string方法这边,字符串替换的时候需要对$符号做特殊处理, 主要是result = result.replace(ph, [phed);这一句用到了正则表达式, 而 $$ $& $` $' $n $<分组名称>这些组合是有特殊含义的,可阅读这里 因此,修改思路如下:

  1. 替换前把$符号的组合拆掉,我是填充了个空格来处理;
  2. 替换完后,再把空格处理掉就行了

修改后的代码可参考,主要是加了 if(phed.indexOf('$')>-1){ phed=phed.replace(/\$/g,'$ '); } 和修改了 return result.indexOf(' ')>-1?result.replace(/ /g,''):result; 这两个地方

Jan
6
1 week ago
started
started time in 1 week ago
Jan
4
1 week ago
push

wll8 push wll8/mockm

wll8
wll8
wll8
wll8

refactor: axios 请求方法应使用实例以便于统一配置

https://github.com/wll8/mockm/issues/36

wll8
wll8

chore: 添加 eslint 检验功能

wll8
wll8

fix: 修正根据 eslint 推测的可能引发的错误

commit sha: e73487cbae102ffa3f9dcf03018099f9c753b90d

push time in 1 week ago
started
started time in 1 week ago
Activity icon
issue

wll8 issue comment axios/axios

wll8
wll8

The proxy is not working.

Describe the bug

The proxy is not working.

To Reproduce

  • Add proxy configuration to environment variables:
    http_proxy=http://127.0.0.1:1080
    https_proxy=http://127.0.0.1:1080
    
  • Verify that the configuration can be used normally:
    C:\>http --body https://www.httpbin.org/get
    {
        "args": {},
        "headers": {
            "Accept": "*/*",
            "Accept-Encoding": "gzip, deflate",
            "Host": "www.httpbin.org",
            "User-Agent": "HTTPie/2.4.0",
            "X-Amzn-Trace-Id": "Root=1-61d3f98e-09f187274f147f9d37c5fd15"
        },
        "origin": "*.*.*.*",
        "url": "https://www.httpbin.org/get"
    }
    # *.*.*.* Is already the ip of the proxy server
    
  • npm i [email protected]
  • Create a t.js file with the following content:
    const axios = require(`axios`)
    ;!(async () => {
      const httpData = await axios.get(`https://httpbin.org/get`)
      console.log(`httpData`, httpData.data) // The response is very slow, and eventually if it is empty''
      // Check httpData.request.agent.sockets there is an object of 127.0.0.1:1080:
    })();
    
  • Run t.js: node t.js
    node -e "console.log(new Date().toISOString())" && node t.js && node -e "console.log(new Date().toISOString())"
    
  • Output result: It can be found that the request has passed a long time and the response result is empty.
    D:\git2\mockm>node -e "console.log(new Date().toISOString())" && node t.js && node -e "console.log(new Date().toISOString())"
    
    2022-01-04T07:24:12.324Z
    httpData 
    2022-01-04T07:25:18.061Z
    

Expected behavior

You can get the response content of the interface.

D:\git2\mockm>node -e "console.log(new Date().toISOString())" && node t.js && node -e "console.log(new Date().toISOString())"
2022-01-04T07:35:18.963Z
httpData {
  args: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    Host: 'httpbin.org',
    'User-Agent': 'axios/0.24.0',
    'X-Amzn-Trace-Id': 'Root=1-61d3f8b8-54eeb7fd308e15ab414f5441'
  },
  origin: '*.*.*.*',
  url: 'https://httpbin.org/get'
}
2022-01-04T07:35:20.229Z

D:\git2\mockm>

Environment

  • Axios Version 0.24.0
  • Adapter HTTP/HTTPS
  • Node.js Version v14.15.5
  • OS: windows10 x64
  • Additional Library Versions [e.g. React 16.7, React Native 0.58.0]

Additional context/Screenshots

This may be related to this question:

Proxy service establishment: Server linux: https://github.com/shadowsocks/go-shadowsocks2/releases/tag/v0.1.5 Client windows: https://github.com/shadowsocks/shadowsocks-windows/releases/tag/4.4.0.0

wll8
wll8

This problem is very important because it causes programs that would otherwise work to be unavailable. These programs cannot be set to proxy: false

Activity icon
issue

wll8 issue axios/axios

wll8
wll8

The proxy is not working.

Describe the bug

The proxy is not working.

To Reproduce

  • Add proxy configuration to environment variables:
    http_proxy=http://127.0.0.1:1080
    https_proxy=http://127.0.0.1:1080
    
  • Verify that the configuration can be used normally:
    C:\>http --body https://www.httpbin.org/get
    {
        "args": {},
        "headers": {
            "Accept": "*/*",
            "Accept-Encoding": "gzip, deflate",
            "Host": "www.httpbin.org",
            "User-Agent": "HTTPie/2.4.0",
            "X-Amzn-Trace-Id": "Root=1-61d3f98e-09f187274f147f9d37c5fd15"
        },
        "origin": "*.*.*.*",
        "url": "https://www.httpbin.org/get"
    }
    # *.*.*.* Is already the ip of the proxy server
    
  • npm i [email protected]
  • Create a t.js file with the following content:
    const axios = require(`axios`)
    ;!(async () => {
      const httpData = await axios.get(`https://httpbin.org/get`)
      console.log(`httpData`, httpData.data) // The response is very slow, and eventually if it is empty''
      // Check httpData.request.agent.sockets there is an object of 127.0.0.1:1080:
    })();
    
  • Run t.js: node t.js
    node -e "console.log(new Date().toISOString())" && node t.js && node -e "console.log(new Date().toISOString())"
    
  • Output result: It can be found that the request has passed a long time and the response result is empty.
    D:\git2\mockm>node -e "console.log(new Date().toISOString())" && node t.js && node -e "console.log(new Date().toISOString())"
    
    2022-01-04T07:24:12.324Z
    httpData 
    2022-01-04T07:25:18.061Z
    

Expected behavior

You can get the response content of the interface.

D:\git2\mockm>node -e "console.log(new Date().toISOString())" && node t.js && node -e "console.log(new Date().toISOString())"
2022-01-04T07:35:18.963Z
httpData {
  args: {},
  headers: {
    Accept: 'application/json, text/plain, */*',
    Host: 'httpbin.org',
    'User-Agent': 'axios/0.24.0',
    'X-Amzn-Trace-Id': 'Root=1-61d3f8b8-54eeb7fd308e15ab414f5441'
  },
  origin: '*.*.*.*',
  url: 'https://httpbin.org/get'
}
2022-01-04T07:35:20.229Z

D:\git2\mockm>

Environment

  • Axios Version 0.24.0
  • Adapter HTTP/HTTPS
  • Node.js Version v14.15.5
  • OS: windows10 x64
  • Additional Library Versions [e.g. React 16.7, React Native 0.58.0]

Additional context/Screenshots

This may be related to this question:

Proxy service establishment: Server linux: https://github.com/shadowsocks/go-shadowsocks2/releases/tag/v0.1.5 Client windows: https://github.com/shadowsocks/shadowsocks-windows/releases/tag/4.4.0.0

Activity icon
issue

wll8 issue wll8/mockm

wll8
wll8

refactor: axios 请求方法应使用实例以便于统一配置

started
started time in 1 week ago
Dec
30
2 weeks ago
Activity icon
issue

wll8 issue MrXujiang/xijs

wll8
wll8

parser 功能目前有哪些情况不支持的或待处理的吗?

  • 文档上说支持 函数、正则,那对于其他类型呢?例如 Date 啥啥的。
  • 另外,如果类似 xfunc 的前缀已被要序列号的数据使用了呢?但由于数据的不可知性,是无法知道哪个前缀会被占用的。
  • 继上面问题之后:如果要实现 获取代码中的片段 功能是否可靠?
const obj = {
  a: 1,
  b() {
    // 这是一些注释
    console.log(123)
  },
}

// 如果获取 obj 的原始代码?
const code = getCode(obj)
// 输出以下字符串

code ===

 {
  a: 1,
  b() {
    // 这是一些注释
    console.log(123)
  },
}
Dec
27
2 weeks ago
Activity icon
created branch

wll8 in wll8/spider-proxy create branch main

createdAt 2 weeks ago
Activity icon
created repository

wll8 in wll8/spider-proxy create repository

createdAt 2 weeks ago
started
started time in 2 weeks ago
started
started time in 2 weeks ago
started
started time in 2 weeks ago
Dec
24
3 weeks ago
started
started time in 3 weeks ago
Dec
23
3 weeks ago
Activity icon
issue

wll8 issue comment thx/gogocode

wll8
wll8

feat: 改善 find 方法以更好的查找所需内容

初学 ggc, 我的理解是它提供了一种基于特征来操作内容的方法来避免 ast 的繁琐操作, 提此 issues 是希望选择器更直观易用, 愚议轻拍, 手动狗头~

用例

假设以下场景: 获取 vue 中 export default 下的 data 对象

当 data 是函数的时候, 使用 find 查找到第一层内容

  let code
  let dataObj
  code = `
    export default {
      data() {
        const fn = () => {}
        return {
          a: 123,
          b(){
            const fn = () => {}
            return {
              a: 456,
            }
          }
        }
      }
    }
  `
  dataObj = $(code).find(`export default {}`).find(`return $_$obj`).match
    .obj[0].value
  console.log(`dataObj`, dataObj)
dataObj {
  a: 123,
  b(){
    const fn = () => {}
    return {
      a: 456,
    }
  }
}

但是, 当 data 不是函数且孙级作用域下有相似特征但其实不符合条件时也被查找到了, 导致用例失败

  code = `
    export default {
      data: {
        a: 123,
        b(){
          const fn = () => {}
          return {
            a: 456,
          }
        }
      }
    }
  `
{
  a: 456,
}

为了避免这种情况, 我们不得不编写额外的逻辑来单独处理此问题

jquery 是如何方便的查找到想要的内容呢?

有以下考虑: 在 jq 中因为是基于 dom 操作的, 有强大的 css 选择器/xpath 可用, 并且 jq 本身也扩展了一些选择器. 这使得要查找例如 父元素/子元素/首个/每个/属性/类型 都不在话下, 且不需要额外的学习成本

但是在 ast 中是否有类似的选择器可用吗? 如果没有, 那么 ast 可以用 json 表示的话, 是可以利用 json 社区的选择器? 参考:

伪代码 - 类 css 选择器

目前的 find 方法支持 string | node 参数. 如果考虑兼容现有参数的模式下, 是否可以使用数组来进行选择器优化? 例: 获取 vue 中 export default 下的 data 对象

  $(code).find([`export default {}`, `>`, `return $_$obj`])

可以注意到, 以上代码其实类似于 css 选择器的 div > p:

$(code).find([
  `export default {}`, // 特征
  `>`, // 关系符, 表示只在父作用域下查找下一个特征
  `return $_$obj` // 特征
])

当然要实现一个功能特性可能要考虑比较多的其他情况, 以上修改方式可能造成 ggc 的代码修改过多.

伪代码 - 为 find 添加新选项.

这应该是 ggc 修改代码较少的方法.

$(code)
  .find(`export default {}`)
  .find(`return $_$obj`, {
    scopeDeep: 1, // 作用域级别1
    scopeDeep: `>`, // 或作用域关系表示符
  })
wll8
wll8

补充用例:

  // 获取 data return 前面的内容
  // 例如以下代码:
  // 要求限定在第一个 x() 的作用域下找 return {}
  // 期望: 找不到才对
  // 实际: 由于孙作用域里也有一个符合规则的 x(){return {}} 所以查找错了
  const code = `
    function x() {
      const o = {
        a: 123,
        b(){
          const fn = function x() {}
          function x() {
            return {
              a: 456,
              b(){
                const fn = function x() {}
                return {
                  a: 789,
                }
              }
            }
          }
        }
      }
    }
  `
  const dataObj = $(code).find(`function x() {}`).find(`return $_$obj`).match
    .obj[0].value
  console.log(`basebase`, dataObj)
Activity icon
issue

wll8 issue thx/gogocode

wll8
wll8

改善 find 方法以更好的查找所需内容

初学 ggc, 我的理解是它提供了一种基于特征来操作内容的方法来避免 ast 的繁琐操作, 提此 issues 是希望选择器更直观易用, 愚议轻拍, 手动狗头~

用例

假设以下场景: 获取 vue 中 export default 下的 data 对象

当 data 是函数的时候, 使用 find 查找到第一层内容

  let code
  let dataObj
  code = `
    export default {
      data() {
        const fn = () => {}
        return {
          a: 123,
          b(){
            const fn = () => {}
            return {
              a: 456,
            }
          }
        }
      }
    }
  `
  dataObj = $(code).find(`export default {}`).find(`return $_$obj`).match
    .obj[0].value
  console.log(`dataObj`, dataObj)
dataObj {
  a: 123,
  b(){
    const fn = () => {}
    return {
      a: 456,
    }
  }
}

但是, 当 data 不是函数且孙级作用域下有相似特征但其实不符合条件时也被查找到了, 导致用例失败

  code = `
    export default {
      data: {
        a: 123,
        b(){
          const fn = () => {}
          return {
            a: 456,
          }
        }
      }
    }
  `
{
  a: 456,
}

为了避免这种情况, 我们不得不编写额外的逻辑来单独处理此问题

jquery 是如何方便的查找到想要的内容呢?

有以下考虑: 在 jq 中因为是基于 dom 操作的, 有强大的 css 选择器/xpath 可用, 并且 jq 本身也扩展了一些选择器. 这使得要查找例如 父元素/子元素/首个/每个/属性/类型 都不在话下, 且不需要额外的学习成本

但是在 ast 中是否有类似的选择器可用吗? 如果没有, 那么 ast 可以用 json 表示的话, 是可以利用 json 社区的选择器? 参考:

伪代码 - 类 css 选择器

目前的 find 方法支持 string | node 参数. 如果考虑兼容现有参数的模式下, 是否可以使用数组来进行选择器优化? 例: 获取 vue 中 export default 下的 data 对象

  $(code).find([`export default {}`, `>`, `return $_$obj`])

可以注意到, 以上代码其实类似于 css 选择器的 div > p:

$(code).find([
  `export default {}`, // 特征
  `>`, // 关系符, 表示只在父作用域下查找下一个特征
  `return $_$obj` // 特征
])

当然要实现一个功能特性可能要考虑比较多的其他情况, 以上修改方式可能造成 ggc 的代码修改过多.

伪代码 - 为 find 添加新选项.

这应该是 ggc 修改代码较少的方法.

$(code)
  .find(`export default {}`)
  .find(`return $_$obj`, {
    scopeDeep: 1, // 作用域级别1
    scopeDeep: `>`, // 或作用域关系表示符
  })
started
started time in 3 weeks ago
Dec
22
3 weeks ago
started
started time in 3 weeks ago
Previous