Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(core): ensure propagation and change-tracking works with useDefineForClassFields #4730

Merged
merged 1 commit into from Sep 22, 2023

Conversation

B4nan
Copy link
Member

@B4nan B4nan commented Sep 22, 2023

Propagation failed when useDefineForClassFields TypeScript compiler flag was enabled (which is true when targeting ES2022 or higher).

This PR ensures the propagation works regardless of the flag, by ensuring the getters are set up when registering entity as managed (and on few other places) via the new EntityHelper.ensurePropagation() method.

Moreover, this PR also enables the useDefineForClassFields flag, and since v6 is targeting es2022, we get no transpilation for class properties thanks to this.

Closes #4216

…neForClassFields`

Propagation on new entities you create via constructor are supported too, by modifying
the entity class prototype, but this technique fails when `useDefineForClassFields`
TypeScript compiler flag is enabled (which is true when targeting `ES2022` or higher).
You can get around this by using `declare` keyword in your entity definition, or by
creating entity instances via `em.create()`, which will ensure the propagation is enabled.

Closes #4216
@B4nan B4nan merged commit a340cf8 into v6 Sep 22, 2023
7 of 8 checks passed
@B4nan B4nan deleted the useDefineForClassFields branch September 22, 2023 18:47
B4nan added a commit that referenced this pull request Sep 24, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Sep 30, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Oct 2, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Oct 17, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Oct 21, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Oct 25, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Nov 2, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
B4nan added a commit that referenced this pull request Nov 5, 2023
…neForClassFields` (#4730)

Propagation failed when `useDefineForClassFields` TypeScript compiler
flag was enabled (which is true when targeting `ES2022` or higher).

This PR ensures the propagation works regardless of the flag, by
ensuring the getters are set up when registering entity as managed (and
on few other places) via the new `EntityHelper.ensurePropagation()`
method.

Moreover, this PR also enables the `useDefineForClassFields` flag, and
since v6 is targeting es2022, we get no transpilation for class
properties thanks to this.

Closes #4216
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant