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', f'deb-src https://deb.nodesource.com/node_{version}.x nodistro main', }, }, }, }, }