yinzerflow 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +8 -2
- package/index.js.map +4 -4
- package/package.json +1 -1
- package/example/README.md +0 -11
- package/example/app/handlers/example.ts +0 -27
- package/example/app/index.ts +0 -163
- package/example/app/routes/example.ts +0 -18
- package/example/app/routes/group-example.ts +0 -13
- package/example/app/util/customLogger.ts +0 -166
- package/example/docker-compose.yml +0 -28
- package/example/package.json +0 -16
- package/example/tsconfig.json +0 -54
package/index.d.ts
CHANGED
|
@@ -1939,10 +1939,16 @@ export interface InternalServerConfiguration {
|
|
|
1939
1939
|
autoGracefulShutdown: boolean;
|
|
1940
1940
|
}
|
|
1941
1941
|
export type HttpMethodHandlers = Record<Lowercase<keyof typeof httpMethod>, InternalSetupMethod>;
|
|
1942
|
-
export type RouteGroupMethod = (prefix: string, callback: (group:
|
|
1942
|
+
export type RouteGroupMethod = (prefix: string, callback: (group: RouteGroup) => void, options?: InternalRouteRegistryOptions) => RouteGroup;
|
|
1943
1943
|
export interface InternalGroupApp extends HttpMethodHandlers {
|
|
1944
1944
|
readonly group: RouteGroupMethod;
|
|
1945
1945
|
}
|
|
1946
|
+
/**
|
|
1947
|
+
* Route group instance that provides HTTP method handlers and nested group support.
|
|
1948
|
+
*
|
|
1949
|
+
* @see {@link InternalGroupApp} for internal implementation details
|
|
1950
|
+
*/
|
|
1951
|
+
export type RouteGroup = InternalGroupApp;
|
|
1946
1952
|
/**
|
|
1947
1953
|
* Main setup interface for configuring YinzerFlow routes, hooks, and middleware.
|
|
1948
1954
|
*
|
|
@@ -2316,7 +2322,7 @@ declare class SetupImpl implements InternalSetupImpl {
|
|
|
2316
2322
|
patch(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void;
|
|
2317
2323
|
delete(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void;
|
|
2318
2324
|
options(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void;
|
|
2319
|
-
group(prefix: string, callback: (group:
|
|
2325
|
+
group(prefix: string, callback: (group: RouteGroup) => void, options?: InternalRouteRegistryOptions): RouteGroup;
|
|
2320
2326
|
beforeAll(handlers: Array<HandlerCallback<any>>, options?: InternalGlobalHookOptions): void;
|
|
2321
2327
|
afterAll(handlers: Array<HandlerCallback<any>>, options?: InternalGlobalHookOptions): void;
|
|
2322
2328
|
onError(handler: HandlerCallback<any>): void;
|
package/index.js.map
CHANGED
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"import { log } from '@core/utils/log.ts';\n\n/**\n * Normalize the path to ensure consistent format\n *\n * Handles common HTTP path variations for consistent route matching:\n * - Always starts with '/'\n * - No double slashes\n * - Consistent trailing slash handling\n * - Strips query parameters (for route matching)\n * - URL decodes encoded characters\n * - Resolves dot segments for security\n *\n * Examples:\n * - \"users\" → \"/users\"\n * - \"//users\" → \"/users\"\n * - \"/users/\" → \"/users\" (consistent - no trailing slash)\n * - \"/users?page=1\" → \"/users\"\n * - \"/users%20profile\" → \"/users profile\"\n * - \"/users/../admin\" → \"/admin\" (dot segment resolved)\n * - \"/api/./users\" → \"/api/users\" (current dir resolved)\n *\n * @example\n * ```ts\n * normalizePath('users');\n * // Returns \"/users\"\n * ```\n */\nexport const normalizePath = (path: string): string => {\n // Step 1: Strip query parameters and fragments for route matching\n // \"/users?page=1#section\" → \"/users\"\n let [normalizedPath] = path.split('?');\n if (!normalizedPath) return '';\n\n [normalizedPath] = normalizedPath.split('#');\n if (!normalizedPath) return '';\n\n // Step 2: URL decode encoded characters\n // \"/users%20profile\" → \"/users profile\"\n try {\n normalizedPath = decodeURIComponent(normalizedPath);\n } catch (_) {\n // If decoding fails (malformed URL), use original\n // This prevents crashes from malicious URLs\n log.warn('Failed to decode URL path', { path: normalizedPath });\n }\n\n // Step 3: Add leading slash if not present\n // \"users\" → \"/users\"\n normalizedPath = normalizedPath.startsWith('/') ? normalizedPath : `/${normalizedPath}`;\n\n // Step 4: Remove double slashes\n // \"//users\" → \"/users\"\n normalizedPath = normalizedPath.replace(/\\/\\/+/g, '/');\n\n // Step 5: Resolve dot segments for security and consistency\n // SECURITY CRITICAL: Prevents directory traversal attacks\n // \"/users/../admin\" → \"/admin\"\n // \"/api/./users\" → \"/api/users\"\n // \"/users/../../etc/passwd\" → \"/etc/passwd\" (contained within app context)\n normalizedPath = resolveDotSegments(normalizedPath);\n\n // Step 6: Remove trailing slash for consistency (except root path)\n // \"/users/\" → \"/users\", but \"/\" stays \"/\"\n if (normalizedPath.length > 1 && normalizedPath.endsWith('/')) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n\n return normalizedPath;\n};\n\n/**\n * Resolve dot segments according to RFC 3986 Section 5.2.4\n *\n * SECURITY PURPOSE: Prevents directory traversal attacks by resolving relative paths\n *\n * Dot segments are dangerous because they allow attackers to:\n * - Bypass access controls: \"/users/../admin\" → \"/admin\"\n * - Access system files: \"/api/../../etc/passwd\" → \"/etc/passwd\"\n * - Traverse outside intended directories\n *\n * ALGORITHM:\n * - \".\" (current directory) → remove completely\n * - \"..\" (parent directory) → remove this segment AND the previous segment\n * - Regular segments → keep as-is\n *\n * Examples:\n * - \"/users/./profile\" → \"/users/profile\"\n * - \"/users/../admin\" → \"/admin\"\n * - \"/a/b/c/../../d\" → \"/a/d\"\n * - \"/../secret\" → \"/secret\" (can't go above root)\n *\n * @param path - Path with potential dot segments\n * @returns Path with dot segments resolved\n */\nconst resolveDotSegments = (path: string): string => {\n // Split path into segments, preserving empty strings from leading slash\n const segments = path.split('/');\n const resolved: Array<string> = [];\n\n for (const segment of segments) {\n if (segment === '.' || segment === '') {\n // Current directory \".\" - skip completely\n // Empty segments from double slashes - also skip\n if (segment === '' && resolved.length === 0) {\n // Keep the first empty segment to maintain leading slash\n resolved.push(segment);\n }\n continue;\n }\n\n if (segment === '..') {\n // Parent directory \"..\" - go up one level\n if (resolved.length > 1) {\n // Remove last segment (go to parent)\n // But don't remove the leading empty string (which represents root \"/\")\n resolved.pop();\n }\n // If we're already at root, ignore \"..\" (can't go above root)\n } else {\n // Regular segment - keep it\n resolved.push(segment);\n }\n }\n\n // Rejoin segments\n const result = resolved.join('/');\n\n // Ensure we always have at least \"/\" for root\n return result || '/';\n};\n\n/**\n * Normalize route structure for conflict detection\n * Converts /users/:id and /users/:userId to the same structure: /users/:param\n */\nexport const normalizeRouteStructure = (path: string): string => path.replace(/:\\w+/g, ':param');\n",
|
|
36
36
|
"/**\n * Validate that parameter names are unique within a single route\n *\n * WHY THIS MATTERS:\n * - Routes like \"/users/:id/jobs/:id\" are confusing and error-prone\n * - Multiple params with same name would overwrite each other: { id: \"lastValue\" }\n * - Forces developers to use descriptive, unique names: \"/users/:userId/jobs/:jobId\"\n * - Makes code self-documenting and prevents runtime bugs\n *\n * EXAMPLES OF PROBLEMS THIS PREVENTS:\n * - Bad: \"/users/:id/posts/:id\" → unclear which :id refers to what\n * - Good: \"/users/:userId/posts/:postId\" → crystal clear intent\n *\n * @example\n * ```ts\n * validateParameterNames('/users/:id/posts/:id');\n * // Throws error: \"Route /users/:id/posts/:id has duplicate parameter names: id. Parameter names must be unique within a route for clarity and to prevent conflicts.\"\n * ```\n */\nexport const validateParameterNames = (routePath: string): void => {\n // Extract all parameter names from the route\n // \"/users/:userId/posts/:postId\" → [\":userId\", \":postId\"] → [\"userId\", \"postId\"]\n const paramMatches = routePath.match(/:\\w+/g);\n if (!paramMatches) return; // No parameters to validate\n\n const paramNames = paramMatches.map((param) => param.slice(1)); // Remove ':' prefix\n const uniqueParamNames = new Set(paramNames);\n\n // Check for duplicates\n if (paramNames.length !== uniqueParamNames.size) {\n const duplicates = paramNames.filter((name, index) => paramNames.indexOf(name) !== index);\n throw new Error(\n `Route ${routePath} has duplicate parameter names: ${duplicates.join(', ')}. ` +\n 'Parameter names must be unique within a route for clarity and to prevent conflicts.',\n );\n }\n};\n",
|
|
37
37
|
"import { compileRoutePattern } from '@core/setup/utils/compileRoutePatter.ts';\nimport { normalizePath, normalizeRouteStructure } from '@core/setup/utils/normalizeStringPatterns.ts';\nimport { validateParameterNames } from '@core/setup/utils/validateParameterNames.ts';\nimport type { InternalHttpMethod } from '@typedefs/constants/http.ts';\nimport type { InternalPreCompiledRoute, InternalRouteRegistry, InternalRouteRegistryImpl } from '@typedefs/internal/InternalRouteRegistryImpl.js';\n\n/**\n * RouteRegistry: Efficient route storage and matching\n *\n * DESIGN DECISION: Parameter extraction happens here (not in RequestImpl) because:\n * 1. We already compile regexes for route matching - reusing them for param extraction is free\n * 2. Avoids duplicate regex compilation at request time (performance critical)\n * 3. Single source of truth for route patterns and their compiled forms\n *\n * PERFORMANCE STRATEGY:\n * - Exact routes (no params): O(1) Map lookup\n * - Parameterized routes: O(n) iteration with pre-compiled regex matching\n * - Most apps have few parameterized routes, so O(n) is acceptable\n *\n * EXAMPLES:\n * - \"/users\" (exact) → stored in exactRoutes Map for instant lookup\n * - \"/users/:id\" (parameterized) → compiled to regex, stored in parameterizedRoutes Array\n */\nexport class RouteRegistryImpl implements InternalRouteRegistryImpl {\n /**\n * Fast O(1) lookup for routes without parameters\n * Example: GET /users, POST /login, etc.\n */\n readonly _exactRoutes = new Map<InternalHttpMethod, Map<string, InternalRouteRegistry>>();\n\n /**\n * Array of pre-compiled parameterized routes for O(n) matching\n * Example: GET /users/:id, POST /users/:id/posts/:postId, etc.\n *\n * We use an array because:\n * 1. Route patterns can't be used as Map keys (they're not exact matches)\n * 2. Most apps have relatively few parameterized routes\n * 3. Pre-compiled regexes make matching fast\n */\n readonly _parameterizedRoutes = new Map<InternalHttpMethod, Array<InternalPreCompiledRoute>>();\n\n /**\n * Register a new route\n *\n * PERFORMANCE NOTE: This happens at server startup, so we can afford\n * more expensive operations like regex compilation here.\n */\n _register({ method, path, handler, options }: InternalRouteRegistry): void {\n const normalizedPath = normalizePath(path);\n const isParameterized = normalizedPath.includes(':');\n\n // Validate route before registration\n if (isParameterized) {\n validateParameterNames(normalizedPath);\n }\n\n // Prevent duplicate route registration\n // We check for exact pattern duplicates, not request path matches\n if (this._hasExactRoutePattern(method, normalizedPath)) {\n throw new Error(`Route ${normalizedPath} already exists for method ${method}`);\n }\n\n const route = { method, path: normalizedPath, handler, options, params: {} };\n\n if (isParameterized) {\n // Store in parameterized routes with pre-compiled regex\n this._storeParameterizedRoute(method, route);\n } else {\n // Store in exact routes for O(1) lookup\n this._storeExactRoute(method, normalizedPath, route);\n }\n }\n\n /**\n * Find a route and extract parameters from the request path\n *\n * RUNTIME PERFORMANCE: This is called for every HTTP request, so it must be fast!\n * 1. Try exact match first (O(1) - fastest case)\n * 2. Fall back to parameterized routes (O(n) with pre-compiled regex)\n */\n _findRoute(method: InternalHttpMethod, path: string): InternalRouteRegistry | undefined {\n const normalizedPath = normalizePath(path);\n\n // FAST PATH: Try exact match first (most common case)\n const exactRoute = this._exactRoutes.get(method)?.get(normalizedPath);\n if (exactRoute) {\n return exactRoute;\n }\n\n // PARAMETERIZED PATH: Check routes with parameters\n const parameterizedRoute = this._findParameterizedRoute(method, normalizedPath);\n if (parameterizedRoute) {\n return parameterizedRoute;\n }\n\n return undefined;\n }\n\n /**\n * Check if a route pattern already exists (for conflict detection)\n * This is different from findRoute which matches request paths to patterns\n */\n private _hasExactRoutePattern(method: InternalHttpMethod, pattern: string): boolean {\n // Check exact routes\n if (this._exactRoutes.get(method)?.has(pattern)) {\n return true;\n }\n\n // For parameterized routes, check if the structure conflicts\n // Example: /users/:id conflicts with /users/:userId (same structure, different param names)\n if (pattern.includes(':')) {\n const normalizedPattern = normalizeRouteStructure(pattern);\n const paramRoutes = this._parameterizedRoutes.get(method);\n\n if (paramRoutes) {\n return paramRoutes.some((route) => normalizeRouteStructure(route.path) === normalizedPattern);\n }\n } else {\n // Check parameterized routes for exact pattern match\n const paramRoutes = this._parameterizedRoutes.get(method);\n if (paramRoutes) {\n return paramRoutes.some((route) => route.path === pattern);\n }\n }\n\n return false;\n }\n\n /**\n * Store an exact route (no parameters) for O(1) lookup\n */\n private _storeExactRoute(method: InternalHttpMethod, path: string, route: InternalRouteRegistry): void {\n if (!this._exactRoutes.has(method)) {\n this._exactRoutes.set(method, new Map());\n }\n\n this._exactRoutes.get(method)?.set(path, route);\n }\n\n /**\n * Store a parameterized route with pre-compiled regex pattern\n */\n private _storeParameterizedRoute(method: InternalHttpMethod, route: InternalRouteRegistry): void {\n if (!this._parameterizedRoutes.has(method)) {\n this._parameterizedRoutes.set(method, []);\n }\n\n /**\n * Compile a route pattern into a regex with parameter extraction\n *\n * This is the magic that converts route patterns to regexes:\n * - \"/users/:id\" → /^\\/users\\/([^\\/]+)$/\n * - \"/users/:id/posts/:postId\" → /^\\/users\\/([^\\/]+)\\/posts\\/([^\\/]+)$/\n *\n * WHY AT REGISTRATION TIME: Regex compilation is expensive, so we do it once\n * at server startup rather than on every request.\n */\n const compiled = compileRoutePattern(route);\n this._parameterizedRoutes.get(method)?.push(compiled);\n }\n\n /**\n * Find and match a parameterized route, extracting parameters\n * This is slower than the exact route match (O(n)) because it has to iterate through all the parameterized routes\n * and should only be used if the route is parameterized, otherwise it will be slower than the exact route match.\n */\n private _findParameterizedRoute(method: InternalHttpMethod, path: string): InternalRouteRegistry | undefined {\n const paramRoutes = this._parameterizedRoutes.get(method);\n if (!paramRoutes) return undefined;\n\n // Try each parameterized route until we find a match\n for (const compiledRoute of paramRoutes) {\n const match = path.match(compiledRoute.pattern);\n if (match) {\n const params: Record<string, string> = {};\n\n // Extract parameters from regex capture groups\n // match[0] is the full match, match[1+] are the captured groups\n for (let i = 0; i < compiledRoute.paramNames.length; i++) {\n const paramValue = match[i + 1];\n const paramName = compiledRoute.paramNames[i];\n\n if (paramValue !== undefined && paramName !== undefined) {\n params[paramName] = paramValue;\n }\n }\n\n return { ...compiledRoute, params };\n }\n }\n\n return undefined;\n }\n}\n",
|
|
38
|
-
"import type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport type { InternalSetupMethod } from '@typedefs/internal/InternalSetupImpl.js';\nimport type {
|
|
39
|
-
"import { httpMethod } from '@constants/http.ts';\nimport type { InternalHttpMethod } from '@typedefs/constants/http.ts';\nimport type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\nimport type { InternalSetupImpl } from '@typedefs/internal/InternalSetupImpl.js';\nimport type { HttpMethodHandlers, RouteGroupMethod } from '@core/setup/utils/routeUtils.js';\nimport { buildRoutePath, ensureCompleteRouteOptions, mergeRouteOptions } from '@core/setup/utils/routeUtils.js';\n\nexport interface InternalGroupApp extends HttpMethodHandlers {\n readonly group: RouteGroupMethod;\n}\n\nexport class GroupApp implements InternalGroupApp {\n private readonly _setup: InternalSetupImpl;\n private readonly _prefix: string;\n private readonly _options: InternalRouteRegistryOptions;\n\n constructor(setup: InternalSetupImpl, prefix: string, options?: InternalRouteRegistryOptions) {\n this._setup = setup;\n this._prefix = prefix;\n this._options = ensureCompleteRouteOptions(options);\n }\n\n private _createRouteHandler(method: InternalHttpMethod) {\n return (path: string, handler: HandlerCallback<any>, routeOptions?: InternalRouteRegistryOptions): void => {\n const fullPath = buildRoutePath(this._prefix, path);\n const mergedOptions = mergeRouteOptions(this._options, routeOptions);\n\n this._setup._routeRegistry._register({\n method,\n handler,\n path: fullPath,\n options: mergedOptions,\n params: {},\n });\n\n // If this is a GET route, automatically register the corresponding HEAD route\n if (method === httpMethod.get) {\n this._setup._routeRegistry._register({\n method: httpMethod.head,\n handler,\n path: fullPath,\n options: mergedOptions,\n params: {},\n });\n }\n };\n }\n\n // HTTP method handlers - using the utility type to ensure consistency\n get = this._createRouteHandler(httpMethod.get);\n head = this._createRouteHandler(httpMethod.head);\n post = this._createRouteHandler(httpMethod.post);\n put = this._createRouteHandler(httpMethod.put);\n delete = this._createRouteHandler(httpMethod.delete);\n patch = this._createRouteHandler(httpMethod.patch);\n options = this._createRouteHandler(httpMethod.options);\n\n // Nested group support\n group(prefix: string, callback: (group:
|
|
40
|
-
"import { httpMethod } from '@constants/http.ts';\nimport { handleCustomConfiguration } from '@core/setup/utils/handleCustomConfiguration.ts';\nimport type { InternalSetupImpl } from '@typedefs/internal/InternalSetupImpl.ts';\nimport { HookRegistryImpl } from '@core/execution/HookRegistryImpl.ts';\nimport type { InternalGlobalHookOptions } from '@typedefs/internal/InternalHookRegistryImpl.js';\nimport type { InternalServerConfiguration } from '@typedefs/internal/InternalConfiguration.js';\nimport type { ServerConfiguration } from '@typedefs/public/Configuration.js';\nimport type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport { RouteRegistryImpl } from '@core/setup/RouteRegistryImpl.ts';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\nimport { GroupApp } from '@core/setup/GroupApp.ts';\nimport
|
|
38
|
+
"import type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport type { InternalSetupMethod } from '@typedefs/internal/InternalSetupImpl.js';\nimport type { httpMethod } from '@constants/http.ts';\nimport type { RouteGroup } from '@typedefs/public/Setup.js';\n\n/**\n * Utility type that maps HTTP methods to their handler functions\n * Ensures consistency between SetupImpl and GroupApp\n */\nexport type HttpMethodHandlers = Record<Lowercase<keyof typeof httpMethod>, InternalSetupMethod>;\n\n/**\n * Route group method signature for consistent typing across interfaces\n * Used for both main setup and nested group registration\n */\nexport type RouteGroupMethod = (prefix: string, callback: (group: RouteGroup) => void, options?: InternalRouteRegistryOptions) => RouteGroup;\n\n/**\n * Ensure route options are complete by filling in missing optional properties\n * This allows developers to specify only the hooks they need while maintaining\n * internal compatibility with the system\n */\nexport const ensureCompleteRouteOptions = (options?: InternalRouteRegistryOptions): InternalRouteRegistryOptions => ({\n beforeHooks: options?.beforeHooks ?? [],\n afterHooks: options?.afterHooks ?? [],\n});\n\n/**\n * Merge route options with proper hook ordering\n * - beforeHooks: parent hooks first, then child hooks\n * - afterHooks: child hooks first, then parent hooks\n * Handles optional hooks gracefully\n */\nexport const mergeRouteOptions = (parentOptions: InternalRouteRegistryOptions, childOptions?: InternalRouteRegistryOptions): InternalRouteRegistryOptions => ({\n beforeHooks: [...(parentOptions.beforeHooks ?? []), ...(childOptions?.beforeHooks ?? [])],\n afterHooks: [...(childOptions?.afterHooks ?? []), ...(parentOptions.afterHooks ?? [])],\n});\n\n/**\n * Build a route path by joining prefix and path segments\n * Handles leading/trailing slashes intelligently\n */\nexport const buildRoutePath = (prefix: string, path: string): string => {\n const cleanPrefix = prefix.endsWith('/') ? prefix.slice(0, -1) : prefix;\n const cleanPath = path.startsWith('/') ? path : `/${path}`;\n return `${cleanPrefix}${cleanPath}`;\n};\n",
|
|
39
|
+
"import { httpMethod } from '@constants/http.ts';\nimport type { InternalHttpMethod } from '@typedefs/constants/http.ts';\nimport type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\nimport type { InternalSetupImpl } from '@typedefs/internal/InternalSetupImpl.js';\nimport type { HttpMethodHandlers, RouteGroupMethod } from '@core/setup/utils/routeUtils.js';\nimport { buildRoutePath, ensureCompleteRouteOptions, mergeRouteOptions } from '@core/setup/utils/routeUtils.js';\nimport type { RouteGroup } from '@typedefs/public/Setup.js';\n\nexport interface InternalGroupApp extends HttpMethodHandlers {\n readonly group: RouteGroupMethod;\n}\n\nexport class GroupApp implements InternalGroupApp {\n private readonly _setup: InternalSetupImpl;\n private readonly _prefix: string;\n private readonly _options: InternalRouteRegistryOptions;\n\n constructor(setup: InternalSetupImpl, prefix: string, options?: InternalRouteRegistryOptions) {\n this._setup = setup;\n this._prefix = prefix;\n this._options = ensureCompleteRouteOptions(options);\n }\n\n private _createRouteHandler(method: InternalHttpMethod) {\n return (path: string, handler: HandlerCallback<any>, routeOptions?: InternalRouteRegistryOptions): void => {\n const fullPath = buildRoutePath(this._prefix, path);\n const mergedOptions = mergeRouteOptions(this._options, routeOptions);\n\n this._setup._routeRegistry._register({\n method,\n handler,\n path: fullPath,\n options: mergedOptions,\n params: {},\n });\n\n // If this is a GET route, automatically register the corresponding HEAD route\n if (method === httpMethod.get) {\n this._setup._routeRegistry._register({\n method: httpMethod.head,\n handler,\n path: fullPath,\n options: mergedOptions,\n params: {},\n });\n }\n };\n }\n\n // HTTP method handlers - using the utility type to ensure consistency\n get = this._createRouteHandler(httpMethod.get);\n head = this._createRouteHandler(httpMethod.head);\n post = this._createRouteHandler(httpMethod.post);\n put = this._createRouteHandler(httpMethod.put);\n delete = this._createRouteHandler(httpMethod.delete);\n patch = this._createRouteHandler(httpMethod.patch);\n options = this._createRouteHandler(httpMethod.options);\n\n // Nested group support\n group(prefix: string, callback: (group: RouteGroup) => void, options?: InternalRouteRegistryOptions): RouteGroup {\n const nestedPrefix = buildRoutePath(this._prefix, prefix);\n const nestedOptions = mergeRouteOptions(this._options, options);\n\n const nestedGroup = new GroupApp(this._setup, nestedPrefix, nestedOptions);\n callback(nestedGroup);\n\n return nestedGroup;\n }\n}\n",
|
|
40
|
+
"import { httpMethod } from '@constants/http.ts';\nimport { handleCustomConfiguration } from '@core/setup/utils/handleCustomConfiguration.ts';\nimport type { InternalSetupImpl } from '@typedefs/internal/InternalSetupImpl.ts';\nimport { HookRegistryImpl } from '@core/execution/HookRegistryImpl.ts';\nimport type { InternalGlobalHookOptions } from '@typedefs/internal/InternalHookRegistryImpl.js';\nimport type { InternalServerConfiguration } from '@typedefs/internal/InternalConfiguration.js';\nimport type { ServerConfiguration } from '@typedefs/public/Configuration.js';\nimport type { InternalRouteRegistryOptions } from '@typedefs/internal/InternalRouteRegistryImpl.js';\nimport { RouteRegistryImpl } from '@core/setup/RouteRegistryImpl.ts';\nimport type { HandlerCallback } from '@typedefs/public/Context.js';\nimport { GroupApp } from '@core/setup/GroupApp.ts';\nimport { ensureCompleteRouteOptions } from '@core/setup/utils/routeUtils.js';\nimport type { RouteGroup } from '@typedefs/public/Setup.js';\n\nexport class SetupImpl implements InternalSetupImpl {\n readonly _configuration: InternalServerConfiguration;\n readonly _routeRegistry = new RouteRegistryImpl();\n readonly _hooks = new HookRegistryImpl();\n\n constructor(customConfiguration?: ServerConfiguration) {\n this._configuration = handleCustomConfiguration(customConfiguration);\n }\n\n // ===== Route Registration =====\n get(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n const routeOptions = ensureCompleteRouteOptions(options);\n // Register GET route\n this._routeRegistry._register({ method: httpMethod.get, handler, path, options: routeOptions, params: {} });\n // Automatically register corresponding HEAD route\n this._routeRegistry._register({ method: httpMethod.head, handler, path, options: routeOptions, params: {} });\n }\n\n head(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.head, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n post(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.post, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n put(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.put, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n patch(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.patch, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n delete(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.delete, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n options(path: string, handler: HandlerCallback<any>, options?: InternalRouteRegistryOptions): void {\n this._routeRegistry._register({ method: httpMethod.options, handler, path, options: ensureCompleteRouteOptions(options), params: {} });\n }\n\n group(prefix: string, callback: (group: RouteGroup) => void, options?: InternalRouteRegistryOptions): RouteGroup {\n // Create a group app that can handle nested groups and route registration\n const groupApp = new GroupApp(this, prefix, options);\n\n // Execute callback to register routes\n callback(groupApp);\n\n return groupApp;\n }\n\n /**\n * Hook Registration\n *\n * Note these are going to be called dynamically at run time, for now\n * we are just storing them in the server object until runtime. Although\n * it is slower during lookup, it is more flexible and memory efficient\n * allowing for more flexibility to include hook modification, conditional\n * hook execution, and better debugging.\n */\n beforeAll(handlers: Array<HandlerCallback<any>>, options?: InternalGlobalHookOptions): void {\n this._hooks._addBeforeHooks(handlers, options);\n }\n\n afterAll(handlers: Array<HandlerCallback<any>>, options?: InternalGlobalHookOptions): void {\n this._hooks._addAfterHooks(handlers, options);\n }\n\n onError(handler: HandlerCallback<any>): void {\n this._hooks._addOnError(handler);\n }\n\n onNotFound(handler: HandlerCallback<any>): void {\n this._hooks._addOnNotFound(handler);\n }\n}\n",
|
|
41
41
|
"import { colors } from '@constants/colors.ts';\nimport { logLevels } from '@constants/log.ts';\nimport { createLogger } from '@core/utils/log.ts';\nimport type { Logger, LoggerConfig } from '@typedefs/public/Logger.ts';\n\nconst baseConfig: LoggerConfig = {\n prefix: 'NETWORK',\n logLevel: 'off',\n logger: undefined,\n};\n\nexport const networkLog = {\n log: createLogger(baseConfig),\n enable: (customLogger?: Logger): void => {\n networkLog.log = createLogger({ ...baseConfig, logLevel: logLevels.info, logger: customLogger });\n },\n};\n\n/**\n * Get status emoji for response codes\n */\nexport const getStatusEmoji = (statusCode: number): string => {\n if (statusCode >= 200 && statusCode < 300) return '✅';\n if (statusCode >= 300 && statusCode < 400) return '🔄';\n if (statusCode >= 400 && statusCode < 500) return '❌';\n if (statusCode >= 500) return '💥';\n return '❓';\n};\n\n/**\n * Performance thresholds with Pittsburgh personality\n */\nconst PERFORMANCE_THRESHOLDS = [\n { maxTime: 50, emoji: '⚡', phrase: 'faster than a Stillers touchdown!' },\n { maxTime: 100, emoji: '🔥', phrase: \"smooth as butter n'at!\" },\n { maxTime: 200, emoji: '✅', phrase: 'not bad yinz!' },\n { maxTime: 500, emoji: '⚠️', phrase: \"slowin' down a bit there\" },\n { maxTime: 1000, emoji: '🐌', phrase: \"that's draggin' n'at\" },\n { maxTime: Infinity, emoji: '💥', phrase: 'what a jagoff response time!' },\n] as const;\n\n/**\n * Get performance details for response time with Pittsburgh personality\n */\nexport const logPerformanceDetails = (timeMs: number): void => {\n const threshold = PERFORMANCE_THRESHOLDS.find((t) => timeMs < t.maxTime) ?? PERFORMANCE_THRESHOLDS[PERFORMANCE_THRESHOLDS.length - 1];\n if (!threshold) throw new Error('No threshold found for performance details');\n\n networkLog.log.warn(`${colors.magenta} ${threshold.emoji} Response time: ${timeMs}ms - ${threshold.phrase}${colors.reset}`);\n};\n"
|
|
42
42
|
],
|
|
43
|
-
"mappings": "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",
|
|
43
|
+
"mappings": "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",
|
|
44
44
|
"debugId": "E1941AE25D0319AE64756E2164756E21",
|
|
45
45
|
"names": []
|
|
46
46
|
}
|
package/package.json
CHANGED
package/example/README.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
For the types to work, you need to connect to the docker container using the IDE
|
|
2
|
-
|
|
3
|
-
1. Ensure the [Dev Containers](https://marketplace.cursorapi.com/items?itemName=ms-vscode-remote.remote-containers) extension is installed in IDE
|
|
4
|
-
2. Start this image using `docker compose up -d`
|
|
5
|
-
3. To start the test server run `bun start`
|
|
6
|
-
4. Use `Ctrl + Shift + P`
|
|
7
|
-
5. Select "Dev Containers: Attach to Running Container ..."
|
|
8
|
-
6. Select this container which should be something like `yinzerflow-testing-app...`
|
|
9
|
-
7. In the IDE that just opened, select folder `/app/yinzerflow-local`
|
|
10
|
-
|
|
11
|
-
To aid in development, you can use the `bun run build:watch` command in the yinzerflow (the actual module) terminal
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import type { HandlerCallback } from 'yinzerflow';
|
|
3
|
-
|
|
4
|
-
export const exampleHandler: HandlerCallback<{
|
|
5
|
-
body: {
|
|
6
|
-
something: string;
|
|
7
|
-
};
|
|
8
|
-
response: {
|
|
9
|
-
message: string;
|
|
10
|
-
success: boolean;
|
|
11
|
-
data: {
|
|
12
|
-
something: string;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}> = async ({ request }) => {
|
|
16
|
-
const { something } = request.body;
|
|
17
|
-
|
|
18
|
-
throw new Error("test");
|
|
19
|
-
|
|
20
|
-
return {
|
|
21
|
-
success: true,
|
|
22
|
-
message: "Hello World",
|
|
23
|
-
data: {
|
|
24
|
-
something
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
};
|
package/example/app/index.ts
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { registerExampleRoutes } from "@app/routes/example.ts";
|
|
2
|
-
import { registerGroupExampleRoutes } from "@app/routes/group-example.ts";
|
|
3
|
-
import log from "app/util/customLogger.ts";
|
|
4
|
-
import { createLogger, YinzerFlow, type HandlerCallback } from "yinzerflow";
|
|
5
|
-
|
|
6
|
-
const logger = createLogger({
|
|
7
|
-
prefix: "worker",
|
|
8
|
-
logLevel: "info",
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
const app = new YinzerFlow({
|
|
12
|
-
cors: {
|
|
13
|
-
enabled: true,
|
|
14
|
-
origin: "http://localhost:8085",
|
|
15
|
-
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
|
|
16
|
-
allowedHeaders: ["Content-Type", "Authorization", "x-session-id"],
|
|
17
|
-
preflightContinue: false,
|
|
18
|
-
},
|
|
19
|
-
networkLogs: true,
|
|
20
|
-
logger: logger,
|
|
21
|
-
// networkLogger: log,
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// app.onError((ctx) => {
|
|
27
|
-
// ctx.response.setStatusCode(500);
|
|
28
|
-
// return {
|
|
29
|
-
// success: false,
|
|
30
|
-
// message: "Something went wrong",
|
|
31
|
-
// };
|
|
32
|
-
// });
|
|
33
|
-
|
|
34
|
-
app.onNotFound(async (ctx) => {
|
|
35
|
-
ctx.response.setStatusCode(404);
|
|
36
|
-
return {
|
|
37
|
-
success: false,
|
|
38
|
-
message: "Not Found",
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
app.beforeAll([({ state }: any) => {
|
|
45
|
-
log.info("======== beforeAll ========");
|
|
46
|
-
// TODO: setup auth middleware here
|
|
47
|
-
// const user = {
|
|
48
|
-
// id: 1,
|
|
49
|
-
// };
|
|
50
|
-
// state.user = user as any;
|
|
51
|
-
return;
|
|
52
|
-
}]);
|
|
53
|
-
|
|
54
|
-
app.afterAll([
|
|
55
|
-
(ctx) => {
|
|
56
|
-
// ctx.response.setStatusCode(202);
|
|
57
|
-
log.info("afterAll");
|
|
58
|
-
},
|
|
59
|
-
]);
|
|
60
|
-
|
|
61
|
-
const login: HandlerCallback<{
|
|
62
|
-
response: {
|
|
63
|
-
success: boolean;
|
|
64
|
-
message: string;
|
|
65
|
-
};
|
|
66
|
-
body: {
|
|
67
|
-
email: string;
|
|
68
|
-
password: string;
|
|
69
|
-
};
|
|
70
|
-
}> = (({ request }) => {
|
|
71
|
-
const { email, password } = request.body;
|
|
72
|
-
log.info("========================");
|
|
73
|
-
log.info(email, password);
|
|
74
|
-
log.info("========================");
|
|
75
|
-
|
|
76
|
-
return {
|
|
77
|
-
success: true,
|
|
78
|
-
message: "Login successful",
|
|
79
|
-
};
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
app.post("/login", login);
|
|
83
|
-
|
|
84
|
-
app.group("/api", (app) => {
|
|
85
|
-
|
|
86
|
-
app.group('/user', (app) => {
|
|
87
|
-
app.get('/get', ((ctx) => {
|
|
88
|
-
log.info("route handler");
|
|
89
|
-
// log.info(ctx.request);
|
|
90
|
-
|
|
91
|
-
return {
|
|
92
|
-
message: false
|
|
93
|
-
};
|
|
94
|
-
}),
|
|
95
|
-
{
|
|
96
|
-
beforeHooks: [
|
|
97
|
-
(ctx) => {
|
|
98
|
-
log.info("beforeRoute3");
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
}
|
|
102
|
-
);
|
|
103
|
-
}, {
|
|
104
|
-
beforeHooks: [
|
|
105
|
-
(ctx) => {
|
|
106
|
-
ctx.state.test = "test state";
|
|
107
|
-
log.info("beforeRoute2");
|
|
108
|
-
},
|
|
109
|
-
],
|
|
110
|
-
afterHooks: [
|
|
111
|
-
(ctx) => {
|
|
112
|
-
log.info("afterRoute2");
|
|
113
|
-
log.info(ctx.state.test);
|
|
114
|
-
},
|
|
115
|
-
],
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
app.post(
|
|
119
|
-
"/get/:id",
|
|
120
|
-
((ctx) => {
|
|
121
|
-
log.info("route handler");
|
|
122
|
-
log.info(ctx.request);
|
|
123
|
-
|
|
124
|
-
return {
|
|
125
|
-
message: false
|
|
126
|
-
};
|
|
127
|
-
}),
|
|
128
|
-
{
|
|
129
|
-
beforeHooks: [
|
|
130
|
-
(ctx) => {
|
|
131
|
-
ctx.response.setStatusCode(200);
|
|
132
|
-
log.info("beforeRoute");
|
|
133
|
-
},
|
|
134
|
-
],
|
|
135
|
-
afterHooks: [
|
|
136
|
-
() => {
|
|
137
|
-
log.info("afterRoute");
|
|
138
|
-
},
|
|
139
|
-
],
|
|
140
|
-
}
|
|
141
|
-
);
|
|
142
|
-
}, {
|
|
143
|
-
beforeHooks: [
|
|
144
|
-
(ctx) => {
|
|
145
|
-
log.info("beforeRoute1");
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
afterHooks: [
|
|
149
|
-
(ctx) => {
|
|
150
|
-
log.info("afterRoute1");
|
|
151
|
-
},
|
|
152
|
-
],
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
// Register example routes
|
|
156
|
-
registerExampleRoutes(app);
|
|
157
|
-
registerGroupExampleRoutes(app);
|
|
158
|
-
|
|
159
|
-
// Start the server AFTER defining all routes
|
|
160
|
-
await app.listen();
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { exampleHandler } from '@app/handlers/example.ts';
|
|
2
|
-
import type { YinzerFlow } from 'yinzerflow';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Register example routes on the main app instance
|
|
6
|
-
*/
|
|
7
|
-
export const registerExampleRoutes = (app: YinzerFlow) => {
|
|
8
|
-
/**
|
|
9
|
-
* Get all users
|
|
10
|
-
*/
|
|
11
|
-
app.post('/get-users', exampleHandler);
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Add an override reason for a user to be able to add a payout method
|
|
15
|
-
* This is used to remove all requirements bypassing any checks such as the $20 minimum balance
|
|
16
|
-
*/
|
|
17
|
-
// app.post('/user/update', updateUserController);
|
|
18
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { exampleHandler } from '@app/handlers/example.ts';
|
|
2
|
-
import type { YinzerFlow } from 'yinzerflow';
|
|
3
|
-
|
|
4
|
-
export const registerGroupExampleRoutes = (app: YinzerFlow): void => {
|
|
5
|
-
app.group('/admin', (group) => {
|
|
6
|
-
/**
|
|
7
|
-
* Get all users
|
|
8
|
-
*/
|
|
9
|
-
group.post('/get-users', exampleHandler);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
});
|
|
13
|
-
};
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import type { TransformableInfo } from 'logform';
|
|
3
|
-
import { addColors, createLogger, format, transports } from 'winston';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Logging levels in winston conform to the severity ordering specified by RFC5424: severity of all levels is assumed to
|
|
7
|
-
* be numerically ascending from most important to least important.
|
|
8
|
-
*/
|
|
9
|
-
enum LogLevel {
|
|
10
|
-
CRITICAL = 0,
|
|
11
|
-
ERROR = 1,
|
|
12
|
-
WARN = 2,
|
|
13
|
-
INFO = 3,
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
enum LogColor {
|
|
17
|
-
CRITICAL = 'bold white redBG',
|
|
18
|
-
ERROR = 'bold red',
|
|
19
|
-
WARN = 'bold yellow',
|
|
20
|
-
INFO = 'bold cyan',
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
interface Transports {
|
|
24
|
-
console: transports.ConsoleTransportInstance;
|
|
25
|
-
file: transports.FileTransportInstance;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Define the levels that winston will use. This is used later on
|
|
30
|
-
* when we create the logger
|
|
31
|
-
*/
|
|
32
|
-
const logLevels = {
|
|
33
|
-
critical: LogLevel.CRITICAL,
|
|
34
|
-
error: LogLevel.ERROR,
|
|
35
|
-
warn: LogLevel.WARN,
|
|
36
|
-
info: LogLevel.INFO,
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* This lets us add custom logging levels and colors so that
|
|
43
|
-
* winston recognizes them
|
|
44
|
-
*/
|
|
45
|
-
addColors({
|
|
46
|
-
critical: LogColor.CRITICAL,
|
|
47
|
-
error: LogColor.ERROR,
|
|
48
|
-
warn: LogColor.WARN,
|
|
49
|
-
info: LogColor.INFO,
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Safely formats a message for logging, handling different types appropriately
|
|
54
|
-
*/
|
|
55
|
-
const formatLogMessage = (message: unknown, meta: Record<string, unknown> = {}): string => {
|
|
56
|
-
let formattedMessage = '';
|
|
57
|
-
|
|
58
|
-
if (typeof message === 'string') {
|
|
59
|
-
formattedMessage = message;
|
|
60
|
-
} else if (typeof message === 'object' && message !== null) {
|
|
61
|
-
formattedMessage = JSON.stringify(message);
|
|
62
|
-
} else {
|
|
63
|
-
formattedMessage = String(message);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const metaKeys = Object.keys(meta);
|
|
67
|
-
if (metaKeys.length === 0) {
|
|
68
|
-
return formattedMessage;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const formattedMeta = JSON.stringify(meta, null, 2);
|
|
72
|
-
|
|
73
|
-
return `${formattedMessage}\n${formattedMeta}`;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* This is the format that will be used for all logs except File logs
|
|
78
|
-
*/
|
|
79
|
-
const formatter = format.combine(
|
|
80
|
-
/** Adds color to the format */
|
|
81
|
-
format.colorize(),
|
|
82
|
-
|
|
83
|
-
/** Adds timestamp to the format */
|
|
84
|
-
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
|
85
|
-
|
|
86
|
-
/** Format the way the log is output to the console */
|
|
87
|
-
format.printf((info: TransformableInfo) => {
|
|
88
|
-
const { timestamp, level, message, ...meta } = info;
|
|
89
|
-
const formattedMessage = formatLogMessage(message, Object.keys(meta).length > 0 ? meta : undefined);
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
91
|
-
return `${timestamp} [${level}]: ${formattedMessage}`;
|
|
92
|
-
}),
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* This is the format that will be used for all File logs
|
|
97
|
-
* The only difference is that we don't want to add color because it will mess up the log file
|
|
98
|
-
*/
|
|
99
|
-
const fileFormatter = format.combine(
|
|
100
|
-
/** Adds timestamp to the format */
|
|
101
|
-
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
|
102
|
-
|
|
103
|
-
/** Format the way the log is output to the console */
|
|
104
|
-
format.printf((info: TransformableInfo) => {
|
|
105
|
-
const { timestamp, level, message, ...meta } = info;
|
|
106
|
-
const formattedMessage = formatLogMessage(message, Object.keys(meta).length > 0 ? meta : undefined);
|
|
107
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
108
|
-
return `${timestamp} [${level}]: ${formattedMessage}`;
|
|
109
|
-
}),
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
/** ======================================== Defineing Transports ============================================ */
|
|
113
|
-
const transporters: Transports = {
|
|
114
|
-
console: new transports.Console({
|
|
115
|
-
format: formatter,
|
|
116
|
-
}),
|
|
117
|
-
file: new transports.File({
|
|
118
|
-
filename: 'storage/logs/info.log',
|
|
119
|
-
format: fileFormatter,
|
|
120
|
-
}),
|
|
121
|
-
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Creates and configures the logger based on the current configuration
|
|
126
|
-
*/
|
|
127
|
-
const createConfiguredLogger = (): ReturnType<typeof createLogger> => {
|
|
128
|
-
const transportsToUse = [];
|
|
129
|
-
for (const transport of ['console', 'file']) {
|
|
130
|
-
switch (transport) {
|
|
131
|
-
case 'console':
|
|
132
|
-
transportsToUse.push(transporters.console);
|
|
133
|
-
break;
|
|
134
|
-
case 'file':
|
|
135
|
-
transportsToUse.push(transporters.file);
|
|
136
|
-
break;
|
|
137
|
-
default:
|
|
138
|
-
transportsToUse.push(transporters.console);
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
return createLogger({
|
|
144
|
-
level: 'info',
|
|
145
|
-
transports: transportsToUse,
|
|
146
|
-
levels: logLevels,
|
|
147
|
-
});
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
// Create the logger with the configured settings
|
|
151
|
-
const log = createConfiguredLogger();
|
|
152
|
-
|
|
153
|
-
export default log;
|
|
154
|
-
export const networkLog = createLogger({
|
|
155
|
-
level: 'info',
|
|
156
|
-
transports: [
|
|
157
|
-
new transports.Console({
|
|
158
|
-
format: formatter,
|
|
159
|
-
}),
|
|
160
|
-
new transports.File({
|
|
161
|
-
filename: 'storage/logs/info.log',
|
|
162
|
-
format: fileFormatter,
|
|
163
|
-
}),
|
|
164
|
-
],
|
|
165
|
-
levels: logLevels,
|
|
166
|
-
});
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
services:
|
|
2
|
-
app:
|
|
3
|
-
user: bun
|
|
4
|
-
image: oven/bun:1.2.17
|
|
5
|
-
working_dir: /app/yinzerflow-local
|
|
6
|
-
volumes:
|
|
7
|
-
- .:/app/yinzerflow-local
|
|
8
|
-
- ../yinzerflow/lib:/app/yinzerflow/lib
|
|
9
|
-
ports:
|
|
10
|
-
- "3000:5000"
|
|
11
|
-
command: sh -c "bun install && tail -f /dev/null"
|
|
12
|
-
tty: true
|
|
13
|
-
stdin_open: true
|
|
14
|
-
networks:
|
|
15
|
-
- yinzerflow-network
|
|
16
|
-
|
|
17
|
-
benchmark:
|
|
18
|
-
image: williamyeh/wrk
|
|
19
|
-
restart: no
|
|
20
|
-
command: ["-t20", "-c400", "-d10s", "http://api:5000/status"]
|
|
21
|
-
depends_on:
|
|
22
|
-
- app
|
|
23
|
-
networks:
|
|
24
|
-
- yinzerflow-network
|
|
25
|
-
|
|
26
|
-
networks:
|
|
27
|
-
yinzerflow-network:
|
|
28
|
-
driver: bridge
|
package/example/package.json
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "yinzerflow-local",
|
|
3
|
-
"type": "module",
|
|
4
|
-
"scripts": {
|
|
5
|
-
"start": "bun --watch app/index.ts"
|
|
6
|
-
},
|
|
7
|
-
"dependencies": {
|
|
8
|
-
"logform": "^2.7.0",
|
|
9
|
-
"winston": "^3.17.0",
|
|
10
|
-
"yinzerflow": "file:../yinzerflow/lib"
|
|
11
|
-
},
|
|
12
|
-
"devDependencies": {
|
|
13
|
-
"bun-types": "1.2.17",
|
|
14
|
-
"typescript": "^5.8.2"
|
|
15
|
-
}
|
|
16
|
-
}
|
package/example/tsconfig.json
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"composite": true,
|
|
4
|
-
"target": "ESNext",
|
|
5
|
-
"useDefineForClassFields": true,
|
|
6
|
-
"module": "NodeNext",
|
|
7
|
-
"lib": ["ESNext"],
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"types": ["bun-types"],
|
|
10
|
-
|
|
11
|
-
/* Bundler mode */
|
|
12
|
-
"moduleResolution": "NodeNext",
|
|
13
|
-
"moduleDetection": "force",
|
|
14
|
-
"allowImportingTsExtensions": true,
|
|
15
|
-
"resolveJsonModule": true,
|
|
16
|
-
"isolatedModules": true,
|
|
17
|
-
"noEmit": true,
|
|
18
|
-
"jsx": "preserve",
|
|
19
|
-
"alwaysStrict": true,
|
|
20
|
-
"declaration": true,
|
|
21
|
-
"outDir": "lib",
|
|
22
|
-
"declarationDir": "lib",
|
|
23
|
-
"verbatimModuleSyntax": true,
|
|
24
|
-
"baseUrl": ".",
|
|
25
|
-
"paths": {
|
|
26
|
-
"@app/*": ["./app/*"]
|
|
27
|
-
},
|
|
28
|
-
"sourceMap": false,
|
|
29
|
-
"removeComments": true,
|
|
30
|
-
"declarationMap": true,
|
|
31
|
-
|
|
32
|
-
/* Linting */
|
|
33
|
-
"strict": true,
|
|
34
|
-
"noUnusedLocals": true,
|
|
35
|
-
"noUnusedParameters": true,
|
|
36
|
-
"noFallthroughCasesInSwitch": true,
|
|
37
|
-
"allowSyntheticDefaultImports": true,
|
|
38
|
-
"allowJs": false,
|
|
39
|
-
"forceConsistentCasingInFileNames": true,
|
|
40
|
-
"noImplicitAny": true,
|
|
41
|
-
"noImplicitReturns": true,
|
|
42
|
-
"noImplicitThis": true,
|
|
43
|
-
"noImplicitOverride": true,
|
|
44
|
-
"strictFunctionTypes": true,
|
|
45
|
-
"strictNullChecks": true,
|
|
46
|
-
"strictPropertyInitialization": true,
|
|
47
|
-
"allowUnreachableCode": false,
|
|
48
|
-
"allowUnusedLabels": false,
|
|
49
|
-
"exactOptionalPropertyTypes": true,
|
|
50
|
-
"noUncheckedIndexedAccess": true,
|
|
51
|
-
"strictBindCallApply": true
|
|
52
|
-
},
|
|
53
|
-
"include": ["app/**/*"]
|
|
54
|
-
}
|