1.0.4 • Published 2 years ago

socar-atomic-converts v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Changelog

1.0.2 原子操作 add 时,如提供ID 则使用提供ID

使用说明

    import {
        socarJsonApiConverts,
        parsingSchema
    } from 'socar-atomic-converts'
    socarJsonApiConverts.converts({
        atiomicData, //原子操作数据
        atiomicSchema, //atiomicData见schema.md中的实例,可以传入未解析的schema
    })

注意事项: 1.converts的参数atiomicData的操作符对应的数据的数据类型为数组。

 //example
 const temp = {
     add: [{
         xxx
     }]
 }

2.atiomicData的操作符对应的数据的relationship字段中的关系字段对应的数据类型为数组。

    //example
    const temp = {
        add: [{
            desc: 'test',
            method: ['get', 'post'],
            name: 'test',
            path: 'test',
            relationship: {
                dependence_rel: [{
                        id: 3,
                        type: 'api'
                    },
                    {
                        id: 9,
                        type: 'api'
                    },
                    {
                        id: 10,
                        type: 'api'
                    }
                ]
            },
            type: 'api'
        }]
    }

addRelationConvertor 将传入数据转化为增加的原子操作数据

/**
 *  @param {object} data 需要构建原子操作的数据
 *  @param {string} oper 原子操作的操作符
 *  @param {object} schema 转换原子操作数据所对应的schema
 *  exampleData:
      {
        add:[
          {
            desc: 'test',
            method: ['get', 'post'],
            name: 'test',
            path: 'test',
              relationship: {
                dependence_rel: [
                  { id: 3, type: 'api' },
                  { id: 9, type: 'api' },
                  { id: 10, type: 'api' }
                ]
              },
              type: 'api'
          }
        ],
       }
    @return {object} 
    exampleReturn:
    {
      opp:'add',
      data:{
          attributes:{
              desc: 'test',
              method:['put','get'],
              name:"test",
              path: 'test',
          },
          relationships:{
              dependence_rel:{
                  data:[
                    { id: 3, type: 'api' },
                    { id: 9, type: 'api' },
                    { id: 10, type: 'api' }
                  ]
              }
          },
          type: "api"
      }
    }
 */
function addRelationConvertor(data, oper, schema)

UpdateRelationConvertor 将传入数据转化为修改的原子操作数据

/**
 *  @param {object} data 需要构建原子操作的数据
 *  @param {string} oper 原子操作的操作符
 *  @param {object} schema 转换原子操作数据所对应的schema
 *  exampleData:
      {
        update:[
          {
            desc: 'test',
            method: ['get', 'post'],
            name: 'test',
            path: 'test',
              relationship: {
                dependence_rel: [
                  { id: 3, type: 'api' },
                  { id: 9, type: 'api' },
                  { id: 10, type: 'api' }
                ]
              },
              type: 'api'
          }
        ],
       }
    @return {object} 
    exampleReturn:
    [
        {
            op: 'update',
            data:{
                id: 187, 
                type: 'api',
                attributes:{
                    desc: 'test',
                    method:['put','get'],
                    name:"test",
                    path: 'test',
                },
            }
        },
        {
            op: 'update',
            ref:{
                id: 187,
                relationship: "api",
                type: "api",
            },
            data:[
                  { id: 3, type: 'api' },
                  { id: 9, type: 'api' },
                  { id: 10, type: 'api' }
            ]
        }
    ]
*/

removeRelationConvertor 将传入数据转化为删除的原子操作数据

/**
 *
 * @param {Object}  data 需要构建原子操作的数据
 * @param {string}  oper 原子操作操作符
 * @param {object}  schema 转换原子操作数据所对应的schema
 * 
 *  exampleData:
      {
        update:[
          {
            desc: 'test',
            method: ['get', 'post'],
            name: 'test',
            path: 'test',
              relationship: {
                dependence_rel: [
                  { id: 3, type: 'api' },
                  { id: 9, type: 'api' },
                  { id: 10, type: 'api' }
                ]
              },
              type: 'api'
          }
        ],
    }
 * exampleSchema:
 *    remove:{
 *       ref:{
 *        id: {title: 'Id', type: 'string'},
 *         type:{title: 'Type', type: 'string'}
 *      }
 *    },
 * exampleReturn:
 *  {
 *      op: "remove",
        ref: {id: 187, type: 'api'}
 *  }
 */
1.0.2

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago