express-companion
Version:
Companion server for Express
1 lines • 3.35 kB
Source Map (JSON)
{"version":3,"sources":["../src/companion.ts","../src/modules/config-generator/index.ts","../src/modules/config-generator/config-generator.constant.ts","../src/index.ts"],"names":["dotenv","express","defaultDeep","defaultOptions","generateConfig","userProvidedOptions","config_generator_default","companion","options","config","env","companion_default","src_default"],"mappings":"AAAA,OAAOA,MAAY,SACnB,OAAOC,MAAa,UCDpB,OAAOC,MAAiB,sBCGjB,IAAMC,EAAmC,CAE9C,KAAM,gBACN,KAAM,YACN,KAAM,IACN,UAAW,SACX,SAAU,QACV,WAAY,GACZ,eAAgB,CAAC,MAAO,OAAQ,MAAO,QAAQ,EAC/C,QAAS,GACT,QAAS,CACP,WAAY,GACZ,WAAY,GACZ,WAAY,GACZ,QAAS,GACT,cAAe,EACjB,EACA,YAAa,CACX,IAAK,CACH,KAAM,MACR,EACA,KAAM,CACJ,OAAQ,GACR,QAAS,CAAC,MAAO,OAAQ,QAAS,QAAQ,EAC1C,YAAa,EACf,CACF,CACF,EDzBO,SAASC,EACdC,EACkB,CAOlB,OALeH,EACbG,EACAF,CACF,CAGF,CAEA,IAAOG,EAAQF,EDXR,SAASG,EAAUC,EAA4C,CACpE,IAAMC,EAASH,EAAeE,CAAO,EAC/BE,EAAMV,EAAO,OAAO,EAAE,OAY5B,MAAO,CAAE,OATP,CAACS,EAAO,SAAWA,EAAO,UAAY,GAAOR,EAAQ,EAAIQ,EAAO,QASjD,IAAAC,EAAK,OAAAD,CAAO,CAC/B,CAEA,IAAOE,EAAQJ,EGpBf,IAAOK,EAAQD","sourcesContent":["import dotenv from \"dotenv\";\nimport express from \"express\"; // Refined import for env\n\nimport generateConfig from \"./modules/config-generator/index.js\";\nimport type { CompanionOptions, CompanionReturn } from \"./types\";\n\nexport function companion(options: CompanionOptions): CompanionReturn {\n const config = generateConfig(options);\n const env = dotenv.config().parsed;\n\n const server =\n !config.express || config.express === true ? express() : config.express;\n\n // Ensure type safety for server (if not a custom Express app)\n // if (!(server instanceof express)) {\n // throw new Error(\n // \"Invalid server configuration: Must provide an Express application instance.\"\n // );\n // }\n\n return { server, env, config };\n}\n\nexport default companion;\n","import defaultDeep from \"lodash.defaultsdeep\";\n\nimport { CompanionOptions } from \"../../types\";\nimport { defaultOptions } from \"./config-generator.constant.js\";\n\nexport function generateConfig(\n userProvidedOptions?: CompanionOptions\n): CompanionOptions {\n // Merge user-provided options with defaults, prioritizing user options\n const config = defaultDeep(\n userProvidedOptions,\n defaultOptions\n ) as CompanionOptions;\n\n return config;\n}\n\nexport default generateConfig;\n","import { CompanionOptions } from \"../../types\";\n\n// Define default configuration options\nexport const defaultOptions: CompanionOptions = {\n // Fill in default values for each configuration option based on your plugin's requirements\n name: \"Companion App\",\n host: \"localhost\",\n port: 3000,\n publicDir: \"public\",\n viewsDir: \"views\",\n viewEngine: false,\n allowedMethods: [\"GET\", \"POST\", \"PUT\", \"DELETE\"],\n express: true, // Enable Express server. Other options: `hyper-express`\n headers: {\n xPoweredBy: true,\n xRequestId: true,\n xUserAgent: true,\n xRealIp: true,\n xForwardedFor: true,\n },\n middlewares: {\n env: {\n path: \".env\",\n },\n cors: {\n origin: true,\n methods: [\"GET\", \"POST\", \"PATCH\", \"DELETE\"],\n credentials: true,\n },\n },\n};\n","import companion from \"./companion.js\";\nexport * from \"./companion.js\";\nexport { companion };\nexport default companion;\n"]}