json 用于VSCode的Velocity Snippets。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json 用于VSCode的Velocity Snippets。相关的知识,希望对你有一定的参考价值。

{
  "Get Item By Id": {
    "prefix": "GetItem",
    "body": [
      "{",
      "    \"version\": \"2017-02-28\",",
      "    \"operation\": \"GetItem\",",
      "    \"key\": {",
      "        \"id\": \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.id),",
      "    }",
      "}"
    ],
    "description": "Get Item By Id"
  },
  "List Items": {
    "prefix": "Scan",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Scan\",",
      "    ## Add 'limit' and 'nextToken' arguments to this field in your schema to implement pagination. **",
      "    ## \"limit\": \\$util.defaultIfNull(\\${ctx.args.limit}, 20),",
      "    ## \"nextToken\": \\$util.toJson(\\$util.defaultIfNullOrBlank(\\$ctx.args.nextToken, null))",
      "}"
    ],
    "description": "List Items"
  },
  "Put Item": {
    "prefix": "PutItem",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"PutItem\",",
      "    \"key\" : {",
      "        ## If object \"id\" should come from GraphQL arguments, change to \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.id)",
      "        \"id\": \\$util.dynamodb.toDynamoDBJson(\\$util.autoId()),",
      "    },",
      "    \"attributeValues\" : \\$util.dynamodb.toMapValuesJson(\\$ctx.args)",
      "}"
    ],
    "description": "Put Item"
  },
  "Put Item With S3": {
    "prefix": "PutItem+S3",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"PutItem\",",
      "    \"key\" : {",
      "        \"id\" : { \"S\" : \"\\${util.autoId()}\" }",
      "    },",
      "    #set( \\$attribs = \\$util.dynamodb.toMapValues(\\$ctx.args) )",
      "    #if(\\$util.isNull(\\$ctx.args.file.version))",
      "        #set( \\$attribs.file = \\$util.dynamodb.toS3Object(\\$ctx.args.file.key, \\$ctx.args.file.bucket, \\$ctx.args.file.region))",
      "    #else",
      "        #set( \\$attribs.file = \\$util.dynamodb.toS3Object(\\$ctx.args.file.key, \\$ctx.args.file.bucket, \\$ctx.args.file.region, \\$ctx.args.file.version))",
      "    #end",
      "    \"attributeValues\" : \\$util.toJson(\\$attribs)",
      "}"
    ],
    "description": "Put Item With S3"
  },
  "Delete Item by ID": {
    "prefix": "DeleteItem",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"DeleteItem\",",
      "    \"key\" : {",
      "        ## If your table's hash key is not named 'id', update it here. **",
      "        \"id\" : { \"S\" : \"\\${ctx.args.id}\" }",
      "        ## If your table has a sort key, add it as an item here. **",
      "    }",
      "}"
    ],
    "description": "Delete Item by ID"
  },
  "Simple Query": {
    "prefix": "Query",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Query\",",
      "    \"query\" : {",
      "        ## Provide a query expression. **",
      "        \"expression\": \"id = :id\",",
      "        \"expressionValues\" : {",
      "            \":id\" : \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.id)",
      "        }",
      "    }",
      "}"
    ],
    "description": "Simple Query"
  },
  "Query with greater than expression": {
    "prefix": "Query with > expression",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Query\",",
      "    \"query\" : {",
      "        ## Provide a query expression. **",
      "        \"expression\": \"id = :id and createdAt > :createdAt\",",
      "        \"expressionValues\" : {",
      "            \":id\" : {",
      "                \"S\" : \"\\${ctx.args.id}\"",
      "            },",
      "            \":createdAt\": {",
      "                \"S\": \"\\${ctx.args.createdAt}\"",
      "            }",
      "        }",
      "    }",
      "}"
    ],
    "description": "Simple Query with greater than expression"
  },
  "Query with filter on index expression": {
    "prefix": "Query with filter expression",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Query\",",
      "    \"index\" : \"name-index\",",
      "    \"query\" : {",
      "        \"expression\": \"#name = :name\",",
      "        \"expressionNames\" : {",
      "        \"#name\" : \"name\"",
      "    },",
      "        \"expressionValues\" : {",
      "            \":name\" : {",
      "                \"S\" : \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.name)",
      "            }",
      "        }",
      "    },",
      "    \"filter\" : {",
      "        \"expression\" : \"contains(#city, :city)\",",
      "        \"expressionNames\" : {",
      "            \"#city\" : \"city\"",
      "        },",
      "        \"expressionValues\" : {",
      "            \":city\" : \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.city)",
      "        }",
      "    }",
      "}"
    ],
    "description": "Query with filter on index expression"
  },
  "Query with contains expression": {
    "prefix": "Query with contains expression",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Query\",",
      "    \"query\" : {",
      "        ## Provide a query expression. **",
      "        \"expression\": \"id = :id\",",
      "        \"expressionValues\" : {",
      "            \":id\" : {",
      "                \"S\" : \"\\${ctx.args.id}\"",
      "            }",
      "        }",
      "    },",
      "    \"filter\": {",
      "        \"expression\": \"contains(tags, :tag)\",",
      "        \"expressionValues\" : {",
      "            \":tag\": {",
      "                \"S\": \"\\${ctx.args.tag}\"",
      "            }",
      "        }",
      "    }",
      "}"
    ],
    "description": "Query with contains expression"
  },
  "Query items created today": {
    "prefix": "Query items created today|date",
    "body": [
      "#set( \\$todayString = \\$util.time.nowISO8601().substring(0, 10) )",
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Query\",",
      "    \"query\" : {",
      "        ## Provide a query expression. **",
      "        \"expression\": \"id = :id and begins_with(createdAt, :today)\",",
      "        \"expressionValues\" : {",
      "            \":id\" : {",
      "                \"S\" : \"\\${ctx.args.id}\"",
      "            },",
      "            \":today\": {",
      "                \"S\": \"\\$todayString\"",
      "            }",
      "        }",
      "    }",
      "}"
    ],
    "description": "Query items created today"
  },
  "Simple Query with pagination": {
    "prefix": "Query with pagination",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Query\",",
      "    \"query\" : {",
      "        ## Provide a query expression. **",
      "        \"expression\": \"id = :id\",",
      "        \"expressionValues\" : {",
      "            \":id\" : {",
      "                \"S\" : \"\\${ctx.args.id}\"",
      "            }",
      "        }",
      "    },",
      "    ## Add 'limit' and 'nextToken' arguments to this field in your schema to implement pagination. **",
      "    \"limit\": \\$util.defaultIfNull(\\${ctx.args.limit}, 20),",
      "    \"nextToken\": \\$util.toJson(\\$util.defaultIfNullOrBlank(\\$ctx.args.nextToken, null))",
      "}"
    ],
    "description": "Simple Query with pagination"
  },
  "Batch Get Items": {
    "prefix": "BatchGetItems",
    "body": [
      "#set(\\$ids = [])",
      "#foreach(\\$id in \\${ctx.args.ids})",
      "    #set(\\$map = {})",
      "    \\$util.qr(\\$map.put(\"id\", \\$util.dynamodb.toString(\\$id)))",
      "    \\$util.qr(\\$ids.add(\\$map))",
      "#end",
      "",
      "{",
      "    \"version\" : \"2018-05-29\",",
      "    \"operation\" : \"BatchGetItem\",",
      "    \"tables\" : {",
      "        ## Note: \\${sampleTableName} was defined in substitutions field.",
      "        \"\\${sampleTableName}\": {",
      "            \"keys\": \\$util.toJson(\\$ids),",
      "            \"consistentRead\": true",
      "        }",
      "    }",
      "}"
    ],
    "description": "Batch Get Items"
  },
  "Batch Put Items": {
    "prefix": "BatchPutItems",
    "body": [
      "#set(\\$postsdata = [])",
      "#foreach(\\$item in \\${ctx.args.posts})",
      "    \\$util.qr(\\$postsdata.add(\\$util.dynamodb.toMapValues(\\$item)))",
      "#end",
      "",
      " ## Note: \\${sampleTableName} was defined in substitutions field.",
      "{",
      "    \"version\" : \"2018-05-29\",",
      "    \"operation\" : \"BatchPutItem\",",
      "    \"tables\" : {",
      "        \"\\${sampleTableName}\": \\$utils.toJson(\\$postsdata)",
      "    }",
      "}"
    ],
    "description": "Batch Put Items"
  },
  "Batch Delete Items": {
    "prefix": "BatchDeleteItems",
    "body": [
      "#set(\\$ids = [])",
      "#foreach(\\$id in \\${ctx.args.ids})",
      "    #set(\\$map = {})",
      "    \\$util.qr(\\$map.put(\"id\", \\$util.dynamodb.toString(\\$id)))",
      "    \\$util.qr(\\$ids.add(\\$map))",
      "#end",
      "",
      "## Note: \\${sampleTableName} was defined in substitutions field.",
      "{",
      "    \"version\" : \"2018-05-29\",",
      "    \"operation\" : \"BatchDeleteItem\",",
      "    \"tables\" : {",
      "        \"\\${sampleTableName}\": \\$util.toJson(\\$ids)",
      "    }",
      "}"
    ],
    "description": "Batch Delete Items"
  },
  "Cognito group access": {
    "prefix": "Cognito Group Access Authorization",
    "body": [
      "#set(\\$expression = \"\")",
      "#set(\\$expressionValues = {})",
      "#foreach(\\$group in \\$ctx.identity.claims.get(\"cognito:groups\"))",
      "    #set( \\$expression = \"\\${expression} contains(groupsCanAccess, :var\\$foreach.count )\" )",
      "    #set( \\$val = {})",
      "    #set( \\$test = \\$val.put(\"S\", \\$group))",
      "    #set( \\$values = \\$expressionValues.put(\":var\\$foreach.count\", \\$val))",
      "    #if ( \\$foreach.hasNext )",
      "    #set( \\$expression = \"\\${expression} OR\" )",
      "    #end",
      "#end",
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"Scan\",",
      "    \"filter\":{",
      "        \"expression\": \"\\$expression\",",
      "        \"expressionValues\": \\$utils.toJson(\\$expressionValues)",
      "    }",
      "}"
    ],
    "description": "Cognito group access"
  },
  "Put Item with cognito identity": {
    "prefix": "PutItem with Owner Identity",
    "body": [
      "#set( \\$attributes = \\$util.dynamodb.toMapValues(\\$ctx.args) )",
      "\\$util.qr(\\$attributes.put(\"$Identity\", \\$ctx.identity.cognitoIdentityId))",
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"PutItem\",",
      "    \"key\" : {",
      "        \"id\" : { \"S\" : \"\\${context.args.id}\" }",
      "    },",
      "    \"attributeValues\": \\$util.toJson(\\$attributes)",
      "}"
    ],
    "description": "Put Item with cognito identity"
  },
  "Delete Item with cognito identity": {
    "prefix": "DeleteItem with Owner Identity",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"DeleteItem\",",
      "    \"key\" : {",
      "        \"id\" : { \"S\" : \"\\${context.args.id}\" }",
      "    },",
      "    \"condition\" : {",
      "        \"expression\"       : \"contains($Owner,:expectedOwner)\",",
      "        \"expressionValues\" : {",
      "            \":expectedOwner\" : { \"S\" : \"\\${context.identity.username}\" }",
      "        }",
      "    }",
      "}"
    ],
    "description": "Delete Item with cognito identity"
  },
  "Put Item offline enabled": {
    "prefix": "PutItem Offline",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"PutItem\",",
      "    \"key\": {",
      "        \"id\": { \"S\" : \"\\$utils.autoId()\"}",
      "    },",
      "    #set( \\$attribs = \\$util.dynamodb.toMapValues(\\$ctx.args) )",
      "    \\$util.qr(\\$attribs.remove(\"relayState\"))",
      "    #set( \\$attribs.version = { \"N\" : 1 } )",
      "    \"attributeValues\" : \\$util.toJson(\\$attribs)",
      "}"
    ],
    "description": "Put Item offline enabled"
  },
  "Conditional Update with version": {
    "prefix": "UpdateItem with version",
    "body": [
      "{",
      "    \"version\" : \"2017-02-28\",",
      "    \"operation\" : \"UpdateItem\",",
      "    \"key\" : {",
      "        \"id\" : \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.id)",
      "    },",
      "",
      "    ## Set up some space to keep track of things we're updating **",
      "    #set( \\$expNames  = {} )",
      "    #set( \\$expValues = {} )",
      "    #set( \\$expSet = {} )",
      "    #set( \\$expAdd = {} )",
      "    #set( \\$expRemove = [] )",
      "",
      "    ## Increment \"version\" by 1 **",
      "    \\$!{expAdd.put(\"version\", \":one\")}",
      "    \\$!{expValues.put(\":one\", \\$util.dynamodb.toDynamoDB(1))}",
      "",
      "    ## Iterate through each argument, skipping \"id\" and \"expectedVersion\" **",
      "    #foreach( \\$entry in \\$util.map.copyAndRemoveAllKeys(\\$ctx.args, [\"id\",\"expectedVersion\"]).entrySet() )",
      "        #if( \\$util.isNull(\\$entry.value) )",
      "            ## If the argument is set to \"null\", then remove that attribute from the item in DynamoDB **",
      "",
      "            #set( \\$discard = \\${expRemove.add(\"#\\${entry.key}\")} )",
      "            \\$!{expNames.put(\"#\\${entry.key}\", \"\\${entry.key}\")}",
      "        #else",
      "            ## Otherwise set (or update) the attribute on the item in DynamoDB **",
      "",
      "            \\$!{expSet.put(\"#\\${entry.key}\", \":\\${entry.key}\")}",
      "            \\$!{expNames.put(\"#\\${entry.key}\", \"\\${entry.key}\")}",
      "            \\$!{expValues.put(\":\\${entry.key}\", \\$util.dynamodb.toDynamoDB(\\$entry.value))}",
      "        #end",
      "    #end",
      "",
      "    ## Start building the update expression, starting with attributes we're going to SET **",
      "    #set( \\$expression = \"\" )",
      "    #if( !\\${expSet.isEmpty()} )",
      "        #set( \\$expression = \"SET\" )",
      "        #foreach( \\$entry in \\$expSet.entrySet() )",
      "            #set( \\$expression = \"\\${expression} \\${entry.key} = \\${entry.value}\" )",
      "            #if ( \\$foreach.hasNext )",
      "                #set( \\$expression = \"\\${expression},\" )",
      "            #end",
      "        #end",
      "    #end",
      "",
      "    ## Continue building the update expression, adding attributes we're going to ADD **",
      "    #if( !\\${expAdd.isEmpty()} )",
      "        #set( \\$expression = \"\\${expression} ADD\" )",
      "        #foreach( \\$entry in \\$expAdd.entrySet() )",
      "            #set( \\$expression = \"\\${expression} \\${entry.key} \\${entry.value}\" )",
      "            #if ( \\$foreach.hasNext )",
      "                #set( \\$expression = \"\\${expression},\" )",
      "            #end",
      "        #end",
      "    #end",
      "",
      "    ## Continue building the update expression, adding attributes we're going to REMOVE **",
      "    #if( !\\${expRemove.isEmpty()} )",
      "        #set( \\$expression = \"\\${expression} REMOVE\" )",
      "",
      "        #foreach( \\$entry in \\$expRemove )",
      "            #set( \\$expression = \"\\${expression} \\${entry}\" )",
      "            #if ( \\$foreach.hasNext )",
      "                #set( \\$expression = \"\\${expression},\" )",
      "            #end",
      "        #end",
      "    #end",
      "",
      "    ## Finally, write the update expression into the document, along with any expressionNames and expressionValues **",
      "    \"update\" : {",
      "        \"expression\" : \"\\${expression}\",",
      "        #if( !\\${expNames.isEmpty()} )",
      "            \"expressionNames\" : \\$utils.toJson(\\$expNames),",
      "        #end",
      "        #if( !\\${expValues.isEmpty()} )",
      "            \"expressionValues\" : \\$utils.toJson(\\$expValues),",
      "        #end",
      "    },",
      "",
      "    \"condition\" : {",
      "        \"expression\"       : \"version = :expectedVersion\",",
      "        \"expressionValues\" : {",
      "            \":expectedVersion\" : \\$util.dynamodb.toDynamoDBJson(\\$ctx.args.expectedVersion)",
      "        }",
      "    }",
      "}"
    ],
    "description": "Conditional Update with version"
  },
  "Return single item": {
    "prefix": "Return single item",
    "body": [
      "## Pass back the result from DynamoDB. **",
      "\\$util.toJson(\\$ctx.result)"
    ],
    "description": "return single item"
  },
  "Return a list of results": {
    "prefix": "Return list",
    "body": ["\\$util.toJson(\\$ctx.result.items)"],
    "description": "Return a list of results"
  },
  "Return paginated results": {
    "prefix": "Return paginated results",
    "body": [
      "{",
      "    \"items\": \\$util.toJson(\\$ctx.result.items),",
      "    \"nextToken\": \\$util.toJson(\\$util.defaultIfNullOrBlank(\\$context.result.nextToken, null))",
      "}"
    ],
    "description": "Return paginated results"
  },
  "Return batch response": {
    "prefix": "Return Batch Response",
    "body": [
      "## Batch results are available in $context.result.data as name of the table (TABLENAME below)",
      "## Read more: https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html",
      "",
      "\\$util.toJson(\\$ctx.result.data.${1:TABLENAME})"
    ],
    "description": "Return batch response"
  },
  "Return batch response with error handling": {
    "prefix": "Return Batch Response + Error Handling",
    "body": [
      "## Batch results are available in \\$context.result.data as name of the table (TABLENAME below)",
      "## If there was an error with invocation there may be partial results in \\$ctx.error object",
      "## You can append an error for that field in GraphQL response along with successful data",
      "## Read more: https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html",
      "",
      "#if(\\$ctx.error)",
      "    \\$utils.appendError(\\$ctx.error.message, \\$ctx.error.message)",
      "#end",
      "\\$utils.toJson(\\$ctx.result.data)"
    ],
    "description": "Return batch response with error handling"
  },
  "Return only my owned records": {
    "prefix": "Return Owner Records",
    "body": [
      "#set(\\$myResults = [])",
      "#foreach(\\$item in \\$ctx.result.items)",
      "    ## For Cognito User Pools use \\$ctx.identity.username instead",
      "    #if(\\$item.Owner == \\$ctx.identity.cognitoIdentityId)",
      "        #set(\\$added = \\$myResults.add(\\$item))",
      "    #end",
      "#end",
      "\\$utils.toJson(\\$myResults)"
    ],
    "description": "Return only own records"
  },
  "Return a single record if public": {
    "prefix": "Return Single Record If Public",
    "body": [
      "#if(\\$ctx.result.public == 'yes')",
      "    \\$utils.toJson(\\$ctx.result)",
      "#else",
      "    \\$utils.unauthorized()",
      "#end"
    ],
    "description": "Return a single record if public"
  },
  "Return record if viewable by my groups": {
    "prefix": "Return Record If Viewable By My Groups",
    "body": [
      "#set(\\$permissions = \\$ctx.result.GroupsCanAccess)",
      "#set(\\$claimPermissions = \\$ctx.identity.claims.get(\"cognito:groups\"))",
      "",
      "#foreach(\\$per in \\$permissions)",
      "    #foreach(\\$cgroups in \\$claimPermissions)",
      "        #if(\\$cgroups == \\$per)",
      "            #set(\\$hasPermission = true)",
      "        #end",
      "    #end",
      "#end",
      "",
      "#if(\\$hasPermission)",
      "    \\$utils.toJson(\\$ctx.result)",
      "#else",
      "    \\$utils.unauthorized()",
      "#end"
    ],
    "description": "Return record if viewable by my groups"
  },
  "Return a list of public records": {
    "prefix": "Return A List Of Public Records",
    "body": [
      "#set(\\$publicRecords = [])",
      "#foreach(\\$item in \\$ctx.result.items)",
      "    #if(\\$item.public == 'yes')",
      "        #set(\\$added = \\$publicRecords.add(\\$item))",
      "    #end",
      "#end",
      "\\$utils.toJson(\\$publicRecords)"
    ],
    "description": "Return a list of public records"
  },
  "Return Offline enabled response": {
    "prefix": "Return Offline Enabled Response",
    "body": [
      "\\$util.qr(\\$context.result.put(\"relayState\", \"\\$context.arguments.relayState\"))",
      "\\$util.toJson(\\$context.result)"
    ],
    "description": "Return Offline enabled response"
  }
}

以上是关于json 用于VSCode的Velocity Snippets。的主要内容,如果未能解决你的问题,请参考以下文章

json .vscode - 用于Nuxt

json .vscode - 用于Nuxt和Stylus Supremacy

在 Velocity 中包含文字 JSON 内容(避免 HTML 转义)

JSON 从最后一个对象中删除尾随逗号

一种利用Velocity快速生成JSON字符串的方法

如何在 VSCode 中添加自定义 emmet 片段?