Skip to content

Instantly share code, notes, and snippets.

@mamaz
Last active November 20, 2019 09:08
Show Gist options
  • Save mamaz/448c6ffe79ad380cbc500e45a6150ac1 to your computer and use it in GitHub Desktop.
Save mamaz/448c6ffe79ad380cbc500e45a6150ac1 to your computer and use it in GitHub Desktop.

Resolver

Diberikan sebuah file yml dengan value yang berasal dari environment variables pada sistem seperti berikut:

service.yml

storages:
    database:
        client: ${$SQL_CLIENT}
        connection:
            host: ${$SQL_HOST}
            port: ${$SQL_PORT}
            user: ${$SQL_USER}
            password: ${$SQL_PASSWORD}
            database: ${$SQL_DATABASE}

dan nilai dari environment variables sebagai berikut:

env

SQL_CLIENT="mysql"
SQL_HOST="127.0.0.1"
SQL_PORT=50349
SQL_USER=root
SQL_PASSWORD=password
SQL_DATABASE=test

Buatlah sebuah function yang meresolve value di service.yml dan mengembalikan object json yang memilki value-value yang berasal dari env variables.

resolveConfig(service: yml | Json, env: Json): Json

Return valuenya menjadi:

{
    "storage": {
        "database": {
            "client": "mysql",
            "connection": {
               "host": "127.0.0.1",
               "port": 50349,
               "user": "root",
               "password": "password",
               "database": "test"
            }
        }
    }
}

Catatan:

  • resolveConfig mesti bersifat general, tidak spesifik ke contoh di atas saja, bisa untuk case service.yml lain.
  • sertakan unit test
  • max pengerjaan 3 hari, semenjak mendapat test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment