---
- name: nodejs get json containing latest version
  uri:
    url: https://nodejs.org/dist/index.json
  register: latest

- name: nodejs create directory for downloaded package
  file:
    state: directory
    dest: ~/.local/src

- name: nodejs download latest package
  get_url:
    url: 'https://nodejs.org/dist/{{latest.json[0].version}}/node-{{latest.json[0].version}}-linux-x64.tar.gz'
    dest: ~/.local/src/node.tar.gz

- name: nodejs extract downloaded package
  unarchive:
    src: ~/.local/src/node.tar.gz
    dest: ~/.local/src
    remote_src: true

- name: nodejs create symlink links
  file:
    state: link
    src: '~/.local/src/node-{{latest.json[0].version}}-linux-x64/bin/{{item}}'
    dest: '~/.local/bin/{{item}}'
  with_items: [corepack, node, npm, npx]