Go back plain JavaScript & ES6

map es6 js

export default class extends Controller {
  static targets = [ "sale" ]
  connect() {
    this.sales = this.saleTargets
      .map(sale => sale.dataset)
      .map((value) => {
        return { date: new Date(value.date), name: value.name, amount: +value.amount }
      });

    console.log(this.sales);
  }
}

note `value.amount` will be string, to convert to number add plus sign in front `+value.amount`

<% sale = OpenStruct.new(date: Date.today, name: "Awesome sale", amount: 5000 %>
<div data-chart-stream-target="sale" data-date="<%= sale.date %>" data-name="<%= sale.name %>" data-amount="<%= sale.amount %>"></div>