feat(js): only push new values to arrays