open-index/open-npm huggingface dataset:
npm package: @gmsoft/express
Description: 表达式执行器
Author: dou
Latest version: 1.1.0

# gmsoft-express - 表达式执行器

[![NPM](https://img.shields.io/npm/v/gmsoft-express.svg)](https://www.npmjs.com/package/gmsoft-express)
[![DOWNLOAD](https://img.shields.io/npm/dt/gmsoft-express.svg)](https://www.npmjs.com/package/gmsoft-express)

## How  

``` shell

  yarn add gmsoft-express

```

## PeerDependencies  

``` JSON

  "peerDependencies": {
    "gmsoft-tools": "^1.0.10",
    "lodash": "^4.17.15"
  },

```

## Why  

· 大数运算优化  
· 轻量化（功能少
  
## Dev  

``` shell

  #start build
  $ yarn start
  #start example
  $ cd example\gm-express-example
  $ yarn start

```

## Tools

### exeExpress 执行表达式  
``` js  
  import { exeExpress } from 'gmsoft-express';

  exeExpress('20000>=1000&&20000<1000000');
  // => true

```
### fillLimit 填充表达式  
``` js  
  import { fillLimit } from 'gmsoft-express';
  
  fillLimit('sum<=1','sum','2000');
  // => '2000<=1'
  fillLimit('sum<=1&&amount>=10',{sum:'1000',amount:'2'});
  // => '1000<=1&&2>=10'

```
### limitToMsg 语义化表达式  
``` js  
  import { limitToMsg } from 'gmsoft-express';
  
  limitToMsg('sum<=1','sum','采购金额');
  // =>  => '采购金额小于等于1'
  limitToMsg('sum<=1&&amount>=10',{sum:'采购金额',amount:'数量'});
  // => '采购金额<=1并且数量大于等于10'

```
### getCustomExpressReg 生成正则  
``` js  
  import { getCustomExpressReg } from 'gmsoft-express';
  
  getCustomExpressReg('amount');
  // => /^(amount(<|<=|>|>=|=)\d+)((&&|\|\|)(amount(<|<=|>|>=|=)\d+))*$/
  getCustomExpressReg(['amount','sum']);
  //=> /^(amount(<|<=|>|>=|=)\d+)((&&|\|\|)(sum(<|<=|>|>=|=)\d+))*$/

```
### getExpressionLooseRange 取出表达式的宽松区间  
``` js  
  import { getExpressionLooseRange } from 'gmsoft-express';
  
  getExpressionLooseRange('sum>200&&sum<1&&sum>1000000','sum');
  // => {__lt__: "1", __gt__: "200"}
  getExpressionLooseRange(['sum>200&&sum<1','sum>1000000&&sum>1'],'sum');
  //=> {__lt__: "1", __gt__: "1"}

```
### doCompareWithExpressionRange 将值 与 区间 进行比较  
``` js  
  import { doCompareWithExpressionRange } from 'gmsoft-express';
  
  doCompareWithExpressionRange({__lt__: "1000", __gt__: "200"},'1000');
  // => false
  doCompareWithExpressionRange({__lt__: "1000", __gt__: "200"},'999');
  // => true

```

## 参考资料

- [lodash](https://github.com/lodash/lodash)
npm package: @gmsoft/search-page-generator
Description: 自动生成SearchPage调用
Author: JulyWind
Latest version: 1.0.5

# gm-spg

Fast init for SearchPage in everywhere.

## Description

帮助快速创建 SearchPage 所需的相关代码、周边组件、数据模型声明。

## Usage

1. 创建默认 SearchPage 默认模板

   ```shell
   spg gen def [moduleName] [version]
   # 在执行目录下创建一个名为ContractManage的列表模块，使用的模板版本号为 v1
   # 将在命令运行目录下创建ContractManage文件夹，并写出相关文件
   spg gen def ContractManage v1
   ```

2. 创建列表接口的 TS 声明文件

   ```shell
   spg gen api [--cover]
   # 将会读取项目根路径下的.easy-mock.js文件，并进入交互模式选择需要生成的Api组，生成的目标文件将存放在src/types/spg-type下
   spg gen api
   ```

   指定 `--cover` 选项，将会覆盖已经存在的同名接口文件。

   **重要说明：接口文件的命名规则为：接口地址的最后两段转换为帕斯卡命名风格加上`.d.ts`，如：接口地址为：/how/are/you，则此接口对应的文件名为：AreYou.d.ts，如果你将要生成的接口组内存在在此规则下多个接口映射到同一个文件名，将导致错误！**

3. 创建状态渲染组件

   ```shell
   # 将在src/components/下创建Status渲染组件，主要配合带有状态渲染的模板使用
   spg gen status
   ```

## Todo

- [ ] 模板抽离
- [x] 生成基础模板
- [x] 生成接口模型声明
- [x] 生成完整的组合模板模块
  - [x] List 模块
  - [x] View 模块
  - [x] Edit 模块

## Question

1. 生成接口声明文件是文件名重名问题
2. 模板优化、模版与项目抽离

## Author

和风柒月 @ 11/02/2021 01:26