ember-source 7.1.0-alpha.4 → 7.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-metadata.json +3 -3
- package/dist/dev/packages/@ember/-internals/container/index.js +4 -401
- package/dist/dev/packages/@ember/-internals/deprecations/index.js +1 -1
- package/dist/dev/packages/@ember/-internals/environment/index.js +3 -161
- package/dist/dev/packages/@ember/-internals/glimmer/index.js +14 -15
- package/dist/dev/packages/@ember/-internals/meta/lib/meta.js +0 -1
- package/dist/dev/packages/@ember/-internals/metal/index.js +18 -9
- package/dist/dev/packages/@ember/-internals/routing/index.js +1 -10
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +10 -12
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -10
- package/dist/dev/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +3 -10
- package/dist/dev/packages/@ember/-internals/string/index.js +0 -1
- package/dist/dev/packages/@ember/-internals/utils/index.js +8 -3
- package/dist/dev/packages/@ember/-internals/views/index.js +0 -1
- package/dist/dev/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -1
- package/dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js +3 -12
- package/dist/dev/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -11
- package/dist/dev/packages/@ember/-internals/views/lib/system/utils.js +1 -1
- package/dist/dev/packages/@ember/-internals/views/lib/views/core_view.js +2 -19
- package/dist/dev/packages/@ember/-internals/views/lib/views/states.js +1 -1
- package/dist/dev/packages/@ember/application/index.js +5 -28
- package/dist/dev/packages/@ember/application/instance.js +3 -22
- package/dist/dev/packages/@ember/application/namespace.js +4 -11
- package/dist/dev/packages/@ember/array/index.js +7 -15
- package/dist/dev/packages/@ember/array/proxy.js +10 -14
- package/dist/dev/packages/@ember/canary-features/index.js +1 -1
- package/dist/dev/packages/@ember/component/helper.js +1 -14
- package/dist/dev/packages/@ember/component/index.js +1356 -17
- package/dist/dev/packages/@ember/component/template-only.js +1 -9
- package/dist/dev/packages/@ember/controller/index.js +3 -19
- package/dist/dev/packages/@ember/debug/container-debug-adapter.js +0 -19
- package/dist/dev/packages/@ember/debug/data-adapter.js +4 -11
- package/dist/dev/packages/@ember/debug/index.js +1 -1
- package/dist/dev/packages/@ember/debug/lib/deprecate.js +1 -1
- package/dist/dev/packages/@ember/engine/index.js +3 -31
- package/dist/dev/packages/@ember/engine/instance.js +3 -8
- package/dist/dev/packages/@ember/helper/index.js +159 -21
- package/dist/dev/packages/@ember/instrumentation/index.js +1 -1
- package/dist/dev/packages/@ember/modifier/index.js +2 -16
- package/dist/dev/packages/@ember/modifier/on.js +1 -9
- package/dist/dev/packages/@ember/object/-internals.js +3 -11
- package/dist/dev/packages/@ember/object/compat.js +3 -10
- package/dist/dev/packages/@ember/object/computed.js +2 -12
- package/dist/dev/packages/@ember/object/core.js +10 -18
- package/dist/dev/packages/@ember/object/evented.js +2 -12
- package/dist/dev/packages/@ember/object/events.js +1 -11
- package/dist/dev/packages/@ember/object/index.js +10 -14
- package/dist/dev/packages/@ember/object/internals.js +1 -1
- package/dist/dev/packages/@ember/object/lib/computed/computed_macros.js +6 -23
- package/dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js +3 -12
- package/dist/dev/packages/@ember/object/mixin.js +7 -10
- package/dist/dev/packages/@ember/object/observable.js +8 -12
- package/dist/dev/packages/@ember/object/observers.js +1 -11
- package/dist/dev/packages/@ember/object/promise-proxy-mixin.js +3 -13
- package/dist/dev/packages/@ember/object/proxy.js +0 -7
- package/dist/dev/packages/@ember/reactive/collections.js +591 -1
- package/dist/dev/packages/@ember/renderer/index.js +1 -14
- package/dist/dev/packages/@ember/routing/-internals.js +1 -10
- package/dist/dev/packages/@ember/routing/index.js +614 -14
- package/dist/dev/packages/@ember/routing/lib/generate_controller.js +2 -11
- package/dist/dev/packages/@ember/routing/lib/routing-service.js +7 -17
- package/dist/dev/packages/@ember/routing/lib/utils.js +2 -11
- package/dist/dev/packages/@ember/routing/route.js +13 -24
- package/dist/dev/packages/@ember/routing/router-service.js +9 -18
- package/dist/dev/packages/@ember/routing/router.js +5 -21
- package/dist/dev/packages/@ember/runloop/index.js +1 -10
- package/dist/dev/packages/@ember/service/index.js +1 -11
- package/dist/dev/packages/@ember/template/index.js +1 -14
- package/dist/dev/packages/@ember/template-compiler/lib/compile-options.js +12 -15
- package/dist/dev/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -1
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
- package/dist/dev/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +1 -3
- package/dist/dev/packages/@ember/template-compiler/lib/template.js +3 -11
- package/dist/dev/packages/@ember/template-factory/index.js +1 -8
- package/dist/dev/packages/@ember/utils/lib/compare.js +0 -7
- package/dist/dev/packages/@ember/utils/lib/is_empty.js +1 -12
- package/dist/dev/packages/@glimmer/destroyable/index.js +1 -1
- package/dist/dev/packages/@glimmer/manager/index.js +5 -315
- package/dist/dev/packages/@glimmer/node/index.js +3 -11
- package/dist/dev/packages/@glimmer/opcode-compiler/index.js +2 -7
- package/dist/dev/packages/@glimmer/program/index.js +194 -3
- package/dist/dev/packages/@glimmer/reference/index.js +4 -5
- package/dist/dev/packages/@glimmer/runtime/index.js +15 -10
- package/dist/dev/packages/@glimmer/tracking/index.js +2 -11
- package/dist/dev/packages/@glimmer/tracking/primitives/cache/index.js +1 -11
- package/dist/dev/packages/@glimmer/util/index.js +1 -2
- package/dist/dev/packages/@glimmer/validator/index.js +4 -1253
- package/dist/dev/packages/@glimmer/vm/index.js +1 -1
- package/dist/dev/packages/@glimmer/wire-format/index.js +3 -65
- package/dist/dev/packages/ember/version.js +1 -1
- package/dist/dev/packages/ember-template-compiler/index.js +7 -7
- package/dist/dev/packages/shared-chunks/{alias-CSC0WIbj.js → alias-ZcMQckQV.js} +8 -4
- package/dist/dev/packages/shared-chunks/api-BAmlf_CN.js +310 -0
- package/dist/dev/packages/shared-chunks/{api-BQMslHhq.js → api-BawZUDYD.js} +5 -6
- package/dist/dev/packages/shared-chunks/{args-proxy-DgXMc9b5.js → args-proxy-BNLuRFlO.js} +2 -4
- package/dist/dev/packages/shared-chunks/{array-D8PfjQHi.js → array-Bh_kUjzy.js} +2 -1
- package/dist/dev/packages/shared-chunks/assert-Zqc4wiAV.js +6 -0
- package/dist/dev/packages/shared-chunks/cache-B7dqAS38.js +596 -0
- package/dist/dev/packages/shared-chunks/{capabilities-O_xc7Yqk.js → capabilities-CZkuOqqC.js} +0 -5
- package/dist/dev/packages/shared-chunks/chain-tags-D6tuFUj_.js +190 -0
- package/dist/dev/packages/shared-chunks/{collections-D_nY_0UJ.js → collections-DPkjqeA3.js} +0 -1
- package/dist/dev/packages/shared-chunks/{compiler-D1leQ3Gl.js → compiler-QUSl_urU.js} +7043 -235
- package/dist/dev/packages/shared-chunks/computed-CJnghmXC.js +980 -0
- package/dist/dev/packages/shared-chunks/container-BzzHmCNj.js +404 -0
- package/dist/dev/packages/shared-chunks/curly-BBzF_bI8.js +617 -0
- package/dist/dev/packages/shared-chunks/curried-BZnYakIg.js +5 -0
- package/dist/dev/packages/shared-chunks/{debug-to-string-CFb7h0lY.js → debug-to-string-C6LsA_qz.js} +1 -2
- package/dist/dev/packages/shared-chunks/decorator-B5Uh5NFI.js +135 -0
- package/dist/dev/packages/shared-chunks/element-DQJOvSlQ.js +109 -0
- package/dist/dev/packages/shared-chunks/element-builder--iTIJyCB.js +812 -0
- package/dist/dev/packages/shared-chunks/env-g-kaAFLN.js +161 -0
- package/dist/dev/packages/shared-chunks/events-6aFVjD4k.js +180 -0
- package/dist/dev/packages/shared-chunks/get-D5b5QlqE.js +138 -0
- package/dist/dev/packages/shared-chunks/get-debug-name-CSniHBsn.js +45 -0
- package/dist/dev/packages/shared-chunks/get_properties-CIm8IAtP.js +55 -0
- package/dist/dev/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/dev/packages/shared-chunks/hash-BRRFQJ99.js +192 -0
- package/dist/dev/packages/shared-chunks/helper-Do7NCZHI.js +314 -0
- package/dist/dev/packages/shared-chunks/index-CwnQYqK5.js +2500 -0
- package/dist/dev/packages/shared-chunks/{index-BUPd6pkm.js → index-CyZiGiEI.js} +28 -29
- package/dist/dev/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/dev/packages/shared-chunks/injected_property-B4T-FzZZ.js +70 -0
- package/dist/dev/packages/shared-chunks/intern-zquhAEIg.js +51 -0
- package/dist/dev/packages/shared-chunks/internal-CAL-jHZt.js +140 -0
- package/dist/dev/packages/shared-chunks/internal-helper-Ez7zbEIa.js +7 -0
- package/dist/dev/packages/shared-chunks/{neq-DujMPv1k.js → invoke-B8M5fQQS.js} +4 -32
- package/dist/{prod/packages/shared-chunks/is_proxy-Cr1qlMv_.js → dev/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
- package/dist/dev/packages/shared-chunks/libraries-CHBwbR72.js +79 -0
- package/dist/dev/packages/shared-chunks/mandatory-setter-BpbAMTzV.js +107 -0
- package/dist/dev/packages/shared-chunks/meta-BmRXesrk.js +46 -0
- package/dist/{prod/packages/shared-chunks/name-C68GLLO3.js → dev/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
- package/dist/dev/packages/shared-chunks/{namespace_search-uT8odThF.js → namespace_search-BfvzEQzN.js} +1 -2
- package/dist/dev/packages/shared-chunks/normalize-CKySQVU7.js +84 -0
- package/dist/dev/packages/shared-chunks/observers-C2DurkLG.js +199 -0
- package/dist/dev/packages/shared-chunks/on-BueSMv9L.js +253 -0
- package/dist/dev/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/dev/packages/shared-chunks/or-O0eJQ4K-.js +118 -0
- package/dist/{prod/packages/shared-chunks/program-B7SJZ5NF.js → dev/packages/shared-chunks/program-DzAfcWFj.js} +1 -1
- package/dist/{prod/packages/shared-chunks/program-context-DFiwaPMR.js → dev/packages/shared-chunks/program-context-CadjldRr.js} +4 -3
- package/dist/dev/packages/shared-chunks/property_get-CIBS9umw.js +139 -0
- package/dist/dev/packages/shared-chunks/{property_set-DaoZXGM5.js → property_set-D3PKyisF.js} +4 -2
- package/dist/dev/packages/shared-chunks/props-fiqxqhAH.js +85 -0
- package/dist/dev/packages/shared-chunks/{reference-C3TKDRnP.js → reference-BoPB2LfI.js} +3 -4
- package/dist/{prod/packages/shared-chunks/registers-ylirb0dq.js → dev/packages/shared-chunks/registers-C_W2qYHJ.js} +1 -1
- package/dist/{prod/packages/shared-chunks/rehydrate-builder-D3t52iGR.js → dev/packages/shared-chunks/rehydrate-builder-DCyIgnCR.js} +7 -4
- package/dist/dev/packages/shared-chunks/{render-DCchifOK.js → render-CpKaO-BO.js} +512 -16
- package/dist/{prod/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js → dev/packages/shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js} +4 -59
- package/dist/{prod/packages/shared-chunks/serialize-builder-iXiRs1Pg.js → dev/packages/shared-chunks/serialize-builder-DxgGRvH_.js} +2 -7
- package/dist/dev/packages/shared-chunks/set_properties-BghuuGJx.js +48 -0
- package/dist/dev/packages/shared-chunks/{setup-registry-DxchCIL2.js → setup-registry-BC5VMvei.js} +34 -14
- package/dist/dev/packages/shared-chunks/spec-BXl1reqK.js +16 -0
- package/dist/dev/packages/shared-chunks/super-BBBjgF69.js +91 -0
- package/dist/dev/packages/shared-chunks/syscall-ops-BPFtDquC.js +133 -0
- package/dist/dev/packages/shared-chunks/template-BRrQR6KS.js +16 -0
- package/dist/dev/packages/shared-chunks/{template-kM-7TTcc.js → template-R_5UMHhb.js} +1 -1
- package/dist/dev/packages/shared-chunks/template-only-BqOt8bDl.js +78 -0
- package/dist/dev/packages/shared-chunks/textarea-WSlUEr0y.js +468 -0
- package/dist/dev/packages/shared-chunks/tracked-CKE4wnE6.js +148 -0
- package/dist/dev/packages/shared-chunks/tracked-data-CGnA4ytZ.js +31 -0
- package/dist/dev/packages/shared-chunks/transform-resolutions-h1ik8gqW.js +645 -0
- package/dist/dev/packages/shared-chunks/unique-id-CgmHQiwi.js +32 -0
- package/dist/{prod/packages/shared-chunks/on-CersD7PL.js → dev/packages/shared-chunks/untouchable-this-B3DVwpHS.js} +215 -1397
- package/dist/dev/packages/shared-chunks/vm-ops-ImHv0Wtg.js +12 -0
- package/dist/dev/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/dist/prod/packages/@ember/-internals/container/index.js +4 -315
- package/dist/prod/packages/@ember/-internals/deprecations/index.js +1 -1
- package/dist/prod/packages/@ember/-internals/environment/index.js +3 -158
- package/dist/prod/packages/@ember/-internals/glimmer/index.js +14 -13
- package/dist/prod/packages/@ember/-internals/meta/lib/meta.js +0 -3
- package/dist/prod/packages/@ember/-internals/metal/index.js +18 -13
- package/dist/prod/packages/@ember/-internals/routing/index.js +1 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/ext/rsvp.js +0 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/-proxy.js +9 -10
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/action_handler.js +1 -6
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/registry_proxy.js +0 -1
- package/dist/prod/packages/@ember/-internals/runtime/lib/mixins/target_action_support.js +2 -6
- package/dist/prod/packages/@ember/-internals/string/index.js +0 -2
- package/dist/prod/packages/@ember/-internals/utils/index.js +32 -30
- package/dist/prod/packages/@ember/-internals/views/index.js +0 -1
- package/dist/prod/packages/@ember/-internals/views/lib/compat/fallback-view-registry.js +0 -2
- package/dist/prod/packages/@ember/-internals/views/lib/mixins/action_support.js +1 -6
- package/dist/prod/packages/@ember/-internals/views/lib/system/event_dispatcher.js +2 -7
- package/dist/prod/packages/@ember/-internals/views/lib/system/utils.js +1 -2
- package/dist/prod/packages/@ember/-internals/views/lib/views/core_view.js +2 -15
- package/dist/prod/packages/@ember/-internals/views/lib/views/states.js +0 -2
- package/dist/prod/packages/@ember/application/index.js +5 -24
- package/dist/prod/packages/@ember/application/instance.js +5 -18
- package/dist/prod/packages/@ember/application/namespace.js +4 -8
- package/dist/prod/packages/@ember/array/index.js +7 -12
- package/dist/prod/packages/@ember/array/proxy.js +9 -10
- package/dist/prod/packages/@ember/canary-features/index.js +1 -1
- package/dist/prod/packages/@ember/component/helper.js +1 -12
- package/dist/prod/packages/@ember/component/index.js +1291 -15
- package/dist/prod/packages/@ember/component/template-only.js +1 -6
- package/dist/prod/packages/@ember/controller/index.js +3 -16
- package/dist/prod/packages/@ember/debug/container-debug-adapter.js +1 -15
- package/dist/prod/packages/@ember/debug/data-adapter.js +5 -7
- package/dist/prod/packages/@ember/debug/index.js +1 -1
- package/dist/prod/packages/@ember/debug/lib/deprecate.js +1 -1
- package/dist/prod/packages/@ember/engine/index.js +3 -27
- package/dist/prod/packages/@ember/engine/instance.js +3 -9
- package/dist/prod/packages/@ember/helper/index.js +159 -19
- package/dist/prod/packages/@ember/instrumentation/index.js +1 -1
- package/dist/prod/packages/@ember/modifier/index.js +2 -14
- package/dist/prod/packages/@ember/modifier/on.js +1 -6
- package/dist/prod/packages/@ember/object/-internals.js +2 -6
- package/dist/prod/packages/@ember/object/compat.js +3 -7
- package/dist/prod/packages/@ember/object/computed.js +2 -8
- package/dist/prod/packages/@ember/object/core.js +8 -15
- package/dist/prod/packages/@ember/object/evented.js +2 -7
- package/dist/prod/packages/@ember/object/events.js +1 -6
- package/dist/prod/packages/@ember/object/index.js +10 -12
- package/dist/prod/packages/@ember/object/internals.js +2 -6
- package/dist/prod/packages/@ember/object/lib/computed/computed_macros.js +5 -20
- package/dist/prod/packages/@ember/object/lib/computed/reduce_computed_macros.js +2 -9
- package/dist/prod/packages/@ember/object/mixin.js +6 -9
- package/dist/prod/packages/@ember/object/observable.js +7 -9
- package/dist/prod/packages/@ember/object/observers.js +1 -6
- package/dist/prod/packages/@ember/object/promise-proxy-mixin.js +3 -9
- package/dist/prod/packages/@ember/object/proxy.js +0 -7
- package/dist/prod/packages/@ember/reactive/collections.js +591 -1
- package/dist/prod/packages/@ember/renderer/index.js +1 -12
- package/dist/prod/packages/@ember/routing/history-location.js +0 -1
- package/dist/prod/packages/@ember/routing/index.js +580 -12
- package/dist/prod/packages/@ember/routing/lib/dsl.js +0 -2
- package/dist/prod/packages/@ember/routing/lib/generate_controller.js +1 -6
- package/dist/prod/packages/@ember/routing/lib/routing-service.js +4 -14
- package/dist/prod/packages/@ember/routing/lib/utils.js +1 -6
- package/dist/prod/packages/@ember/routing/none-location.js +0 -1
- package/dist/prod/packages/@ember/routing/route.js +12 -22
- package/dist/prod/packages/@ember/routing/router-service.js +6 -15
- package/dist/prod/packages/@ember/routing/router.js +4 -17
- package/dist/prod/packages/@ember/runloop/index.js +1 -6
- package/dist/prod/packages/@ember/service/index.js +1 -7
- package/dist/prod/packages/@ember/template/index.js +1 -12
- package/dist/prod/packages/@ember/template-compiler/lib/compile-options.js +12 -14
- package/dist/prod/packages/@ember/template-compiler/lib/dasherize-component-name.js +0 -2
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-attrs.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-against-named-outlets.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.js +0 -2
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/auto-import-builtins.js +13 -60
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/index.js +1 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-each-track-array.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-in-element.js +0 -1
- package/dist/prod/packages/@ember/template-compiler/lib/plugins/transform-resolutions.js +126 -4
- package/dist/prod/packages/@ember/template-compiler/lib/template.js +2 -7
- package/dist/prod/packages/@ember/template-factory/index.js +1 -5
- package/dist/prod/packages/@ember/utils/lib/compare.js +0 -8
- package/dist/prod/packages/@ember/utils/lib/is_empty.js +1 -7
- package/dist/prod/packages/@glimmer/manager/index.js +4 -292
- package/dist/prod/packages/@glimmer/node/index.js +3 -8
- package/dist/prod/packages/@glimmer/opcode-compiler/index.js +2 -5
- package/dist/prod/packages/@glimmer/program/index.js +194 -3
- package/dist/prod/packages/@glimmer/reference/index.js +4 -4
- package/dist/prod/packages/@glimmer/runtime/index.js +14 -8
- package/dist/prod/packages/@glimmer/tracking/index.js +2 -7
- package/dist/prod/packages/@glimmer/tracking/primitives/cache/index.js +1 -6
- package/dist/prod/packages/@glimmer/util/index.js +2 -2
- package/dist/prod/packages/@glimmer/validator/index.js +5 -1016
- package/dist/prod/packages/@glimmer/vm/index.js +1 -1
- package/dist/prod/packages/@glimmer/wire-format/index.js +3 -65
- package/dist/prod/packages/ember/version.js +1 -1
- package/dist/prod/packages/ember-template-compiler/index.js +4 -7
- package/dist/prod/packages/shared-chunks/{alias-BLBQkche.js → alias-DBW_V5vD.js} +7 -6
- package/dist/prod/packages/shared-chunks/api-CM1trl_4.js +289 -0
- package/dist/prod/packages/shared-chunks/{api-B5UrgITK.js → api-zh_k31vb.js} +4 -5
- package/dist/prod/packages/shared-chunks/{args-proxy-Dl0A0YWI.js → args-proxy-BDXbXCF9.js} +2 -2
- package/dist/prod/packages/shared-chunks/{array-kVQfzrQn.js → array-D6Couewv.js} +2 -3
- package/dist/prod/packages/shared-chunks/assert-Zqc4wiAV.js +6 -0
- package/dist/prod/packages/shared-chunks/cache-BIlOoPA7.js +371 -0
- package/dist/prod/packages/shared-chunks/{capabilities-DXA-L0iT.js → capabilities-_5e35539.js} +0 -3
- package/dist/prod/packages/shared-chunks/chain-tags-C9rFtQ_x.js +178 -0
- package/dist/prod/packages/shared-chunks/{compiler-Bbki2GT_.js → compiler-c4yUVrl_.js} +7044 -193
- package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-DjCIU_ht.js} +108 -239
- package/dist/prod/packages/shared-chunks/container-BYOnjnwz.js +315 -0
- package/dist/prod/packages/shared-chunks/curly-ZzX43b50.js +545 -0
- package/dist/prod/packages/shared-chunks/curried-BZnYakIg.js +5 -0
- package/dist/prod/packages/shared-chunks/debug-render-tree-CF5O4-WI.js +2049 -0
- package/dist/prod/packages/shared-chunks/{decorator-BdDDBUd2.js → decorator-9ikVwsjY.js} +0 -1
- package/dist/prod/packages/shared-chunks/element-DUOVW5Ho.js +100 -0
- package/dist/prod/packages/shared-chunks/{element-builder-CzXb9l1W.js → element-builder-CnlTPNyw.js} +109 -88
- package/dist/prod/packages/shared-chunks/env-DXxsTFkM.js +158 -0
- package/dist/prod/packages/shared-chunks/events-DYrYz3V8.js +174 -0
- package/dist/prod/packages/shared-chunks/get-t0-itmA-.js +138 -0
- package/dist/prod/packages/shared-chunks/get_properties-Nn08mLAH.js +55 -0
- package/dist/prod/packages/shared-chunks/guid-Cbq2sNV_.js +123 -0
- package/dist/prod/packages/shared-chunks/hash-mcs3pEFO.js +192 -0
- package/dist/prod/packages/shared-chunks/helper-DLjV2ZZW.js +298 -0
- package/dist/prod/packages/shared-chunks/{index-CjaDF9kC.js → index-Bj71BDDA.js} +17 -10
- package/dist/prod/packages/shared-chunks/index-D-xTBV4B.js +220 -0
- package/dist/prod/packages/shared-chunks/index-qDFz6Mfe.js +2322 -0
- package/dist/prod/packages/shared-chunks/{injected_property-CTVs5FPh.js → injected_property--eJunJph.js} +2 -3
- package/dist/prod/packages/shared-chunks/intern-zquhAEIg.js +51 -0
- package/dist/prod/packages/shared-chunks/internal-DidurjJB.js +137 -0
- package/dist/prod/packages/shared-chunks/internal-helper-DIbr1RgC.js +7 -0
- package/dist/prod/packages/shared-chunks/{neq-BqdovTuC.js → invoke-Cj5zMqHz.js} +4 -24
- package/dist/{dev/packages/shared-chunks/is_proxy-B0smdQy8.js → prod/packages/shared-chunks/is_proxy-Bzg0d4m4.js} +1 -1
- package/dist/prod/packages/shared-chunks/libraries-_k-4KK5_.js +59 -0
- package/dist/prod/packages/shared-chunks/meta-B9mldqPL.js +36 -0
- package/dist/{dev/packages/shared-chunks/name-Z7dpqvzn.js → prod/packages/shared-chunks/name-Clp4Vsod.js} +1 -1
- package/dist/prod/packages/shared-chunks/namespace_search-BfvzEQzN.js +134 -0
- package/dist/prod/packages/shared-chunks/normalize-D9jDJVGg.js +84 -0
- package/dist/prod/packages/shared-chunks/observers-CDkeR0nI.js +199 -0
- package/dist/prod/packages/shared-chunks/on-B5NVufs_.js +228 -0
- package/dist/prod/packages/shared-chunks/opcodes-CplRyHl_.js +50 -0
- package/dist/prod/packages/shared-chunks/or-3AxY5TPj.js +91 -0
- package/dist/{dev/packages/shared-chunks/program-DfV0v8aa.js → prod/packages/shared-chunks/program-B7CWdS8W.js} +1 -2
- package/dist/{dev/packages/shared-chunks/program-context-sJz0oHOA.js → prod/packages/shared-chunks/program-context-B8HKU7wu.js} +4 -3
- package/dist/prod/packages/shared-chunks/property_get-CAFdpRyu.js +121 -0
- package/dist/prod/packages/shared-chunks/{property_set-B2sZxeCw.js → property_set-BunbMFtp.js} +3 -5
- package/dist/prod/packages/shared-chunks/props-fiqxqhAH.js +85 -0
- package/dist/prod/packages/shared-chunks/{reference-BNqcwZWH.js → reference-BshxG6wn.js} +3 -3
- package/dist/{dev/packages/shared-chunks/registers-ylirb0dq.js → prod/packages/shared-chunks/registers-C_W2qYHJ.js} +1 -1
- package/dist/{dev/packages/shared-chunks/rehydrate-builder-BRH0p0wA.js → prod/packages/shared-chunks/rehydrate-builder-DJ8k-6fg.js} +7 -7
- package/dist/prod/packages/shared-chunks/{render-D78XHdek.js → render-DkJJmoI4.js} +488 -12
- package/dist/{dev/packages/shared-chunks/chunk-3SQBS3Y5-Cj4eryg1.js → prod/packages/shared-chunks/runtime-CYyqkz5q-BOdRhmsS.js} +4 -59
- package/dist/{dev/packages/shared-chunks/serialize-builder-DiO7Ak9_.js → prod/packages/shared-chunks/serialize-builder-R3Ozg0sC.js} +2 -10
- package/dist/prod/packages/shared-chunks/set_properties-LT3RzRmJ.js +48 -0
- package/dist/prod/packages/shared-chunks/{setup-registry-Cs-7NIJU.js → setup-registry-C2KfZJWI.js} +34 -13
- package/dist/prod/packages/shared-chunks/spec-BXl1reqK.js +16 -0
- package/dist/prod/packages/shared-chunks/super-BBBjgF69.js +91 -0
- package/dist/prod/packages/shared-chunks/syscall-ops-BPFtDquC.js +133 -0
- package/dist/prod/packages/shared-chunks/template-BRrQR6KS.js +16 -0
- package/dist/prod/packages/shared-chunks/template-only-BtLl0uH0.js +78 -0
- package/dist/prod/packages/shared-chunks/textarea-CHqL0Rdh.js +454 -0
- package/dist/prod/packages/shared-chunks/{tracked-Cl5l4v8b.js → tracked-DAVrVqJl.js} +5 -4
- package/dist/prod/packages/shared-chunks/tracked-data-C83f5V5S.js +31 -0
- package/dist/prod/packages/shared-chunks/unique-id-CfHImDRV.js +32 -0
- package/dist/prod/packages/shared-chunks/vm-ops-ImHv0Wtg.js +12 -0
- package/dist/prod/packages/shared-chunks/well-known-_EVO9RaV.js +17 -0
- package/docs/data.json +1237 -1023
- package/lib/index.js +0 -1
- package/package.json +14 -12
- package/types/stable/@ember/-internals/container/lib/registry.d.ts +1 -1
- package/types/stable/@ember/-internals/deprecations/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/index.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/curly.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/mount.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/outlet.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/component-managers/route-template.d.ts +2 -2
- package/types/stable/@ember/-internals/glimmer/lib/component.d.ts +9 -7
- package/types/stable/@ember/-internals/glimmer/lib/components/abstract-input.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/dom.d.ts +6 -2
- package/types/stable/@ember/-internals/glimmer/lib/environment.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/helper.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/renderer.d.ts +3 -3
- package/types/stable/@ember/-internals/glimmer/lib/setup-registry.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/bindings.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/curly-component-state-bucket.d.ts +3 -2
- package/types/stable/@ember/-internals/glimmer/lib/utils/iterator.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/managers.d.ts +2 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/serialization-first-node-helpers.d.ts +1 -1
- package/types/stable/@ember/-internals/glimmer/lib/utils/string.d.ts +1 -1
- package/types/stable/@ember/-internals/meta/lib/meta.d.ts +3 -2
- package/types/stable/@ember/-internals/metal/lib/cache.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/chain-tags.d.ts +3 -2
- package/types/stable/@ember/-internals/metal/lib/computed.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/decorator.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/deprecate_property.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/events.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/observer.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/properties.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/property_events.d.ts +1 -1
- package/types/stable/@ember/-internals/metal/lib/tags.d.ts +2 -1
- package/types/stable/@ember/-internals/runtime/lib/mixins/container_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/runtime/lib/mixins/registry_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/utils/lib/is_proxy.d.ts +1 -1
- package/types/stable/@ember/-internals/utils/lib/mandatory-setter.d.ts +1 -1
- package/types/stable/@ember/-internals/views/index.d.ts +0 -1
- package/types/stable/@ember/-internals/views/lib/system/utils.d.ts +1 -1
- package/types/stable/@ember/-internals/views/lib/views/core_view.d.ts +2 -2
- package/types/stable/@ember/-internals/views/lib/views/states.d.ts +1 -1
- package/types/stable/@ember/application/index.d.ts +5 -4
- package/types/stable/@ember/application/instance.d.ts +4 -3
- package/types/stable/@ember/application/namespace.d.ts +1 -1
- package/types/stable/@ember/array/proxy.d.ts +4 -3
- package/types/stable/@ember/component/helper.d.ts +1 -1
- package/types/stable/@ember/component/index.d.ts +6 -3
- package/types/stable/@ember/controller/index.d.ts +2 -2
- package/types/stable/@ember/debug/container-debug-adapter.d.ts +1 -1
- package/types/stable/@ember/engine/index.d.ts +3 -3
- package/types/stable/@ember/engine/instance.d.ts +4 -3
- package/types/stable/@ember/helper/index.d.ts +167 -5
- package/types/stable/@ember/modifier/index.d.ts +1 -1
- package/types/stable/@ember/object/-internals.d.ts +2 -2
- package/types/stable/@ember/object/compat.d.ts +2 -2
- package/types/stable/@ember/object/computed.d.ts +3 -1
- package/types/stable/@ember/object/evented.d.ts +1 -1
- package/types/stable/@ember/object/events.d.ts +1 -1
- package/types/stable/@ember/object/index.d.ts +8 -2
- package/types/stable/@ember/object/lib/computed/computed_macros.d.ts +1 -1
- package/types/stable/@ember/object/mixin.d.ts +1 -1
- package/types/stable/@ember/object/observers.d.ts +1 -1
- package/types/stable/@ember/object/proxy.d.ts +1 -1
- package/types/stable/@ember/reactive/collections.d.ts +6 -6
- package/types/stable/@ember/renderer/index.d.ts +2 -2
- package/types/stable/@ember/routing/index.d.ts +1 -1
- package/types/stable/@ember/routing/lib/controller_for.d.ts +2 -2
- package/types/stable/@ember/routing/route.d.ts +2 -2
- package/types/stable/@ember/routing/router.d.ts +2 -2
- package/types/stable/@ember/service/index.d.ts +1 -1
- package/types/stable/@ember/template/index.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/dasherize-component-name.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-against-attrs.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-against-named-outlets.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-input-helper-without-block.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/assert-reserved-named-arguments.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/auto-import-builtins.d.ts +1 -4
- package/types/stable/@ember/template-compiler/lib/plugins/transform-action-syntax.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-each-in-into-each.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-each-track-array.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-in-element.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-quoted-bindings-into-just-bindings.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-resolutions.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/transform-wrap-mount-and-outlet.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/plugins/utils.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/system/calculate-location-display.d.ts +1 -1
- package/types/stable/@ember/template-compiler/lib/types.d.ts +2 -1
- package/types/stable/@ember/template-factory/index.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/builder/builder-interface.d.ts +2 -2
- package/types/stable/@glimmer/compiler/lib/builder/builder.d.ts +2 -2
- package/types/stable/@glimmer/compiler/lib/compiler.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/context.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/index.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/impl.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/curry.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/dynamic-vars.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/has-block.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/if-unless.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/keywords/utils/log.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/classified.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/component.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/element/simple-element.d.ts +2 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/expressions.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/statements.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/1-normalization/visitors/strict-mode.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/2-encoding/expressions.d.ts +1 -1
- package/types/stable/@glimmer/compiler/lib/passes/2-encoding/mir.d.ts +3 -1
- package/types/stable/@glimmer/compiler/lib/shared/result.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/public/component.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/util/args-proxy.d.ts +1 -1
- package/types/stable/@glimmer/manager/lib/util/capabilities.d.ts +1 -1
- package/types/stable/@glimmer/node/lib/node-dom-helper.d.ts +1 -1
- package/types/stable/@glimmer/opcode-compiler/lib/opcode-builder/helpers/components.d.ts +1 -1
- package/types/stable/@glimmer/runtime/index.d.ts +7 -4
- package/types/stable/@glimmer/runtime/lib/compiled/expressions/concat.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/-debug-strip.d.ts +4 -3
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/component.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/dom.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/compiled/opcodes/vm.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/component/template-only.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/curried-value.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/and.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/helpers/gt.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/gte.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/invoke.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/helpers/lt.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/lte.d.ts +8 -0
- package/types/stable/@glimmer/runtime/lib/helpers/not.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/helpers/or.d.ts +3 -0
- package/types/stable/@glimmer/runtime/lib/opcodes.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/references/class-list.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/references/curry-value.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/render.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/scope.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/append.d.ts +3 -2
- package/types/stable/@glimmer/runtime/lib/vm/arguments.d.ts +2 -2
- package/types/stable/@glimmer/runtime/lib/vm/content/text.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/element-builder.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/low-level.d.ts +2 -1
- package/types/stable/@glimmer/runtime/lib/vm/rehydrate-builder.d.ts +1 -1
- package/types/stable/@glimmer/runtime/lib/vm/update.d.ts +2 -1
- package/types/stable/@glimmer/syntax/lib/keywords.d.ts +2 -2
- package/types/stable/@glimmer/tracking/index.d.ts +2 -1
- package/types/stable/@glimmer/tracking/primitives/cache.d.ts +1 -1
- package/types/stable/index.d.ts +7 -1
- package/dist/dev/packages/@ember/-internals/views/lib/component_lookup.js +0 -14
- package/dist/dev/packages/shared-chunks/assert-CUCJBR2C.js +0 -19
- package/dist/dev/packages/shared-chunks/constants-BbdWMvgs.js +0 -213
- package/dist/dev/packages/shared-chunks/dynamic-CgX8M02_.js +0 -3823
- package/dist/dev/packages/shared-chunks/element-builder-BpJIoi99.js +0 -404
- package/dist/dev/packages/shared-chunks/fragment-Cc5k9Oy4.js +0 -911
- package/dist/dev/packages/shared-chunks/index-RzG0Jvjx.js +0 -6306
- package/dist/dev/packages/shared-chunks/mandatory-setter-DHZe7-kW.js +0 -425
- package/dist/dev/packages/shared-chunks/observers-Bj9qLVau.js +0 -2062
- package/dist/dev/packages/shared-chunks/set_properties-kVGzZL_a.js +0 -100
- package/dist/dev/packages/shared-chunks/transform-resolutions-D-YtZ0_g.js +0 -7458
- package/dist/prod/packages/@ember/-internals/views/lib/component_lookup.js +0 -14
- package/dist/prod/packages/shared-chunks/constants-DThhT5fu.js +0 -210
- package/dist/prod/packages/shared-chunks/fragment-D7nBU9ae.js +0 -925
- package/dist/prod/packages/shared-chunks/index-r-Dz_hzt.js +0 -5931
- package/dist/prod/packages/shared-chunks/observers-tZ2aOzr4.js +0 -714
- package/dist/prod/packages/shared-chunks/set_properties-C1T46IiN.js +0 -101
- package/dist/prod/packages/shared-chunks/super-Cm_a_cLQ.js +0 -275
- package/dist/prod/packages/shared-chunks/transform-resolutions-DR4GLmR2.js +0 -6936
- package/types/stable/@ember/-internals/views/lib/component_lookup.d.ts +0 -8
- package/dist/prod/packages/shared-chunks/{collections-GpG8lT2g.js → collections-C3Y8z_9v.js} +9 -9
package/dist/prod/packages/shared-chunks/{namespace_search-Dcdalhj6.js → computed-DjCIU_ht.js}
RENAMED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import './
|
|
3
|
-
import {
|
|
1
|
+
import { meta, peekMeta } from '../@ember/-internals/meta/lib/meta.js';
|
|
2
|
+
import { d as descriptorForProperty, a as isClassicDecorator, c as ComputedDescriptor, i as isElementDescriptor, m as makeComputedDecorator, b as descriptorForDecorator } from './decorator-9ikVwsjY.js';
|
|
3
|
+
import { c as revalidateObservers, d as flushSyncObservers, e as resumeObserverDeactivation, s as suspendedObserverDeactivation, b as addObserver, g as setObserverSuspended } from './observers-CDkeR0nI.js';
|
|
4
4
|
import inspect from '../@ember/debug/lib/inspect.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { s as setName, g as getName } from './name-C68GLLO3.js';
|
|
5
|
+
import { v as validateTag, u as untrack, U as UPDATE_TAG, d as valueForTag, a as consumeTag, A as ALLOW_CYCLES, t as track } from './cache-BIlOoPA7.js';
|
|
6
|
+
import { a as tagMetaFor, t as tagFor } from './meta-B9mldqPL.js';
|
|
7
|
+
import { m as markObjectAsDirty, b as getChainTagsForKeys, f as finishLazyChains } from './chain-tags-C9rFtQ_x.js';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
@module @ember/object
|
|
@@ -70,6 +69,107 @@ function dive(prefix, pattern, start, callback) {
|
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
|
|
72
|
+
/**
|
|
73
|
+
@module @ember/object
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
NOTE: This is a low-level method used by other parts of the API. You almost
|
|
79
|
+
never want to call this method directly. Instead you should use
|
|
80
|
+
`mixin()` to define new properties.
|
|
81
|
+
|
|
82
|
+
Defines a property on an object. This method works much like the ES5
|
|
83
|
+
`Object.defineProperty()` method except that it can also accept computed
|
|
84
|
+
properties and other special descriptors.
|
|
85
|
+
|
|
86
|
+
Normally this method takes only three parameters. However if you pass an
|
|
87
|
+
instance of `Descriptor` as the third param then you can pass an
|
|
88
|
+
optional value as the fourth parameter. This is often more efficient than
|
|
89
|
+
creating new descriptor hashes for each property.
|
|
90
|
+
|
|
91
|
+
## Examples
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
import { defineProperty, computed } from '@ember/object';
|
|
95
|
+
|
|
96
|
+
// ES5 compatible mode
|
|
97
|
+
defineProperty(contact, 'firstName', {
|
|
98
|
+
writable: true,
|
|
99
|
+
configurable: false,
|
|
100
|
+
enumerable: true,
|
|
101
|
+
value: 'Charles'
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// define a simple property
|
|
105
|
+
defineProperty(contact, 'lastName', undefined, 'Jolley');
|
|
106
|
+
|
|
107
|
+
// define a computed property
|
|
108
|
+
defineProperty(contact, 'fullName', computed('firstName', 'lastName', function() {
|
|
109
|
+
return this.firstName+' '+this.lastName;
|
|
110
|
+
}));
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
@public
|
|
114
|
+
@method defineProperty
|
|
115
|
+
@static
|
|
116
|
+
@for @ember/object
|
|
117
|
+
@param {Object} obj the object to define this property on. This may be a prototype.
|
|
118
|
+
@param {String} keyName the name of the property
|
|
119
|
+
@param {Descriptor} [desc] an instance of `Descriptor` (typically a
|
|
120
|
+
computed property) or an ES5 descriptor.
|
|
121
|
+
You must provide this or `data` but not both.
|
|
122
|
+
@param {*} [data] something other than a descriptor, that will
|
|
123
|
+
become the explicit value of this property.
|
|
124
|
+
*/
|
|
125
|
+
function defineProperty(obj, keyName, desc, data, _meta) {
|
|
126
|
+
let meta$1 = _meta === undefined ? meta(obj) : _meta;
|
|
127
|
+
let previousDesc = descriptorForProperty(obj, keyName, meta$1);
|
|
128
|
+
let wasDescriptor = previousDesc !== undefined;
|
|
129
|
+
if (wasDescriptor) {
|
|
130
|
+
previousDesc.teardown(obj, keyName, meta$1);
|
|
131
|
+
}
|
|
132
|
+
if (isClassicDecorator(desc)) {
|
|
133
|
+
defineDecorator(obj, keyName, desc, meta$1);
|
|
134
|
+
} else if (desc === null || desc === undefined) {
|
|
135
|
+
defineValue(obj, keyName, data, wasDescriptor, true);
|
|
136
|
+
} else {
|
|
137
|
+
// fallback to ES5
|
|
138
|
+
Object.defineProperty(obj, keyName, desc);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// if key is being watched, override chains that
|
|
142
|
+
// were initialized with the prototype
|
|
143
|
+
if (!meta$1.isPrototypeMeta(obj)) {
|
|
144
|
+
revalidateObservers(obj);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function defineDecorator(obj, keyName, desc, meta) {
|
|
148
|
+
let propertyDesc;
|
|
149
|
+
{
|
|
150
|
+
propertyDesc = desc(obj, keyName, undefined, meta);
|
|
151
|
+
}
|
|
152
|
+
Object.defineProperty(obj, keyName, propertyDesc);
|
|
153
|
+
|
|
154
|
+
// pass the decorator function forward for backwards compat
|
|
155
|
+
return desc;
|
|
156
|
+
}
|
|
157
|
+
function defineValue(obj, keyName, value, wasDescriptor, enumerable = true) {
|
|
158
|
+
if (wasDescriptor === true || enumerable === false) {
|
|
159
|
+
Object.defineProperty(obj, keyName, {
|
|
160
|
+
configurable: true,
|
|
161
|
+
enumerable,
|
|
162
|
+
writable: true,
|
|
163
|
+
value
|
|
164
|
+
});
|
|
165
|
+
} else {
|
|
166
|
+
{
|
|
167
|
+
obj[keyName] = value;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
|
|
73
173
|
/**
|
|
74
174
|
@module ember
|
|
75
175
|
@private
|
|
@@ -836,235 +936,4 @@ function isComputed(obj, key) {
|
|
|
836
936
|
return Boolean(descriptorForProperty(obj, key));
|
|
837
937
|
}
|
|
838
938
|
|
|
839
|
-
|
|
840
|
-
@module @ember/object
|
|
841
|
-
*/
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
/**
|
|
845
|
-
NOTE: This is a low-level method used by other parts of the API. You almost
|
|
846
|
-
never want to call this method directly. Instead you should use
|
|
847
|
-
`mixin()` to define new properties.
|
|
848
|
-
|
|
849
|
-
Defines a property on an object. This method works much like the ES5
|
|
850
|
-
`Object.defineProperty()` method except that it can also accept computed
|
|
851
|
-
properties and other special descriptors.
|
|
852
|
-
|
|
853
|
-
Normally this method takes only three parameters. However if you pass an
|
|
854
|
-
instance of `Descriptor` as the third param then you can pass an
|
|
855
|
-
optional value as the fourth parameter. This is often more efficient than
|
|
856
|
-
creating new descriptor hashes for each property.
|
|
857
|
-
|
|
858
|
-
## Examples
|
|
859
|
-
|
|
860
|
-
```javascript
|
|
861
|
-
import { defineProperty, computed } from '@ember/object';
|
|
862
|
-
|
|
863
|
-
// ES5 compatible mode
|
|
864
|
-
defineProperty(contact, 'firstName', {
|
|
865
|
-
writable: true,
|
|
866
|
-
configurable: false,
|
|
867
|
-
enumerable: true,
|
|
868
|
-
value: 'Charles'
|
|
869
|
-
});
|
|
870
|
-
|
|
871
|
-
// define a simple property
|
|
872
|
-
defineProperty(contact, 'lastName', undefined, 'Jolley');
|
|
873
|
-
|
|
874
|
-
// define a computed property
|
|
875
|
-
defineProperty(contact, 'fullName', computed('firstName', 'lastName', function() {
|
|
876
|
-
return this.firstName+' '+this.lastName;
|
|
877
|
-
}));
|
|
878
|
-
```
|
|
879
|
-
|
|
880
|
-
@public
|
|
881
|
-
@method defineProperty
|
|
882
|
-
@static
|
|
883
|
-
@for @ember/object
|
|
884
|
-
@param {Object} obj the object to define this property on. This may be a prototype.
|
|
885
|
-
@param {String} keyName the name of the property
|
|
886
|
-
@param {Descriptor} [desc] an instance of `Descriptor` (typically a
|
|
887
|
-
computed property) or an ES5 descriptor.
|
|
888
|
-
You must provide this or `data` but not both.
|
|
889
|
-
@param {*} [data] something other than a descriptor, that will
|
|
890
|
-
become the explicit value of this property.
|
|
891
|
-
*/
|
|
892
|
-
function defineProperty(obj, keyName, desc, data, _meta) {
|
|
893
|
-
let meta$1 = _meta === undefined ? meta(obj) : _meta;
|
|
894
|
-
let previousDesc = descriptorForProperty(obj, keyName, meta$1);
|
|
895
|
-
let wasDescriptor = previousDesc !== undefined;
|
|
896
|
-
if (wasDescriptor) {
|
|
897
|
-
previousDesc.teardown(obj, keyName, meta$1);
|
|
898
|
-
}
|
|
899
|
-
if (isClassicDecorator(desc)) {
|
|
900
|
-
defineDecorator(obj, keyName, desc, meta$1);
|
|
901
|
-
} else if (desc === null || desc === undefined) {
|
|
902
|
-
defineValue(obj, keyName, data, wasDescriptor, true);
|
|
903
|
-
} else {
|
|
904
|
-
// fallback to ES5
|
|
905
|
-
Object.defineProperty(obj, keyName, desc);
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
// if key is being watched, override chains that
|
|
909
|
-
// were initialized with the prototype
|
|
910
|
-
if (!meta$1.isPrototypeMeta(obj)) {
|
|
911
|
-
revalidateObservers(obj);
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
|
-
function defineDecorator(obj, keyName, desc, meta) {
|
|
915
|
-
let propertyDesc;
|
|
916
|
-
{
|
|
917
|
-
propertyDesc = desc(obj, keyName, undefined, meta);
|
|
918
|
-
}
|
|
919
|
-
Object.defineProperty(obj, keyName, propertyDesc);
|
|
920
|
-
|
|
921
|
-
// pass the decorator function forward for backwards compat
|
|
922
|
-
return desc;
|
|
923
|
-
}
|
|
924
|
-
function defineValue(obj, keyName, value, wasDescriptor, enumerable = true) {
|
|
925
|
-
if (wasDescriptor === true || enumerable === false) {
|
|
926
|
-
Object.defineProperty(obj, keyName, {
|
|
927
|
-
configurable: true,
|
|
928
|
-
enumerable,
|
|
929
|
-
writable: true,
|
|
930
|
-
value
|
|
931
|
-
});
|
|
932
|
-
} else {
|
|
933
|
-
{
|
|
934
|
-
obj[keyName] = value;
|
|
935
|
-
}
|
|
936
|
-
}
|
|
937
|
-
return value;
|
|
938
|
-
}
|
|
939
|
-
|
|
940
|
-
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
941
|
-
let searchDisabled = false;
|
|
942
|
-
const flags = {
|
|
943
|
-
_set: 0,
|
|
944
|
-
_unprocessedNamespaces: false,
|
|
945
|
-
get unprocessedNamespaces() {
|
|
946
|
-
return this._unprocessedNamespaces;
|
|
947
|
-
},
|
|
948
|
-
set unprocessedNamespaces(v) {
|
|
949
|
-
this._set++;
|
|
950
|
-
this._unprocessedNamespaces = v;
|
|
951
|
-
}
|
|
952
|
-
};
|
|
953
|
-
let unprocessedMixins = false;
|
|
954
|
-
const NAMESPACES = [];
|
|
955
|
-
const NAMESPACES_BY_ID = Object.create(null);
|
|
956
|
-
function addNamespace(namespace) {
|
|
957
|
-
flags.unprocessedNamespaces = true;
|
|
958
|
-
NAMESPACES.push(namespace);
|
|
959
|
-
}
|
|
960
|
-
function removeNamespace(namespace) {
|
|
961
|
-
let name = getName(namespace);
|
|
962
|
-
delete NAMESPACES_BY_ID[name];
|
|
963
|
-
NAMESPACES.splice(NAMESPACES.indexOf(namespace), 1);
|
|
964
|
-
if (name in context.lookup && namespace === context.lookup[name]) {
|
|
965
|
-
context.lookup[name] = undefined;
|
|
966
|
-
}
|
|
967
|
-
}
|
|
968
|
-
function findNamespaces() {
|
|
969
|
-
if (!flags.unprocessedNamespaces) {
|
|
970
|
-
return;
|
|
971
|
-
}
|
|
972
|
-
let lookup = context.lookup;
|
|
973
|
-
let keys = Object.keys(lookup);
|
|
974
|
-
for (let key of keys) {
|
|
975
|
-
// Only process entities that start with uppercase A-Z
|
|
976
|
-
if (!isUppercase(key.charCodeAt(0))) {
|
|
977
|
-
continue;
|
|
978
|
-
}
|
|
979
|
-
let obj = tryIsNamespace(lookup, key);
|
|
980
|
-
if (obj) {
|
|
981
|
-
setName(obj, key);
|
|
982
|
-
}
|
|
983
|
-
}
|
|
984
|
-
}
|
|
985
|
-
function findNamespace(name) {
|
|
986
|
-
if (!searchDisabled) {
|
|
987
|
-
processAllNamespaces();
|
|
988
|
-
}
|
|
989
|
-
return NAMESPACES_BY_ID[name];
|
|
990
|
-
}
|
|
991
|
-
function processNamespace(namespace) {
|
|
992
|
-
_processNamespace([namespace.toString()], namespace, new Set());
|
|
993
|
-
}
|
|
994
|
-
function processAllNamespaces() {
|
|
995
|
-
let unprocessedNamespaces = flags.unprocessedNamespaces;
|
|
996
|
-
if (unprocessedNamespaces) {
|
|
997
|
-
findNamespaces();
|
|
998
|
-
flags.unprocessedNamespaces = false;
|
|
999
|
-
}
|
|
1000
|
-
if (unprocessedNamespaces || unprocessedMixins) {
|
|
1001
|
-
let namespaces = NAMESPACES;
|
|
1002
|
-
for (let namespace of namespaces) {
|
|
1003
|
-
processNamespace(namespace);
|
|
1004
|
-
}
|
|
1005
|
-
unprocessedMixins = false;
|
|
1006
|
-
}
|
|
1007
|
-
}
|
|
1008
|
-
function isSearchDisabled() {
|
|
1009
|
-
return searchDisabled;
|
|
1010
|
-
}
|
|
1011
|
-
function setSearchDisabled(flag) {
|
|
1012
|
-
searchDisabled = Boolean(flag);
|
|
1013
|
-
}
|
|
1014
|
-
function setUnprocessedMixins() {
|
|
1015
|
-
unprocessedMixins = true;
|
|
1016
|
-
}
|
|
1017
|
-
function _processNamespace(paths, root, seen) {
|
|
1018
|
-
let idx = paths.length;
|
|
1019
|
-
let id = paths.join('.');
|
|
1020
|
-
NAMESPACES_BY_ID[id] = root;
|
|
1021
|
-
setName(root, id);
|
|
1022
|
-
|
|
1023
|
-
// Loop over all of the keys in the namespace, looking for classes
|
|
1024
|
-
for (let key in root) {
|
|
1025
|
-
if (!hasOwnProperty.call(root, key)) {
|
|
1026
|
-
continue;
|
|
1027
|
-
}
|
|
1028
|
-
let obj = root[key];
|
|
1029
|
-
|
|
1030
|
-
// If we are processing the `Ember` namespace, for example, the
|
|
1031
|
-
// `paths` will start with `["Ember"]`. Every iteration through
|
|
1032
|
-
// the loop will update the **second** element of this list with
|
|
1033
|
-
// the key, so processing `Ember.View` will make the Array
|
|
1034
|
-
// `['Ember', 'View']`.
|
|
1035
|
-
paths[idx] = key;
|
|
1036
|
-
|
|
1037
|
-
// If we have found an unprocessed class
|
|
1038
|
-
if (obj && getName(obj) === void 0) {
|
|
1039
|
-
// Replace the class' `toString` with the dot-separated path
|
|
1040
|
-
setName(obj, paths.join('.'));
|
|
1041
|
-
// Support nested namespaces
|
|
1042
|
-
} else if (obj && isNamespace(obj)) {
|
|
1043
|
-
// Skip aliased namespaces
|
|
1044
|
-
if (seen.has(obj)) {
|
|
1045
|
-
continue;
|
|
1046
|
-
}
|
|
1047
|
-
seen.add(obj);
|
|
1048
|
-
// Process the child namespace
|
|
1049
|
-
_processNamespace(paths, obj, seen);
|
|
1050
|
-
}
|
|
1051
|
-
}
|
|
1052
|
-
paths.length = idx; // cut out last item
|
|
1053
|
-
}
|
|
1054
|
-
function isNamespace(obj) {
|
|
1055
|
-
return obj != null && typeof obj === 'object' && obj.isNamespace;
|
|
1056
|
-
}
|
|
1057
|
-
function isUppercase(code) {
|
|
1058
|
-
return code >= 65 && code <= 90 // A
|
|
1059
|
-
; // Z
|
|
1060
|
-
}
|
|
1061
|
-
function tryIsNamespace(lookup, prop) {
|
|
1062
|
-
try {
|
|
1063
|
-
let obj = lookup[prop];
|
|
1064
|
-
return (obj !== null && typeof obj === 'object' || typeof obj === 'function') && obj.isNamespace && obj;
|
|
1065
|
-
} catch (_e) {
|
|
1066
|
-
// continue
|
|
1067
|
-
}
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
export { ComputedProperty as C, NAMESPACES as N, PROPERTY_DID_CHANGE as P, endPropertyChanges as a, beginPropertyChanges as b, computed as c, defineProperty as d, expandProperties as e, defineValue as f, defineDecorator as g, NAMESPACES_BY_ID as h, findNamespace as i, addNamespace as j, findNamespaces as k, processNamespace as l, autoComputed as m, notifyPropertyChange as n, changeProperties as o, processAllNamespaces as p, isComputed as q, removeNamespace as r, setUnprocessedMixins as s, isSearchDisabled as t, setSearchDisabled as u };
|
|
939
|
+
export { ComputedProperty as C, PROPERTY_DID_CHANGE as P, endPropertyChanges as a, beginPropertyChanges as b, computed as c, defineProperty as d, expandProperties as e, changeProperties as f, defineValue as g, defineDecorator as h, autoComputed as i, isComputed as j, notifyPropertyChange as n };
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { setOwner } from '../@ember/-internals/owner/index.js';
|
|
2
|
+
import { m as makeDictionary } from './dictionary-gc5gpyOG.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
A container used to instantiate and cache objects.
|
|
6
|
+
|
|
7
|
+
Every `Container` must be associated with a `Registry`, which is referenced
|
|
8
|
+
to determine the factory and options that should be used to instantiate
|
|
9
|
+
objects.
|
|
10
|
+
|
|
11
|
+
The public API for `Container` is still in flux and should not be considered
|
|
12
|
+
stable.
|
|
13
|
+
|
|
14
|
+
@private
|
|
15
|
+
@class Container
|
|
16
|
+
*/
|
|
17
|
+
class Container {
|
|
18
|
+
static _leakTracking;
|
|
19
|
+
owner;
|
|
20
|
+
registry;
|
|
21
|
+
cache;
|
|
22
|
+
factoryManagerCache;
|
|
23
|
+
validationCache;
|
|
24
|
+
isDestroyed;
|
|
25
|
+
isDestroying;
|
|
26
|
+
constructor(registry, options = {}) {
|
|
27
|
+
this.registry = registry;
|
|
28
|
+
this.owner = options.owner || null;
|
|
29
|
+
this.cache = makeDictionary(options.cache || null);
|
|
30
|
+
this.factoryManagerCache = makeDictionary(options.factoryManagerCache || null);
|
|
31
|
+
this.isDestroyed = false;
|
|
32
|
+
this.isDestroying = false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
@private
|
|
37
|
+
@property registry
|
|
38
|
+
@type Registry
|
|
39
|
+
@since 1.11.0
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
@private
|
|
44
|
+
@property cache
|
|
45
|
+
@type InheritingDict
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
@private
|
|
50
|
+
@property validationCache
|
|
51
|
+
@type InheritingDict
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
Given a fullName return a corresponding instance.
|
|
56
|
+
The default behavior is for lookup to return a singleton instance.
|
|
57
|
+
The singleton is scoped to the container, allowing multiple containers
|
|
58
|
+
to all have their own locally scoped singletons.
|
|
59
|
+
```javascript
|
|
60
|
+
let registry = new Registry();
|
|
61
|
+
let container = registry.container();
|
|
62
|
+
registry.register('api:twitter', Twitter);
|
|
63
|
+
let twitter = container.lookup('api:twitter');
|
|
64
|
+
twitter instanceof Twitter; // => true
|
|
65
|
+
// by default the container will return singletons
|
|
66
|
+
let twitter2 = container.lookup('api:twitter');
|
|
67
|
+
twitter2 instanceof Twitter; // => true
|
|
68
|
+
twitter === twitter2; //=> true
|
|
69
|
+
```
|
|
70
|
+
If singletons are not wanted, an optional flag can be provided at lookup.
|
|
71
|
+
```javascript
|
|
72
|
+
let registry = new Registry();
|
|
73
|
+
let container = registry.container();
|
|
74
|
+
registry.register('api:twitter', Twitter);
|
|
75
|
+
let twitter = container.lookup('api:twitter', { singleton: false });
|
|
76
|
+
let twitter2 = container.lookup('api:twitter', { singleton: false });
|
|
77
|
+
twitter === twitter2; //=> false
|
|
78
|
+
```
|
|
79
|
+
@private
|
|
80
|
+
@method lookup
|
|
81
|
+
@param {String} fullName
|
|
82
|
+
@param {RegisterOptions} [options]
|
|
83
|
+
@return {any}
|
|
84
|
+
*/
|
|
85
|
+
lookup(fullName, options) {
|
|
86
|
+
if (this.isDestroyed) {
|
|
87
|
+
throw new Error(`Cannot call \`.lookup('${fullName}')\` after the owner has been destroyed`);
|
|
88
|
+
}
|
|
89
|
+
return lookup(this, this.registry.normalize(fullName), options);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
A depth first traversal, destroying the container, its descendant containers and all
|
|
94
|
+
their managed objects.
|
|
95
|
+
@private
|
|
96
|
+
@method destroy
|
|
97
|
+
*/
|
|
98
|
+
destroy() {
|
|
99
|
+
this.isDestroying = true;
|
|
100
|
+
destroyDestroyables(this);
|
|
101
|
+
}
|
|
102
|
+
finalizeDestroy() {
|
|
103
|
+
resetCache(this);
|
|
104
|
+
this.isDestroyed = true;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
Clear either the entire cache or just the cache for a particular key.
|
|
109
|
+
@private
|
|
110
|
+
@method reset
|
|
111
|
+
@param {String} fullName optional key to reset; if missing, resets everything
|
|
112
|
+
*/
|
|
113
|
+
reset(fullName) {
|
|
114
|
+
if (this.isDestroyed) return;
|
|
115
|
+
if (fullName === undefined) {
|
|
116
|
+
destroyDestroyables(this);
|
|
117
|
+
resetCache(this);
|
|
118
|
+
} else {
|
|
119
|
+
resetMember(this, this.registry.normalize(fullName));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
Returns an object that can be used to provide an owner to a
|
|
125
|
+
manually created instance.
|
|
126
|
+
@private
|
|
127
|
+
@method ownerInjection
|
|
128
|
+
@returns { Object }
|
|
129
|
+
*/
|
|
130
|
+
ownerInjection() {
|
|
131
|
+
let injection = {};
|
|
132
|
+
setOwner(injection, this.owner);
|
|
133
|
+
return injection;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
Given a fullName, return the corresponding factory. The consumer of the factory
|
|
138
|
+
is responsible for the destruction of any factory instances, as there is no
|
|
139
|
+
way for the container to ensure instances are destroyed when it itself is
|
|
140
|
+
destroyed.
|
|
141
|
+
@public
|
|
142
|
+
@method factoryFor
|
|
143
|
+
@param {String} fullName
|
|
144
|
+
@return {any}
|
|
145
|
+
*/
|
|
146
|
+
factoryFor(fullName) {
|
|
147
|
+
if (this.isDestroyed) {
|
|
148
|
+
throw new Error(`Cannot call \`.factoryFor('${fullName}')\` after the owner has been destroyed`);
|
|
149
|
+
}
|
|
150
|
+
let normalizedName = this.registry.normalize(fullName);
|
|
151
|
+
return factoryFor(this, normalizedName, fullName);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function isSingleton(container, fullName) {
|
|
155
|
+
return container.registry.getOption(fullName, 'singleton') !== false;
|
|
156
|
+
}
|
|
157
|
+
function isInstantiatable(container, fullName) {
|
|
158
|
+
return container.registry.getOption(fullName, 'instantiate') !== false;
|
|
159
|
+
}
|
|
160
|
+
function lookup(container, fullName, options = {}) {
|
|
161
|
+
let normalizedName = fullName;
|
|
162
|
+
if (options.singleton === true || options.singleton === undefined && isSingleton(container, fullName)) {
|
|
163
|
+
let cached = container.cache[normalizedName];
|
|
164
|
+
if (cached !== undefined) {
|
|
165
|
+
return cached;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return instantiateFactory(container, normalizedName, fullName, options);
|
|
169
|
+
}
|
|
170
|
+
function factoryFor(container, normalizedName, fullName) {
|
|
171
|
+
let cached = container.factoryManagerCache[normalizedName];
|
|
172
|
+
if (cached !== undefined) {
|
|
173
|
+
return cached;
|
|
174
|
+
}
|
|
175
|
+
let factory = container.registry.resolve(normalizedName);
|
|
176
|
+
if (factory === undefined) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
let manager = new InternalFactoryManager(container, factory, fullName, normalizedName);
|
|
180
|
+
container.factoryManagerCache[normalizedName] = manager;
|
|
181
|
+
return manager;
|
|
182
|
+
}
|
|
183
|
+
function isSingletonClass(container, fullName, {
|
|
184
|
+
instantiate,
|
|
185
|
+
singleton
|
|
186
|
+
}) {
|
|
187
|
+
return singleton !== false && !instantiate && isSingleton(container, fullName) && !isInstantiatable(container, fullName);
|
|
188
|
+
}
|
|
189
|
+
function isSingletonInstance(container, fullName, {
|
|
190
|
+
instantiate,
|
|
191
|
+
singleton
|
|
192
|
+
}) {
|
|
193
|
+
return singleton !== false && instantiate !== false && (singleton === true || isSingleton(container, fullName)) && isInstantiatable(container, fullName);
|
|
194
|
+
}
|
|
195
|
+
function isFactoryClass(container, fullname, {
|
|
196
|
+
instantiate,
|
|
197
|
+
singleton
|
|
198
|
+
}) {
|
|
199
|
+
return instantiate === false && (singleton === false || !isSingleton(container, fullname)) && !isInstantiatable(container, fullname);
|
|
200
|
+
}
|
|
201
|
+
function isFactoryInstance(container, fullName, {
|
|
202
|
+
instantiate,
|
|
203
|
+
singleton
|
|
204
|
+
}) {
|
|
205
|
+
return instantiate !== false && (singleton === false || !isSingleton(container, fullName)) && isInstantiatable(container, fullName);
|
|
206
|
+
}
|
|
207
|
+
function instantiateFactory(container, normalizedName, fullName, options) {
|
|
208
|
+
let factoryManager = factoryFor(container, normalizedName, fullName);
|
|
209
|
+
if (factoryManager === undefined) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// SomeClass { singleton: true, instantiate: true } | { singleton: true } | { instantiate: true } | {}
|
|
214
|
+
// By default majority of objects fall into this case
|
|
215
|
+
if (isSingletonInstance(container, fullName, options)) {
|
|
216
|
+
let instance = container.cache[normalizedName] = factoryManager.create();
|
|
217
|
+
|
|
218
|
+
// if this lookup happened _during_ destruction (emits a deprecation, but
|
|
219
|
+
// is still possible) ensure that it gets destroyed
|
|
220
|
+
if (container.isDestroying) {
|
|
221
|
+
if (typeof instance.destroy === 'function') {
|
|
222
|
+
instance.destroy();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return instance;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// SomeClass { singleton: false, instantiate: true }
|
|
229
|
+
if (isFactoryInstance(container, fullName, options)) {
|
|
230
|
+
return factoryManager.create();
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// SomeClass { singleton: true, instantiate: false } | { instantiate: false } | { singleton: false, instantiation: false }
|
|
234
|
+
if (isSingletonClass(container, fullName, options) || isFactoryClass(container, fullName, options)) {
|
|
235
|
+
return factoryManager.class;
|
|
236
|
+
}
|
|
237
|
+
throw new Error('Could not create factory');
|
|
238
|
+
}
|
|
239
|
+
function destroyDestroyables(container) {
|
|
240
|
+
let cache = container.cache;
|
|
241
|
+
let keys = Object.keys(cache);
|
|
242
|
+
for (let key of keys) {
|
|
243
|
+
let value = cache[key];
|
|
244
|
+
if (value.destroy) {
|
|
245
|
+
value.destroy();
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function resetCache(container) {
|
|
250
|
+
container.cache = makeDictionary(null);
|
|
251
|
+
container.factoryManagerCache = makeDictionary(null);
|
|
252
|
+
}
|
|
253
|
+
function resetMember(container, fullName) {
|
|
254
|
+
let member = container.cache[fullName];
|
|
255
|
+
delete container.factoryManagerCache[fullName];
|
|
256
|
+
if (member) {
|
|
257
|
+
delete container.cache[fullName];
|
|
258
|
+
if (member.destroy) {
|
|
259
|
+
member.destroy();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
const INIT_FACTORY = Symbol('INIT_FACTORY');
|
|
264
|
+
function getFactoryFor(obj) {
|
|
265
|
+
// SAFETY: since we know `obj` is an `object`, we also know we can safely ask
|
|
266
|
+
// whether a key is set on it.
|
|
267
|
+
return obj[INIT_FACTORY];
|
|
268
|
+
}
|
|
269
|
+
function setFactoryFor(obj, factory) {
|
|
270
|
+
// SAFETY: since we know `obj` is an `object`, we also know we can safely set
|
|
271
|
+
// a key it safely at this location. (The only way this could be blocked is if
|
|
272
|
+
// someone has gone out of their way to use `Object.defineProperty()` with our
|
|
273
|
+
// internal-only symbol and made it `writable: false`.)
|
|
274
|
+
obj[INIT_FACTORY] = factory;
|
|
275
|
+
}
|
|
276
|
+
class InternalFactoryManager {
|
|
277
|
+
container;
|
|
278
|
+
owner;
|
|
279
|
+
class;
|
|
280
|
+
fullName;
|
|
281
|
+
normalizedName;
|
|
282
|
+
madeToString;
|
|
283
|
+
injections;
|
|
284
|
+
constructor(container, factory, fullName, normalizedName) {
|
|
285
|
+
this.container = container;
|
|
286
|
+
this.owner = container.owner;
|
|
287
|
+
this.class = factory;
|
|
288
|
+
this.fullName = fullName;
|
|
289
|
+
this.normalizedName = normalizedName;
|
|
290
|
+
this.madeToString = undefined;
|
|
291
|
+
this.injections = undefined;
|
|
292
|
+
}
|
|
293
|
+
toString() {
|
|
294
|
+
if (this.madeToString === undefined) {
|
|
295
|
+
this.madeToString = this.container.registry.makeToString(this.class, this.fullName);
|
|
296
|
+
}
|
|
297
|
+
return this.madeToString;
|
|
298
|
+
}
|
|
299
|
+
create(options) {
|
|
300
|
+
let {
|
|
301
|
+
container
|
|
302
|
+
} = this;
|
|
303
|
+
if (container.isDestroyed) {
|
|
304
|
+
throw new Error(`Cannot create new instances after the owner has been destroyed (you attempted to create ${this.fullName})`);
|
|
305
|
+
}
|
|
306
|
+
let props = options ? {
|
|
307
|
+
...options
|
|
308
|
+
} : {};
|
|
309
|
+
setOwner(props, container.owner);
|
|
310
|
+
setFactoryFor(props, this);
|
|
311
|
+
return this.class.create(props);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export { Container as C, INIT_FACTORY as I, getFactoryFor as g, setFactoryFor as s };
|