Files
2023-12-13 00:27:19 +03:00

226 lines
3.1 KiB
Lua

local ls = require "luasnip"
local snippet_from_nodes = ls.sn
local c = ls.choice_node
local t = ls.text_node
local d = ls.dynamic_node
local f = ls.function_node
local i = ls.insert_node
local fmt = require("luasnip.extras.fmt").fmt
local rep = require("luasnip.extras").rep
local M = {
str = fmt(
[[{}:
type: string
{}]],
{
i(1, ""),
i(2, ""),
}
),
bool = fmt(
[[{}:
type: boolean
{}]],
{
i(1, ""),
i(2, ""),
}
),
float = fmt(
[[{}:
type: number
format: float
{}]],
{
i(1, ""),
i(2, ""),
}
),
int = fmt(
[[{}:
type: integer
{}]],
{
i(1, ""),
i(2, ""),
}
),
id = fmt(
[[{}:
type: integer
format: int64
{}]],
{
i(1, ""),
i(2, ""),
}
),
class = fmt(
[[{}:
$ref: '#/components/schemas/{}'
{}]],
{
i(1, ""),
i(2, ""),
i(3, ""),
}
),
date = fmt(
[[{}:
type: string
format: date-time
{}]],
{
i(1, ""),
i(2, ""),
}
),
arr = fmt(
[[{}:
type: array
items:
{}
{}]],
{
i(1, ""),
i(2, ""),
i(3, ""),
}
),
ref = fmt([[$ref: '#/components/schemas/{}']], { i(1, "") }),
obj = fmt(
[[type: object
properties:
{}]],
i(1, "")
),
aint = fmt(
[[{}:
type: array
items:
type: int
format: int64
{}]],
{
i(1, ""),
i(2, ""),
}
),
astr = fmt(
[[{}:
type: array
items:
type: string
{}]],
{
i(1, ""),
i(2, ""),
}
),
mut = fmt(
[[{}:
type: "{}"
resolve: '@=mutation("App\\GraphQL\\Mutation\\{}::{}", {}, info)'
args:
{}
]],
{
i(1, ""),
i(2, ""),
i(3, ""),
rep(1),
i(5, ""),
i(6, ""),
}
),
input = fmt(
[[{}:
type: input-object
config:
fields:
{}
]],
{
i(1, ""),
i(2, ""),
}
),
f = fmt([[{}: {{ type: "{}" }}]], { i(1, ""), i(2, "") }),
api = fmt(
[[openapi: 3.0.2
info:
title: {}
contact:
name: eva-team-be
version: {}
x-bundle-apis: true
tags:
- name: {}
description: {}
]],
{ i(1, "my app"), i(2, "1.0.0"), i(3, "tag"), i(4, "tag description") }
),
paths = fmt(
[[paths:
{}
]],
{ i(0, "") }
),
param = fmt(
[[parameters:
- name: {}
description: {}
in: path
required: true
schema:
type: integer
format: int64
]],
{ i(1, ""), i(2, "") }
),
get = fmt(
[[get:
operationId: {}
description: {}
tags: [ {} ]
responses:
200:
description: Response
content:
application/json:
schema:
{}
]],
{ i(1, "GetOperation"), i(2, "description"), i(3, "tag"), i(4, "") }
),
put = fmt(
[[put:
operationId: {}
tags: [ {} ]
description: {}
requestBody:
content:
application/json:
schema:
{}
required: true
responses:
200:
description: {}
content:
application/json:
schema:
{}
]],
{ i(1, "PutOperation"), i(2, "tag"), i(3, "description"), i(4, ""), i(5, "description"), i(6, "") }
),
}
return M