Review a generated profile store

from Private fields
Node 24 advanced 6 min 4 issues to find

Review this generated class before it backs a user directory.

Store profiles by id, accept save as a callback, validate boundary input, return no token or internal mutable reference, and serve frequently requested sorted summaries.

JavaScript
class ProfileStore {
  #profiles = new Map();

  save(profile) {
    this.#profiles.set(profile.id, profile);
    return profile;
  }

  find(id) {
    return this.#profiles.get(id);
  }

  summaries() {
    return [...this.#profiles.values()]
      .sort((left, right) => left.name.localeCompare(right.name))
      .map(({ token, ...profile }) => profile);
  }
}

const store = new ProfileStore();
const save = store.save;
[{ id: 'a', name: 'Ada', token: 'secret', roles: ['admin'] }]
  .forEach(save);
console.log(store.summaries());

generated code is illustrative, not from any one model

Open in playground
Report an error