Skip to content
This repository was archived by the owner on Jan 17, 2025. It is now read-only.
This repository was archived by the owner on Jan 17, 2025. It is now read-only.

Consider using RegExp and CPM instead of a Babel transform #15

Description

@SaladFork

I recently watched (and enjoyed!) @serenaf's talk about this addon at EmberCamp London 2016.

I had an idea for how this might be doable without having to resort to a Babel transform (which I had a few concerns about) while still maintaining the same interface. I gave it a shot and was able to get this to work using a computed property macro and a RegExp.

The idea behind my approach relies on three observations:

The approach is then to create a computed property macro which:

  • Constructs and uses a regular expression to get all properties/paths in the passed template string, then
  • Uses those properties (after a uniq to avoid duplication) as the dependent keys of the generated computed property, and finally
  • Uses String.prototype.replace to replace instances of ${property} with the get() lookup of those properties.

You can see my solution in a twiddle (source). For the tests I copied the tests in this project's tests/unit/custom-replace-call-paths-test.js, and they seem to all pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions