UNPKG

@antmjs/rapper

Version:

rapper, use http api as a function

133 lines (132 loc) 6.7 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var path = __importStar(require("path")); var utils_1 = require("./../utils"); function completionOptions(options) { if (options === void 0) { options = { download: {}, upload: {} }; } var defaultOptions = { download: { requestFunc: function (params) { function getFnName(url) { var fnName = url.match(/\/([.a-z0-9_-]+)\/([a-z0-9_-]+$)/i); if (fnName && fnName.length === 3) { if (/^\d+\.\d+$/.test(fnName[1])) { return fnName[2]; } return (fnName[1] + fnName[2].charAt(0).toUpperCase() + fnName[2].slice(1)); } return null; } var fnName = getFnName(params.requestUrl); if (!fnName) { throw new TypeError('接口路径不对,请修改合规'); } var camelCaseName = "".concat(fnName.charAt(0).toUpperCase()).concat(fnName.slice(1)); var reqTypeName = "IReq".concat(camelCaseName); var resTypeName = "IRes".concat(camelCaseName); return { reqTypeName: reqTypeName, resTypeName: resTypeName, funcMain: "\n /**\n * \u63A5\u53E3\u540D\uFF1A".concat(params.funcDescription, "\n * Rap \u5730\u5740: ").concat(params.rapUrl, "?id=").concat(params.repositoryId, "&mod=").concat(params.moduleId, "&itf=").concat(params.interfaceId, "\n */\n export const ").concat(fnName, " = createFetch<").concat(reqTypeName, ", ").concat(resTypeName, ">('").concat(params.requestUrl, "', '").concat(params.requestMethod, "')\n "), }; }, requestModule: function (params) { return { fileName: params.moduleDescription, moduleHeader: "\n/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n\nimport instance from '@/utils/request'\n\nfunction createFetch<REQ extends Record<string, unknown>, RES extends {data: any}> (url: string, method: string) {\n return <T extends boolean = false>(\n data: REQ,\n options?: {\n proxy?: T\n pageError?: boolean\n }\n ): Promise<T extends true ? RES['data'] : RES> => {\n return instance(\n {\n url,\n method,\n data,\n },\n options\n )\n }\n}\n", }; }, }, rapper: { apiUrl: 'http://rap2api.taobao.org/repository/get?id=284428&token=TTDNJ7gvXgy9R-9axC-7_mbi4ZxEPlp6', rapUrl: 'http://rap2.taobao.org', rapperPath: './src/actions', tokenCookie: 'aliyungf_tc=f3a5915db08fc3b6de3ec5df0d0b3a5dc07c0b701e44cf4bf98a855799570bfe; koa.sid=2I353u8TTwtrHSdPXdJ9t8Mx5lTOeQFV; koa.sid.sig=D4vYLNcryQ8vcU4GkJJknTi_Fm8', repositoryId: 284428, }, upload: { mode: 'type', fileRegex: './src/actions/types/.*(js|jsx|ts|tsx)', formatFunc: function (params) { var _a = params.body.match(/createFetch<([\w\[\]'"]+),\s+([\w\[\]'"]+)>\(['"]([\s\S]+)['"], ['"]([a-zA-Z]+)['"]\)/) || [], _ = _a[0], reqTypeName = _a[1], resTypeName = _a[2], reqUrl = _a[3], reqMethod = _a[4]; if (!reqTypeName || !resTypeName) { return null; } var matchInterfaceId = params.comment.match(/http:\/\/rap2\.tao[\s\S]+&itf=(\d+)/); return { resTypeName: resTypeName, reqTypeName: reqTypeName, interfaceId: matchInterfaceId ? Number(matchInterfaceId[1]) : null, reqUrl: reqUrl, reqMethod: reqMethod, }; }, alias: { '@': './src', }, }, isUpload: true, }; var _options = {}; _options.download = __assign(__assign({}, defaultOptions.download), (options.download || {})); _options.upload = __assign(__assign({}, defaultOptions.upload), (options.upload || {})); _options.isUpload = typeof _options.isUpload === 'boolean' ? _options.isUpload : defaultOptions.isUpload; _options.rapper = __assign(__assign({}, defaultOptions.rapper), (options.rapper || {})); _options.__completion = true; var rootPath = (0, utils_1.searchRootPath)(); if (!rootPath) { process.exit(1); } _options.rapper.rapperPath = path.resolve(rootPath, _options.rapper.rapperPath); _options.upload.fileRegex = path.resolve(rootPath, _options.upload.fileRegex); var alias = _options.upload.alias; for (var v in alias) { _options.upload.alias[v] = path.resolve(rootPath, alias[v]); } return _options; } function defineConfig(options, completion) { if (completion === void 0) { completion = true; } if (completion && options.__completion) { return options; } return completionOptions(options); } exports.default = defineConfig;