open-index/open-npm huggingface dataset:
npm package: @skywosafe/rxquery
Description: 一个简单的基于 rxjs 的查询工具
Author: skywokman
Latest version: 0.3.0

# 一个基于 rxjs 简单的查询工具

[![npm version](https://badge.fury.io/js/@skywosafe%2Frxquery.svg)](https://badge.fury.io/js/@skywosafe%2Frxquery)

## 安装

```bash
npm install @skywosafe/rxquery
```

## 示例

### 1. 无自定义查询参数

无自定义查询参数时可用，适用于只使用自带查询参数即可实现功能的场景

```ts
const q = QueryData.create(
  p => {
    return this.userService
      .searchUser({
        // p.pageIndex 是框架自带的查询参数
        pageIndex: p.pageIndex
        // ...
      })
      .pipe(
        map(it => {
          return it.data.users
        })
      )
  },
  // default result on error or null
  { total: 0, items: [] }
)
```

### 2. 携带自定义查询参数

```ts
type State = "enable" | "disbale" | "active"
// 自定义查询参数的类型，这里我们定义state是可选的，所以默认可以不传
const q = QueryData.parameter<{ state?: State }>({}).create(
  p => {
    return this.userService
      .searchUser({
        pageIndex: p.pageIndex,
        // 我们可以在这里使用 p.state 使用自定义的查询参数
        state: p.state
        // ...
      })
      .pipe(
        map(it => {
          const data = it.data.users
          this.cache.clear() // PS: 可以做些额外的事情
          return data
        })
      )
  },
  { total: 0, items: [] }
)
```

### 2. Angular 组件使用示例

```html
<!-- 查询 -->
<input
  type="text"
  placeholder="搜索"
  [ngModel]="q.parameter.searchText"
  (ngModelChange)="q.search('searchText', $event)"
/>
<button (click)="q.refresh()">刷新数据</button>
<button (click)="searchForOnlyEnabled()">只显示启用状态数据</button>

<!-- list -->
<div *ngFor="let item of q.data.items">{{ item.name }}</div>
```

```ts
export class UsersComponent implements OnInit, OnDestroy {
  q = QueryData.createDefault(p =>
    this.userService.searchUser({ pageIndex: p.pageIndex, ...}).pipe(
      map(it => {
        return it.data.users
      })
    ),
    { total: 0, items: [] }
  )

  constructor(private userService: AgentsQueryService) {}

  ngOnInit() {
    // 必须: 开始查询
    this.q.subscribe()

    // 可选: 每3秒刷新数据
    // this.q.enableInterval(3000)
  }

  searchForOnlyEnabled() {
    this.q.search("state", "enable")
  }


  ngOnDestroy() {
    // 必须: 释放
    this.q.close()
  }
}
```
npm package: @skywritermd/socketredis
Description: A module approach to being able to use socket.io, redis and express to scale properly
Latest version: 1.1.0

## @skywritermd/socketRedis

### This is a modular approach to working the socket.io, redis, while being able to scale very quickly.

### Installation
`npm install @skywritermd/socketredis`

### Configuration
`const client=createRedisClient(host,port, auth_pass)`

### Basic Functionality
1. Add Users
2. Remove Users
3. Find Users
4. Find Users by Socket ID
5. Get All Users
npm package: @skyxexchange/permit2-sdk
Description: An sdk for interacting with permit2.
Latest version: 1.0.0

# permit2-sdk

## Local Development

### Checkout the repo
- `git clone --recurse-submodules https://github.com/skyxexchange/permit2-sdk.git`

### Install dependencies
- `yarn`

### Run Unit Tests
- `yarn test`

### Run Forge tests
- `yarn build`
- `yarn interop`
- `(cd permit2 && forge build)`
- `forge test`
npm package: @skyxexchange/redux-multicall
Description: A React + Redux lib for fetching and caching chain state via the MultiCall contract
Latest version: 1.0.0

# MultiCall

A React + Redux library for fetching, batching, and caching chain state via the MultiCall contract.

## Setup

`yarn add @skyxexchange/redux-multicall` or `npm install @skyxexchange/redux-multicall`

## Usage

The usage of this library is similar to [RTK Query](https://redux-toolkit.js.org/rtk-query/overview#create-an-api-slice).

```js
// Somewhere in your app
export const multicall = createMulticall({ reducerPath: 'multicall' })

// In your store's root reducer
export const rootReducer = combineReducers({
  // Other reducers
  [multicall.reducerPath]: multicall.reducer
})
```

To use the updater, you'll need an instance of the SkyX Multicall2 contract:

```js
import { abi as MulticallABI } from '@skyxexchange/v3-core/artifacts/contracts/lens/SkyXInterfaceMulticall.sol/SkyXInterfaceMulticall.json'
import { Contract } from '@ethersproject/contracts'
import { SkyXInterfaceMulticall } from './abi/types'

const multicall2Contract = new Contract(address, MulticallABI, provider) as SkyXInterfaceMulticall
```

For a more detailed example, see basic example app in `./integration-tests`

## Alpha software

The latest version of the SDK is used in production in the SkyX Interface,
but it is considered Alpha software and may contain bugs or change significantly between patch versions.
If you have questions about how to use the SDK, please reach out in the `#dev-chat` channel of the Discord.
Pull requests welcome!
npm package: @skyxexchange/router-sdk
Description: An sdk for routing swaps using SkyX v2 and SkyX v3.
Latest version: 1.0.0

# Alpha software

The latest version of the SDK is used in production in the SkyX Interface,
but it is considered Alpha software and may contain bugs or change significantly between patch versions.
If you have questions about how to use the SDK, please reach out in the `#dev-chat` channel of the Discord.
Pull requests welcome!

# SkyX Swap Router SDK

This SDK is meant to facilitate interactions with the contracts in [swap-router-contracts](https://github.com/skyxexchange/swap-router-contracts).
npm package: @skyxexchange/token-lists
Description: 📚 The Token Lists specification
Author: SkyX
Latest version: 1.0.0

# @skyxexchange/token-lists (beta)

[![Tests](https://github.com/skyxexchange/token-lists/workflows/Tests/badge.svg)](https://github.com/skyxexchange/token-lists/actions?query=workflow%3ATests)
[![npm](https://img.shields.io/npm/v/@skyxexchange/token-lists)](https://unpkg.com/@skyxexchange/token-lists@latest/)

This package includes a JSON schema for token lists, and TypeScript utilities for working with token lists.

The JSON schema represents the technical specification for a token list which can be used in a dApp interface, such as the SkyX Interface.

## What are token lists?

SkyX Token Lists is a specification for lists of token metadata (e.g. address, decimals, ...) that can be used by any dApp interfaces that needs one or more lists of tokens.

Anyone can create and maintain a token list, as long as they follow the specification.

Specifically an instance of a token list is a [JSON](https://www.json.org/json-en.html) blob that contains a list of 
[ERC20](https://github.com/ethereum/eips/issues/20) token metadata for use in dApp user interfaces.
Token list JSON must validate against the [JSON schema](https://json-schema.org/) in order to be used in the SkyX Interface.
Tokens on token lists, and token lists themselves, are tagged so that users can easily find tokens.

## JSON Schema $id

The JSON schema ID is [https://skyx.exchange/tokenlist.schema.json](https://skyx.exchange/tokenlist.schema.json)