or run

npx @tessl/cli init
Log in

Version

Files

tile.json

task.mdevals/scenario-4/

Database Connection Configuration Parser

Build a module that parses PostgreSQL connection strings and extracts connection parameters including query string parameters.

Requirements

Your module should export a function parseConnectionString that:

  1. Accepts a PostgreSQL connection string as input
  2. Parses the connection string to extract all connection parameters
  3. Returns a configuration object containing:
    • Standard connection parameters (host, port, database, user, password)
    • All query parameters from the connection string
    • Applies appropriate defaults for missing optional parameters

The function should support:

  • Standard PostgreSQL connection string format (postgresql://...)
  • Query parameters in connection strings (parameters after the ?)
  • Multiple query parameters separated by &

Input/Output Specification

Input: A PostgreSQL connection string (string)

Output: A configuration object with all extracted parameters including query parameters

Test Cases { .tests }

Test 1: Parse basic connection string { .test }

Input:

parseConnectionString('postgresql://testuser:testpass@dbhost:5433/mydb')

Expected Output:

{
  host: 'dbhost',
  port: 5433,
  database: 'mydb',
  user: 'testuser',
  password: 'testpass'
}

Test 2: Parse connection string with SSL query parameter { .test }

Input:

parseConnectionString('postgresql://admin:secret@prod-db:5432/analytics?ssl=true')

Expected Output:

{
  host: 'prod-db',
  port: 5432,
  database: 'analytics',
  user: 'admin',
  password: 'secret',
  ssl: true
}

Test 3: Parse connection string with multiple query parameters { .test }

Input:

parseConnectionString('postgresql://user@localhost/testdb?ssl=true&application_name=myapp')

Expected Output:

{
  host: 'localhost',
  port: 5432,
  database: 'testdb',
  user: 'user',
  ssl: true,
  application_name: 'myapp'
}

Implementation File

Create your implementation in src/config-parser.js.

Create tests in src/config-parser.test.js.

Dependencies { .dependencies }

pg { .dependency }

PostgreSQL client for Node.js with connection string parsing support.