open-index/open-npm huggingface dataset:
npm package: @konghayao/request
Description: 同时支持 nodejs 和 browser
Latest version: 1.5.5

# request 模板请求函数

同时支持 nodejs 和 browser

## request 请求主函数的使用

```js
import {
    request,
    Transaction,
} from "https://cdn.jsdelivr.net/npm/@konghayao/request/dist/request.browser.js";
// import { request, Transaction } from "@konghayoa/request";
const root = "http://localhost:2021";

request({
    url: root + "/post/json",
    method: "post",
    headers: {}, // 请求头

    // get 请求的参数也是以对象格式统一写在 body 里面
    body: {
        a: 1,
        b: 2,
    },

    // string(default), json, binary,
    // 表示 body 使用什么格式进行传输，当为 get 请求时无效
    bodyType: "json",

    // json(default), text, arrayBuffer, buffer (nodejs), blob (browser)
    // 数据返回的时候以什么样的格式进行解析
    returnType: "json",
}).then((res) => {
    // res = { result, headers(nodejs), cookies(nodejs) }

    console.log(res);
});
```

## request 请求队列

```js
import { Transaction } from "https://cdn.jsdelivr.net/npm/@konghayao/promise-transaction@1.4.0/dist/promiseTransaction.esm.js";

// 传入请求的二维数组
const task = new Transaction([
    ["request1", () => request1({ url: "/" })],
    [
        "request2",
        (collection) => {
            // 在这个函数中可以通过
            console.log(collection["request1"]);
        },
    ],
]);

// 生成之后必须要手动启动队列
task.run();
```
npm package: @konghayao/task-system
Description: ## ObjectParser
Latest version: 1.1.5

# Parser

## ObjectParser

```js
import ObjectParser from "./ObjectParser.js";
const op = new ObjectParser({
    type: "html", // html, svg 或者 xml
});

// 以第二个参数的方式解构 yourObject
op.parse(yourObject, {
    // data@codeData 的意思是 解构出 data 属性的值并放置在上一个结果对象的 codeData 属性上
    // 这里的属性值为空字符串的意思是返回本身值
    code: { "data@codeData": "" },

    // @ 后面不接参数的意思是使用前面的 name2 作为放置属性
    // 嵌套解构会按顺序嵌套出结果
    name1: { "name2@": { name3: { "name4@": "" } } },
    // result => {name2:{name4:'我是 name4'}}

    data: {
        // 注意，数组解构的时候，值是数组的那个名称必须放置名称，否则不会解构出结果
        "dataDeep@dataDeep": [
            {
                "name@": "",
            },
        ],
    },
});
```

## HTMLParser

```js
import ObjectParser from "./ObjectParser.js";
const op = new ObjectParser();

// 以第二个参数的方式解构 yourObject
op.parse(document, {
    // 找到所有的 .btn 并将 innerText 放入 result 中
    ".btn@result": ["innerText"],

    // 找到第一个 .btn
    ".btn@result1": "innerText",

    // 所有形式其实和 ObjectParser 是一致的
});
```