首页 > 其他分享 >vscode pont 模板使用

vscode pont 模板使用

时间:2023-04-28 17:23:32浏览次数:50  
标签:const parameters vscode pont export params inter 模板

一、安装

  1. 安装插件 vscode

  2. 创建项目

    PS E:\Code\Vues> mkdir apricot-pont
    

    1、创建目录

  3. 全局安装pont-engine

    $ npm i -g pont-engine
    

    1、安装 pont-engine

二、使用

  1. 配置模板

    $ pont start
    

    1、配置模板

  2. 安装依赖

    $ npm i -D pont-engine
    

    1、安装依赖

  3. 文件生成

    $ pont check
    

    1、生成文件

  4. 目录结构

三、自定义模板

  1. 参数地址/api/apricot/{id}

    import { Interface, BaseClass, Property, CodeGenerator, Surrounding } from 'pont-engine';
    
    export default class MyGenerator extends CodeGenerator {
      getInterfaceContentInDeclaration(inter: Interface) {
        const requestParams = inter.getRequestParams();
        const paramsCode = inter.getParamsCode('Params');
    
        //自定义参数
        let params = `params:${JSON.stringify(requestParams).replace(/"/g, '')}`;
    
        // 重组url参数
        if (inter.parameters[0] && inter.parameters[0].in.indexOf('path') > -1) {
          params = `${inter.parameters[0].name}:${inter.parameters[0].dataType.typeName || "any"}`;
        }
    
        return `
          export ${paramsCode}
    
          export type Response = ${inter.responseType}
    
          export const init: Response;
    
          export function request(${params}): Promise<Response>;
        `;
      }
    
      getBaseClassInDeclaration(base: BaseClass) {
        const originProps = base.properties;
    
        base.properties = base.properties.map(prop => {
          return new Property({
            ...prop,
            required: false
          });
        });
    
        const result = super.getBaseClassInDeclaration(base);
        base.properties = originProps;
    
        return result;
      }
    
      getInterfaceContent(inter: Interface) {
        const method = inter.method.toUpperCase();
        const requestParams = inter.getRequestParams(this.surrounding);
        const paramsCode = inter.getParamsCode('Params', this.surrounding);
    
        //自定义参数 
        let paramsName = "params";
        let path = `"${inter.path}"`
        let params = `${JSON.stringify(requestParams).replace(/"/g, '')}`
    
        // 重组url参数
        if (inter.parameters[0] && inter.parameters[0].in.indexOf('path') > -1) {
          paramsName = "{}";
          params = `${inter.parameters[0].name}:${inter.parameters[0].dataType.typeName || "any"}`
          path = '`(0)${(1)}`'.replace('(0)', inter.path.replace(`{${inter.parameters[0].name}}`, '')).replace('(1)', inter.parameters[0].name)
        }
    
        return `
        /**
        * @desc ${inter.description}
        */
    
        import * as defs from '../../baseClass';
        import { PontCore } from '../../pontCore';
    
        export ${paramsCode}
    
        export const init = ${inter.response.getInitialValue()};
    
        export function request(${params}) {
          return PontCore.fetch(PontCore.getUrl(${path}, ${paramsName}, "${inter.method}"), ${inter.getRequestContent()});
        }
      `;
      }
    }
    

    1、参数地址请求

四、参考

  1. 官网文档

标签:const,parameters,vscode,pont,export,params,inter,模板
From: https://www.cnblogs.com/study10000/p/17362714.html

相关文章

  • vscode-leetcode
    vscode里写leetcode需要的插件xavier-cai.vscode-leetcode-cpp-debug,leetcode.vscode-leetcodeLeetCodeC++Debugger.DeleteTemporaryContents置为falsectrl+shift+p运行LeetCodeC++Debugger:StartDebugging在leetcode-main.cpp进行debug注意不要使用mingw的调试......
  • 去除vscode顶部栏
    效果:(更高的屏幕占比) 1编辑:/Applications/VisualStudioCode.app/Contents/Resources/app/out/vs/code/electron-main/main.js2找到这行代码newI.BrowserWindow(Ne)改成newI.BrowserWindow({...Ne,frame:false})3设置nativetabs,nativetitle 重启vsco......
  • 权值线段树模板
    【模板】普通平衡树//AConemoretimes#include<bits/stdc++.h>usingnamespacestd;#definefifirst#definesesecond#definepbpush_back#defineendl'\n'#defineall(x)(x).begin(),(x).end()typedefpair<int,int>pii;constint......
  • 模板层Templates
    目录模板层模板语法的使用模板语法传值变量基本使用:深度查询之句点符的使用过滤器其他过滤器(了解)标签for标签if标签with起别名csrf_token标签模板的导入和继承模板的继承之extends标签、block标签模板的导入之include标签模板层Django提供了模板系统(TemplateSystem)用来专门......
  • 线段树的动态开点模板
    学习自数据结构学习笔记(5)动态开点线段树动态开点线段树感谢大佬们博客的帮助//AConemoretimes#include<bits/stdc++.h>usingnamespacestd;#definefifirst#definesesecond#definepbpush_back#defineendl'\n'#defineall(x)(x).begin(),(x).end()......
  • 七天学会flask(六)---模板-行语句(3)(第一天)
    flask模板技术---行语句flask行语句,可以让模板的代码编写更加容易便捷,不然总是用{%...%}来标识挺麻烦的,使用行语句首先需要进行设置app.jinja_env.line_statement_prefix='#'先来看一下不使用行语句时如何写一段for循环{%foriinrange(10)%}<p>{{i}}</p>......
  • 七天学会flask(六)---模板-转义(3)(第一天)
    flask模板技术---转义Jinja自动根据模板语法进行html渲染,但某些时候,我们不希望它进行渲染,原因在于一旦渲染,其结果并不是我们所期望的,比如下面这段html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><b......
  • vscode 开启html代码自动补全
    divvscode提供了Emmet语法来进行一些代码补全操作,需要在设置中加入"emmet.triggerExpansionOnTab":true即可.打开文件->首选项->设置打开设置界面,    点击右上角的打开设置(json),添加进去就可以,然后我们输入div,按两次Tab键就可以看到自动补全了<div></di......
  • 两天学会flask(六)---模板-上下文环境(3)(20分钟)
    flask模板---上下文环境在前面的示例中,想要在模板里显示数据,只能通过在render_template函数里传参数来解决。但对于flask的上下文变量和自定义上下文变量,则不必如此,你可以直接在模板里使用他们。1.request请求对象request,携带了大量有关请求的信息,比如请求的path,url,参数,你可以......
  • vscode调试redis源码
    ###########众所周知,redis是C语言写的,代码整洁优雅,可读性强 准备工作centos上    makeCFLAGS="-g-O0"              ##########......