open-index/open-npm huggingface dataset:
npm package: @roundation/roundation
Description: Build scale React application with autonomous and routing-aware components
Author: Zheeeng
Latest version: 0.0.48

# Roundation
Build scale React application with autonomous and routing-aware components

# WIP

# Basic Usage

```javascript
import React from 'react'
import ReactDOM from 'react-dom'
import Roundation from 'roundation'

ReactDOM.render(
  <Roundation />,
  document.getElementById('root'),
)
```
npm package: @roundfly/swag
Description: A thin CLI wrapper over quicktype that deserializes JSON to model objects from Swagger
Author: roundfly
Latest version: 1.0.1

## SWAG

Swag is a CLI tool that when given a Swagger URL which points to JSON deserializes the JSON and filters out redundant key:value pairs, this is then passed to [quicktype](https://quicktype.io) which outputs code in one of its supported languages. If no language is passed as an argument Swag then defaults to Swift.

For more advanced JSON decoding options I encourage you to look into [quicktype](https://github.com/quicktype/quicktype), seeing as Swag is just a thin wrapper over it.

## Installation
```bash
npm install @roundfly/swag
```
## Usage
```bash
swag https://my-awesome-api.com/swagger/v1/swagger.json --lang js
```
Inputing the above in a shell outputs a models.js file with all your Swagger models deserialized.
npm package: @roundingwellos/babel-plugin-handlebars-inline-precompile
Description: Precompile inline Handlebars templates.
Latest version: 3.0.1

# babel-plugin-handlebars-inline-precompile

Precompile inline Handlebars templates.

## Example

**In**

```js
import hbs from 'handlebars-inline-precompile';

hbs`Hello World!`;
```

**Out**

```js
import _Handlebars from 'handlebars/runtime';

_Handlebars.template({ /* A bunch of crazy template stuff */ })
```

## Installation

```sh
$ npm install babel-plugin-handlebars-inline-precompile
```

## Usage

### Via `.babelrc` (Recommended)

**.babelrc**

```json
{
  "plugins": ["handlebars-inline-precompile"]
}
```

### Via CLI

```sh
$ babel --plugins handlebars-inline-precompile script.js
```

### Via Node API

```javascript
require("babel-core").transform("code", {
  plugins: ["handlebars-inline-precompile"]
});
```
npm package: @roundjs/fission-h5-vite-plugin
Description: #### Description {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
Author: 13
Latest version: 1.0.22-alpha.1

# 多端同构

## 介绍

使用vue语法开发小程序和h5

底层用 `esbuild` 作为基础架构
npm package: @roundjs/reactivity
Description: @Vue/reactivity compatible with proxy
Author: 13
Latest version: 3.2.27

# @roundjs/reactivity

## 说明

兼容了 `@vue/reactivity` 在不支持 `Proxy`环境使用的问题

兼容方案不支持`Collections(Set/Map)`、`Symbol`，通过了除了 `Set/Map` 外的 137 个测试用例

使用 `Object.defineProperty` 替代了 `Proxy`

## 使用

```bash
npm i @roundjs/reactivity
# or
yarn add @roundjs/reactivity
```

```javascript
import { reactive, effect } from '@roundjs/reactivity'

const data = reactive({
  name: '13',
})

effect(() => {
  console.log('更新', data.name)
})

data.name = '14'
```

因为兼容方案类似 vue2 的，所以无法对之前不存在的属性进行劫持，所以分为以下两种情况

### 已存在属性

#### 对象：

```javascript
const name = ref('11111')

const obj = reactive({
  deep: {
    name: name,
  },
})

effect(() => {
  console.log('name：', obj.deep && obj.deep.name)
})

name.value = '22222'

obj.deep.name = '33333'

// effect 被触发三次
// 初始化触发 name: 11111
// 修改 name ref触发：22222
// 修改obj触发：33333
```

#### array

```javascript
const name = ref('11111')

const obj = reactive([{ name: name }])

effect(() => {
  console.log(obj[0].name)
})

obj[0].name = '2222'

obj[0] = {
  name: '3333',
}
// log
// 11111
// 22222
// 33333
```

不同于 `vue2` 的一点，可以直接修改数组的已有下标

修改数组`length`可以使用 `set` 函数`set(array, 'length', 5)`

#### 修改原属性

```javascript
const name = ref('11111')
const arr = [{ name: name, age: 12 }]
const obj = reactive(arr)

effect(() => {
  console.log(obj[0].name, obj[0].age)
})

arr[0].age = 30 // 修改代理原对象 不会触发访问/跟踪

const arr1 = toRaw(obj)

console.log(arr1 === arr) // true

obj[0].name = '22222'

// log
// 11111 12
// 22222 30
```

修改劫持前的对象并不会触发响应，但是原属性的变化会被映射到代理上

### 未存在属性

提供了`get`、`set`、`del`、`has`、`ownKeys`函数来兼容不支持 `Proxy` 和对不存在属性的支持

#### 对不存在的属性进行监听/设置/删除使用 get / set / del

```javascript
const obj = reactive({})

effect(() => {
  console.log(get(obj, 'name'))
})

set(obj, 'name', '22222')
del(obj, 'name')

// log
// undefined
// 22222
// undefined
```

#### ownKeys 遍历不存在的值

```javascript
const obj = reactive({})

effect(() => {
  for (const key in ownKeys(obj)) {
    console.log(key)
  }
})

set(obj, 'name', '22222')
// log
// name
```

#### has 判断不存在的值

```javascript
const obj = reactive({})

effect(() => {
  console.log(has(obj, 'name'))
})

set(obj, 'name', '22222')

// log
// false
// true
```

## Credits

The implementation of this module is inspired by the following prior art in the JavaScript ecosystem:

- [Meteor Tracker](https://docs.meteor.com/api/tracker.html)
- [nx-js/observer-util](https://github.com/nx-js/observer-util)
- [salesforce/observable-membrane](https://github.com/salesforce/observable-membrane)