UNPKG

ember-source

Version:

A JavaScript framework for creating ambitious web applications

29 lines (24 loc) 1.42 kB
export { g as guidFor } from '../../shared-chunks/super-Cm_a_cLQ.js'; import '../-internals/environment/index.js'; import '../../@glimmer/validator/index.js'; import '../../shared-chunks/reference-BNqcwZWH.js'; import '../../shared-chunks/capabilities-DGmQ_mz4.js'; import '../../shared-chunks/observers-R1ZklwWy.js'; export { g as cacheFor } from '../../shared-chunks/computed_cache-DmYKevAP.js'; import EmberObject from './index.js'; // Here we have runtime shenanigans to add debug-only errors to the class in dev // builds. Those runtime shenanigans produce the need for type-level shenanigans // to match: if we just assign without an explicit type annotation on the `let` // binding below for `FrameworkObject`, TS gets stuck because this creates // `FrameworkObject` with a class expression (rather than the usual class // declaration form). That in turn means TS needs to be able to fully name the // type produced by the class expression, which includes the `OWNER` symbol from // `@glimmer/owner`. // // By explicitly giving the declaration a type when assigning it the class // expression, instead of relying on inference, TS no longer needs to name the // `OWNER` property key from the super class, eliminating the private name // shenanigans. // eslint-disable-next-line @typescript-eslint/no-empty-object-type let FrameworkObject = class FrameworkObject extends EmberObject {}; export { FrameworkObject };