{ // Place your FastGPT 工作区 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. // Placeholders with the same ids are connected. // Example: "Next api template": { "scope": "javascript,typescript", "prefix": "nextapi", "body": [ "import { NextAPI } from '@/service/middleware/entry';", "import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next';", "", "async function handler(", " req: ApiRequestProps,", " res: ApiResponseType<${1}ResponseType>", "): Promise<${1}ResponseType> {", " const body = ${1}BodySchema.parse(req.body);", " const query = ${1}QuerySchema.parse(req.query);", "", " ${2}", "", " return {};", "}", "", "export default NextAPI(handler);" ], "description": "FastGPT Next API template with Zod validation" }, "use context template": { "scope": "typescriptreact", "prefix": "context", "body": [ "import React, { ReactNode } from 'react';", "import { createContext } from 'use-context-selector';", "", "type ContextType = {${1}};", "", "export const Context = createContext({});", "", "const ContextProvider = ({ children }: { children: ReactNode }) => {", " const contextValue: ContextType = {};", " return {children};", "};", "", "export default ContextProvider" ], "description": "FastGPT usecontext template" }, "Vitest test case template": { "scope": "typescript", "prefix": "template_test", "body": [ "import { describe, it, expect } from 'vitest';", "", "describe('authType2UsageSource', () => {", " it('Test description', () => {", " expect().toBe();", " });", "});" ] } }