Hi Manoj,
In case of SPA both the methods would require support from developers.
With Adobe Launch, involvement of developers is reduced by a considerable extent, the developers will be responsible for updating the dataLayer or the direct call rules. With Adobe Launch you can also set a direct call rule with custom parameters. Moreover, apart from Analytics, if there are any other tools like deployment of facebook or other marketing pixels, you will not be required to bother the dev again and can play with the already setup dataLayer
Using Javascript is not ideal as it puts the entire dependency on the dev. Mostly, development follows sprints and that can slow down the data enablement. Moreover, developers will be required to take care of extra analytics functions and nitty-gritties associated with the various analytics calls which is an overhead for them
I would advice for an Adobe Launch based setup.
Let me know if you have any further questions.
Best,
Sanmeet Singh Walia