-
Notifications
You must be signed in to change notification settings - Fork 401
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: reactivity of wire params #1526
fix: reactivity of wire params #1526
Conversation
`Mutating property is not allowed during the rendering life-cycle of ${vmBeingRendered}.` | ||
); | ||
} | ||
// if (process.env.NODE_ENV !== 'production') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we remove the if condition around valueMutated
, this check will need to be removed.
// } | ||
} | ||
|
||
export { valueObserved, ReactiveObserver }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should be an export from instead.
valueMutated(this, key); | ||
} | ||
|
||
valueMutated(vm, key); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is changing the semantic of the method name... maybe the local mutation-tracker file should expose something called componentValueMutated(vm, key)
while the original continue to be valuedMutated()
and run performance
1a013da
to
4ba32d2
Compare
before the wire reform.
@@ -104,7 +102,14 @@ function createContextWatcher( | |||
} | |||
|
|||
function createConnector(vm: VM, name: string, wireDef: WireDef): WireAdapter { | |||
const { method, adapter } = wireDef; | |||
const { method } = wireDef; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the reason for moving this here instead of storeWireMethodMeta?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@caridy storeWireMethodMeta
happens while doing registerDecorators
, the issue is that in the test (and most of the places were we add a wire adapter using register
) registerDecorators
is called before the call to register the wireAdapter.
This change, basically stores the adapterId (the reference) in storeWireMethodMeta
, and when creating the component and installing the wires, we check if it has the .adapter
added by the register call and use it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just one question...
…pter" This reverts commit b2d1a89.
* fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests
Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy
rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy
rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase
Revert "Revert "feat: add wire config as function (#1455)" (#1601)" This reverts commit 722979e. rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase fix: rebase conflicts fix: lint errors todos errors. fix: add support for adapters that use wirecontextevent fix: prefix wired element key with deprecated and remove redundant options in descriptor
Revert "Revert "feat: add wire config as function (#1455)" (#1601)" This reverts commit 722979e. rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase fix: rebase conflicts fix: lint errors todos errors. fix: add support for adapters that use wirecontextevent fix: prefix wired element key with deprecated and remove redundant options in descriptor fix: relax adapterId validation to isExtensible instead of instanceof Object. In order to be able to register an adapterId, the only precondition needed is that adapterId is extensible. this commit changes the old validation that was doing instanceof Object. fix: tf because of error message changed fix: debounce config call when creating component with wire also, adds an extra data for the wire decorator, indicating if it has dynamic parameters. fix: incorrect api field config returned from getComponentDef fix: address pr comments fix: include 33b91a2 in the wire reform
Revert "Revert "feat: add wire config as function (#1455)" (#1601)" This reverts commit 722979e. rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase fix: rebase conflicts fix: lint errors todos errors. fix: add support for adapters that use wirecontextevent fix: prefix wired element key with deprecated and remove redundant options in descriptor fix: relax adapterId validation to isExtensible instead of instanceof Object. In order to be able to register an adapterId, the only precondition needed is that adapterId is extensible. this commit changes the old validation that was doing instanceof Object. fix: tf because of error message changed fix: debounce config call when creating component with wire also, adds an extra data for the wire decorator, indicating if it has dynamic parameters. fix: incorrect api field config returned from getComponentDef fix: address pr comments fix: include 33b91a2 in the wire reform fix: —strictFunctionTypes issues plus rebase leftovers Revert "refactor(engine): Decouple createElement from engine internals (#1751)" This reverts commit 1ea1d60. # Conflicts: # packages/@lwc/engine/src/framework/def.ts # packages/@lwc/engine/src/framework/hooks.ts # packages/@lwc/engine/src/framework/services.ts # packages/@lwc/engine/src/framework/upgrade.ts # packages/@lwc/engine/src/framework/vm.ts # packages/@lwc/engine/src/framework/wc.ts # packages/@lwc/wire-service/src/index.ts # packages/@lwc/wire-service/src/property-trap.ts # packages/@lwc/wire-service/src/wiring.ts
Revert "Revert "feat: add wire config as function (#1455)" (#1601)" This reverts commit 722979e. rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase fix: rebase conflicts fix: lint errors todos errors. fix: add support for adapters that use wirecontextevent fix: prefix wired element key with deprecated and remove redundant options in descriptor fix: relax adapterId validation to isExtensible instead of instanceof Object. In order to be able to register an adapterId, the only precondition needed is that adapterId is extensible. this commit changes the old validation that was doing instanceof Object. fix: tf because of error message changed fix: debounce config call when creating component with wire also, adds an extra data for the wire decorator, indicating if it has dynamic parameters. fix: incorrect api field config returned from getComponentDef fix: address pr comments fix: include 33b91a2 in the wire reform fix: —strictFunctionTypes issues plus rebase leftovers
Revert "Revert "feat: add wire config as function (#1455)" (#1601)" This reverts commit 722979e. rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase fix: rebase conflicts fix: lint errors todos errors. fix: add support for adapters that use wirecontextevent fix: prefix wired element key with deprecated and remove redundant options in descriptor fix: relax adapterId validation to isExtensible instead of instanceof Object. In order to be able to register an adapterId, the only precondition needed is that adapterId is extensible. this commit changes the old validation that was doing instanceof Object. fix: tf because of error message changed fix: debounce config call when creating component with wire also, adds an extra data for the wire decorator, indicating if it has dynamic parameters. fix: incorrect api field config returned from getComponentDef fix: address pr comments fix: include 33b91a2 in the wire reform fix: —strictFunctionTypes issues plus rebase leftovers
* refactor(wire-service): wire decorator reform Revert "Revert "feat: add wire config as function (#1455)" (#1601)" This reverts commit 722979e. rebase from master Squashed commit of the following: commit 0f00e08 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Sep 19 23:13:15 2019 -0700 refactor(wire-service): wire decorator reform Squashed commit of the following: commit fb136b7 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 23:59:16 2019 -0400 fix(wire-service): does not accept adapter id to be a symbol commit 91c2d97 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 15:04:19 2019 -0400 fix(engine): tests and karma tests fixes commit 719c41e Merge: 3cdf650 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Sat Aug 31 14:31:07 2019 -0400 Merge branch 'master' into caridy/wire-reform-2 commit 8e5035e Author: Caridy Patiño <caridy@gmail.com> Date: Fri Aug 30 22:25:49 2019 -0400 refactor: hidden fields instead of internal fields (2) (#1485) * chore: package-unique keys for engine and synthetic shadow * refactor: remove internal fields in favor of hidden fields * fix: avoid returning boolean false when field undefined * test: use hidden fields instead of internal fields * refactor(synthetic-shadow): hidden fields instead of internal fields * chore(synthetic-shadow): "unique" string keys * fix(engine): issue 1299 second attempt * fix(engine): removing hasOwnProperty check * chore: revert changes for vm access by getComponentConstructor commit 9a7f822 Author: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com> Date: Thu Aug 29 14:05:57 2019 -0700 fix: cloneNode() default behavior should match spec (#1480) commit 3cdf650 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 05:40:52 2019 -0400 fix(engine): context to work as expected commit 2224bd2 Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:38:45 2019 -0400 fix(engine): karma tests for context providers commit 8b6c978 Merge: d02243b 5d5f7af Author: Caridy Patiño <caridy@gmail.com> Date: Thu Aug 29 04:33:58 2019 -0400 Merge branch 'caridy/wire-reform-2' of github.com:salesforce/lwc into caridy/wire-reform-2 commit 5d5f7af Author: Jose David Rodriguez <jodarove@gmail.com> Date: Fri Aug 30 13:30:34 2019 -0700 fix: observable-fields commit a901a64 Author: Jose David Rodriguez <jodarove@gmail.com> Date: Thu Aug 29 22:41:50 2019 -0700 wip: wire register is broken it was making karma fail commit d02243b Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 07:46:56 2019 -0400 fix(engine): remove unnecessary comment commit c9ad2c5 Author: Caridy Patiño <caridy@gmail.com> Date: Wed Aug 28 02:59:29 2019 -0400 refactor(engine): context provider options commit 6bcf0be Author: Caridy Patiño <caridy@gmail.com> Date: Tue Jul 16 23:03:56 2019 -0400 fix(engine): @wire() protocol reform RFC fix: rebase issues fix: wire-reform tests (#1524) * fix: invalid syntax error on invalid wire param value When a wire parameter has invalid value (eg: foo..bar, foo.bar[3]) it should (ideally) resolve in a compilation error during validation phase. This is not possible due that platform components may have a param definition which is invalid but passes compilation, and throwing at compile time would break such components. In such cases where the param does not have proper notation, the config generated will use the bracket notation to match the current behavior (that most likely end up resolving that param as undefined). * fix: tests for wire reactive parameters * fix: unit test register and WireAdapter * fix: backward compability when adding config listener * fix: adding general tests for wire adapter * wip: address pr comments and lint errors fix: reactivity of wire params (#1526) * fix: reactivity of wire params * wip: address review comments and run performance * wip: trigger perf measures * fix: remove valueMutated pruning condition * fix: add componentValueObserved for consistency * fix: remove tf because of wired properties being track before the wire reform. * fix: ensure component rerender in compat * fix: tf because registerDecorators happens before registerAdapter * Revert "fix: tf because registerDecorators happens before registerAdapter" This reverts commit b2d1a89. * fix: wire integration tests fix: rebase issues fix: remove tests because wire defs is not part of the public api of getComponentDef fix: add test for inherited methods fix: context in targets hierarchy fix: add registerWireService for backward compability it is a noop. fix(engine): remove assertions added by mistake on rebase fix: rebase conflicts fix: lint errors todos errors. fix: add support for adapters that use wirecontextevent fix: prefix wired element key with deprecated and remove redundant options in descriptor fix: relax adapterId validation to isExtensible instead of instanceof Object. In order to be able to register an adapterId, the only precondition needed is that adapterId is extensible. this commit changes the old validation that was doing instanceof Object. fix: tf because of error message changed fix: debounce config call when creating component with wire also, adds an extra data for the wire decorator, indicating if it has dynamic parameters. fix: incorrect api field config returned from getComponentDef fix: address pr comments fix: include 33b91a2 in the wire reform fix: —strictFunctionTypes issues plus rebase leftovers * fix: with babel upgrade t.isValidES3Identifier of empty string returns true Co-authored-by: Jose David Rodriguez Velasco <jodarove@gmail.com>
Details
We were previously skipping calls to
valueMutated
when the component was already dirty, and was fine because what reacts to it, will rerender the component. Now it may happen that the component is dirty but we still need to callvalueMutated
because the wire mechanism also relies in the mutation tracker to detect changes on adapters config.register(adapterId, factory)
happens afterregisterDecorators
and we were storing an adapter definition without the actual adapter (that is added after when doing register). This PR saves the adapter reference in registerDecorators, and when installing the wire adapters on the component it will try to get theadapter
from theadapterId