ember-source
Version:
A JavaScript framework for creating ambitious web applications
215 lines (201 loc) • 11.3 kB
JavaScript
'use strict';
const path = require('path');
const Overrides = require('./overrides');
const SupportedBrowsers = require('./browsers');
const isProduction = process.env.EMBER_ENV === 'production';
const { addonV1Shim } = require('/addon-shim');
const shim = addonV1Shim(path.join(__dirname, '..'), {
autoImportCompat: {
customizeMeta(meta) {
/* This whole hook is an ember-auto-import feature that only effects classic builds, not embroider builds. */
// this is our forward-compatible mode where all of ember-source is
// handled by ember-auto-import, like a normal v2 addon.
//
// In this case, we need to inject an implicit-modules config to force
// all the traditionally-included modules to be included whether or not
// we see an import for them, because ember-auto-import does not have
// global visiblity of all imports in all v1 addons.
//
// This means ember-source is not tree-shakable on classic builds, but
// that's the normal status quo for classic builds. It's all
// tree-shakable on the current default build (@embroider/vite).
return {
...meta,
'implicit-modules': [
'./dist/dev/packages/@ember/-internals/browser-environment/index.js',
'./dist/dev/packages/@ember/-internals/container/index.js',
'./dist/dev/packages/@ember/-internals/deprecations/index.js',
'./dist/dev/packages/@ember/-internals/environment/index.js',
'./dist/dev/packages/@ember/-internals/error-handling/index.js',
'./dist/dev/packages/@ember/-internals/glimmer/index.js',
'./dist/dev/packages/@ember/-internals/meta/index.js',
'./dist/dev/packages/@ember/-internals/meta/lib/meta.js',
'./dist/dev/packages/@ember/-internals/metal/index.js',
'./dist/dev/packages/@ember/-internals/owner/index.js',
'./dist/dev/packages/@ember/-internals/routing/index.js',
'./dist/dev/packages/@ember/-internals/runtime/index.js',
'./dist/dev/packages/@ember/-internals/runtime/lib/ext/rsvp.js',
'./dist/dev/packages/@ember/-internals/runtime/lib/mixins/-proxy.js',
'./dist/dev/packages/@ember/-internals/runtime/lib/mixins/comparable.js',
'./dist/dev/packages/@ember/-internals/string/index.js',
'./dist/dev/packages/@ember/-internals/utility-types/index.js',
'./dist/dev/packages/@ember/-internals/utils/index.js',
'./dist/dev/packages/@ember/-internals/views/index.js',
'./dist/dev/packages/@ember/-internals/views/lib/compat/attrs.js',
'./dist/dev/packages/@ember/-internals/views/lib/component_lookup.js',
'./dist/dev/packages/@ember/-internals/views/lib/mixins/action_support.js',
'./dist/dev/packages/@ember/-internals/views/lib/system/utils.js',
'./dist/dev/packages/@ember/-internals/views/lib/views/core_view.js',
'./dist/dev/packages/@ember/-internals/views/lib/views/states.js',
'./dist/dev/packages/@ember/application/index.js',
'./dist/dev/packages/@ember/application/instance.js',
'./dist/dev/packages/@ember/application/namespace.js',
'./dist/dev/packages/@ember/array/-internals.js',
'./dist/dev/packages/@ember/array/index.js',
'./dist/dev/packages/@ember/array/lib/make-array.js',
'./dist/dev/packages/@ember/array/mutable.js',
'./dist/dev/packages/@ember/array/proxy.js',
'./dist/dev/packages/@ember/canary-features/index.js',
'./dist/dev/packages/@ember/component/helper.js',
'./dist/dev/packages/@ember/component/index.js',
'./dist/dev/packages/@ember/component/template-only.js',
'./dist/dev/packages/@ember/controller/index.js',
'./dist/dev/packages/@ember/debug/index.js',
'./dist/dev/packages/@ember/debug/lib/capture-render-tree.js',
'./dist/dev/packages/@ember/debug/lib/deprecate.js',
'./dist/dev/packages/@ember/debug/lib/handlers.js',
'./dist/dev/packages/@ember/debug/lib/inspect.js',
'./dist/dev/packages/@ember/debug/lib/testing.js',
'./dist/dev/packages/@ember/debug/lib/warn.js',
'./dist/dev/packages/@ember/debug/container-debug-adapter.js',
'./dist/dev/packages/@ember/debug/data-adapter.js',
'./dist/dev/packages/@ember/deprecated-features/index.js',
'./dist/dev/packages/@ember/destroyable/index.js',
'./dist/dev/packages/@ember/engine/index.js',
'./dist/dev/packages/@ember/engine/instance.js',
'./dist/dev/packages/@ember/engine/lib/engine-parent.js',
'./dist/dev/packages/@ember/enumerable/index.js',
'./dist/dev/packages/@ember/enumerable/mutable.js',
'./dist/dev/packages/@ember/helper/index.js',
'./dist/dev/packages/@ember/instrumentation/index.js',
'./dist/dev/packages/@ember/modifier/index.js',
'./dist/dev/packages/@ember/object/-internals.js',
'./dist/dev/packages/@ember/object/compat.js',
'./dist/dev/packages/@ember/object/computed.js',
'./dist/dev/packages/@ember/object/core.js',
'./dist/dev/packages/@ember/object/evented.js',
'./dist/dev/packages/@ember/object/events.js',
'./dist/dev/packages/@ember/object/index.js',
'./dist/dev/packages/@ember/object/internals.js',
'./dist/dev/packages/@ember/object/lib/computed/computed_macros.js',
'./dist/dev/packages/@ember/object/lib/computed/reduce_computed_macros.js',
'./dist/dev/packages/@ember/object/mixin.js',
'./dist/dev/packages/@ember/object/observable.js',
'./dist/dev/packages/@ember/object/observers.js',
'./dist/dev/packages/@ember/object/promise-proxy-mixin.js',
'./dist/dev/packages/@ember/object/proxy.js',
'./dist/dev/packages/@ember/owner/index.js',
'./dist/dev/packages/@ember/renderer/index.js',
'./dist/dev/packages/@ember/routing/-internals.js',
'./dist/dev/packages/@ember/routing/hash-location.js',
'./dist/dev/packages/@ember/routing/history-location.js',
'./dist/dev/packages/@ember/routing/index.js',
'./dist/dev/packages/@ember/routing/lib/cache.js',
'./dist/dev/packages/@ember/routing/lib/controller_for.js',
'./dist/dev/packages/@ember/routing/lib/dsl.js',
'./dist/dev/packages/@ember/routing/lib/generate_controller.js',
'./dist/dev/packages/@ember/routing/lib/location-utils.js',
'./dist/dev/packages/@ember/routing/lib/query_params.js',
'./dist/dev/packages/@ember/routing/lib/router_state.js',
'./dist/dev/packages/@ember/routing/lib/routing-service.js',
'./dist/dev/packages/@ember/routing/lib/utils.js',
'./dist/dev/packages/@ember/routing/none-location.js',
'./dist/dev/packages/@ember/routing/route.js',
'./dist/dev/packages/@ember/routing/router-service.js',
'./dist/dev/packages/@ember/routing/router.js',
'./dist/dev/packages/@ember/runloop/index.js',
'./dist/dev/packages/@ember/service/index.js',
'./dist/dev/packages/@ember/template-compilation/index.js',
'./dist/dev/packages/@ember/template-factory/index.js',
'./dist/dev/packages/@ember/template/index.js',
'./dist/dev/packages/@ember/test/adapter.js',
'./dist/dev/packages/@ember/test/index.js',
'./dist/dev/packages/@ember/utils/index.js',
'./dist/dev/packages/@ember/utils/lib/compare.js',
'./dist/dev/packages/@ember/utils/lib/is-equal.js',
'./dist/dev/packages/@ember/utils/lib/is_blank.js',
'./dist/dev/packages/@ember/utils/lib/is_empty.js',
'./dist/dev/packages/@ember/utils/lib/is_none.js',
'./dist/dev/packages/@ember/utils/lib/is_present.js',
'./dist/dev/packages/@ember/utils/lib/type-of.js',
'./dist/dev/packages/@ember/version/index.js',
'./dist/dev/packages/@glimmer/destroyable/index.js',
'./dist/dev/packages/@glimmer/encoder/index.js',
'./dist/dev/packages/@glimmer/env/index.js',
'./dist/dev/packages/@glimmer/global-context/index.js',
'./dist/dev/packages/@glimmer/manager/index.js',
'./dist/dev/packages/@glimmer/node/index.js',
'./dist/dev/packages/@glimmer/opcode-compiler/index.js',
'./dist/dev/packages/@glimmer/owner/index.js',
'./dist/dev/packages/@glimmer/program/index.js',
'./dist/dev/packages/@glimmer/reference/index.js',
'./dist/dev/packages/@glimmer/runtime/index.js',
'./dist/dev/packages/@glimmer/tracking/index.js',
'./dist/dev/packages/@glimmer/tracking/primitives/cache/index.js',
'./dist/dev/packages/@glimmer/util/index.js',
'./dist/dev/packages/@glimmer/validator/index.js',
'./dist/dev/packages/@glimmer/vm/index.js',
'./dist/dev/packages/@glimmer/wire-format/index.js',
'./dist/dev/packages/@simple-dom/document/index.js',
'./dist/dev/packages/backburner.js/index.js',
'./dist/dev/packages/dag-map/index.js',
'./dist/dev/packages/ember/version.js',
'./dist/dev/packages/route-recognizer/index.js',
'./dist/dev/packages/router_js/index.js',
'./dist/dev/packages/rsvp/index.js',
].map((x) => (isProduction ? x.replace('/dist/dev/', '/dist/prod/') : x)),
'implicit-test-modules': [
'./dist/dev/packages/ember-testing/index.js',
'./dist/dev/packages/ember-testing/lib/adapters/adapter.js',
'./dist/dev/packages/ember-testing/lib/public-api.js',
'./dist/dev/packages/ember-testing/lib/test.js',
'./dist/dev/packages/ember-testing/lib/test/adapter.js',
'./dist/dev/packages/ember-testing/lib/test/pending_requests.js',
'./dist/dev/packages/ember-testing/lib/test/waiters.js',
].map((x) => (isProduction ? x.replace('/dist/dev/', '/dist/prod/') : x)),
};
},
},
});
module.exports = {
...shim,
init() {
if (shim.init) {
shim.init.apply(this, arguments);
} else {
this._super.init && this._super.init.apply(this, arguments);
}
// resets `this.root` to the correct location by default ember-cli
// considers `__dirname` here to be the root, but since our main entry
// point is within a subfolder we need to correct that
this.root = path.join(__dirname, '..');
},
_overrideTree: undefined,
// Expose supported list of browsers for reference by other packages
supportedBrowsers: SupportedBrowsers,
included() {
if (shim.included) {
// this is what actually uses our autoImportCompat closure
shim.included.apply(this, arguments);
} else {
this._super.included.apply(this, arguments);
}
let overrides = Overrides.for(this.project);
if (overrides.hasOverrides) {
this._overrideTree = overrides.toTree();
}
if (overrides.hasBuildTimeWarning) {
this.ui.writeWarnLine('[DEPRECATION] ' + overrides.buildTimeWarning);
}
},
};