defaults = {
    'apt': {
        'additional_update_commands': {
            # update npm and yarn to latest version
            'npm install -g npm@latest',
            'npm install -g yarn@latest',
        },
        'packages': {
            'nodejs': {
                'triggers': {
                    'action:apt_execute_update_commands',
                },
            },
            'npm': {
                'installed': False,
                'triggers': {
                    'action:apt_execute_update_commands',
                },
            },
        },
    },
}

@metadata_reactor.provides(
    'apt/repos/nodejs/items',
)
def nodejs_from_version(metadata):
    version = metadata.get('nodejs/version')

    return {
        'apt': {
            'repos': {
                'nodejs': {
                    'items': {
                        f'deb https://deb.nodesource.com/node_{version}.x nodistro main',
                    },
                },
            },
        },
    }