UNPKG

apitally

Version:

Simple API monitoring & analytics for REST APIs built with Express, Fastify, NestJS, AdonisJS, Hono, H3, Elysia, Hapi, and Koa.

70 lines (67 loc) 2.08 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/adonisjs/configure.ts import { fileURLToPath } from "url"; // src/common/paramValidation.ts function isValidClientId(clientId) { const regexExp = /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; return regexExp.test(clientId); } __name(isValidClientId, "isValidClientId"); function isValidEnv(env) { const regexExp = /^[\w-]{1,32}$/; return regexExp.test(env); } __name(isValidEnv, "isValidEnv"); // src/adonisjs/configure.ts var STUBS_ROOT = fileURLToPath(new URL("./stubs/", import.meta.url)); async function configure(command) { const clientId = await command.prompt.ask("Apitally client ID", { result(value) { return value.trim().toLowerCase(); }, validate(value) { return isValidClientId(value); } }); const env = await command.prompt.ask("Environment name", { default: "dev", result(value) { return value.trim().toLowerCase().replaceAll("_", "-").replaceAll(" ", "-"); }, validate(value) { return isValidEnv(value); } }); const enableRequestLogging = await command.prompt.confirm("Enable request logging?", { default: false }); const codemods = await command.createCodemods(); await codemods.makeUsingStub(STUBS_ROOT, "config/apitally.stub", { enableRequestLogging }); await codemods.registerMiddleware("router", [ { path: "apitally/adonisjs/middleware" } ]); await codemods.updateRcFile((rcFile) => { rcFile.addProvider("apitally/adonisjs/provider"); }); await codemods.defineEnvVariables({ APITALLY_CLIENT_ID: clientId, APITALLY_ENV: env }); await codemods.defineEnvValidations({ leadingComment: "Variables for configuring the apitally package", variables: { APITALLY_CLIENT_ID: "Env.schema.string()", APITALLY_ENV: "Env.schema.string.optional()" } }); } __name(configure, "configure"); export { configure }; //# sourceMappingURL=configure.js.map