Skip to content

Commit be91d1c

Browse files
authored
Merge pull request #20593 from emberjs/isolated-modules
Enable tsconfig isolatedModules
2 parents 82a1b20 + 8e38abd commit be91d1c

35 files changed

+80
-51
lines changed

package.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,9 @@
111111
"@embroider/shared-internals": "^2.5.0",
112112
"@rollup/plugin-babel": "^6.0.3",
113113
"@simple-dom/document": "^1.4.0",
114-
"@swc/core": "^1.3.100",
115114
"@swc-node/register": "^1.6.8",
115+
"@swc/core": "^1.3.100",
116116
"@tsconfig/ember": "^2.0.0",
117-
"@types/node": "^18.11.11",
118117
"@types/qunit": "^2.19.4",
119118
"@types/rsvp": "^4.0.4",
120119
"@typescript-eslint/eslint-plugin": "^5.59.8",

packages/@ember/-internals/container/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ The public API, specified on the application namespace should be considered the
55
@private
66
*/
77

8-
export { default as Registry, ResolverClass, privatize } from './lib/registry';
8+
export { default as Registry, type ResolverClass, privatize } from './lib/registry';
99
export { default as Container, getFactoryFor, setFactoryFor, INIT_FACTORY } from './lib/container';

packages/@ember/-internals/container/lib/container.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ interface LeakTracking {
1818
reset(): void;
1919
}
2020

21+
// node exposes this. I'm not pulling in the whole @types/node because it
22+
// doesn't work with isolatedModules
23+
declare const gc: undefined | (() => void);
24+
2125
let leakTracking: LeakTracking;
2226
let containers: WeakSet<Container>;
2327
if (DEBUG) {
@@ -32,7 +36,6 @@ if (DEBUG) {
3236
containers = new WeakSet<Container>();
3337
return {
3438
hasContainers() {
35-
// @ts-expect-error We just checked if it is definied
3639
gc();
3740
return GetWeakSetValues(containers).length > 0;
3841
},

packages/@ember/-internals/environment/lib/global.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* globals global, window, self */
1+
/* globals window, self */
22
declare const mainContext: object | undefined;
33

44
// from lodash to catch fake globals
@@ -11,6 +11,8 @@ function checkElementIdShadowing(value: any | null | undefined) {
1111
return value && value.nodeType === undefined ? value : undefined;
1212
}
1313

14+
declare const global: unknown;
15+
1416
// export real global
1517
export default checkGlobal(checkElementIdShadowing(typeof global === 'object' && global)) ||
1618
checkGlobal(typeof self === 'object' && self) ||

packages/@ember/-internals/glimmer/index.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ export {
464464
hasTemplate,
465465
getTemplates,
466466
setTemplates,
467-
TemplatesRegistry,
467+
type TemplatesRegistry,
468468
} from './lib/template_registry';
469469
export { setupEngineRegistry, setupApplicationRegistry } from './lib/setup-registry';
470470
export { DOMChanges, NodeDOMTreeConstruction, DOMTreeConstruction } from './lib/dom';
@@ -473,8 +473,8 @@ export { DOMChanges, NodeDOMTreeConstruction, DOMTreeConstruction } from './lib/
473473
// TODO just test these through public API
474474
// a lot of these are testing how a problem was solved
475475
// rather than the problem was solved
476-
export { default as OutletView, BootEnvironment } from './lib/views/outlet';
477-
export { OutletState, RenderState } from './lib/utils/outlet';
476+
export { default as OutletView, type BootEnvironment } from './lib/views/outlet';
477+
export type { OutletState, RenderState } from './lib/utils/outlet';
478478
export {
479479
componentCapabilities,
480480
modifierCapabilities,

packages/@ember/-internals/glimmer/lib/component.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { isUpdatableRef, updateRef } from '@glimmer/reference';
2020
import { normalizeProperty } from '@glimmer/runtime';
2121
import type { DirtyableTag } from '@glimmer/validator';
2222
import { createTag, dirtyTag } from '@glimmer/validator';
23-
import { Namespace, type SimpleElement } from '@simple-dom/interface';
23+
import type { SimpleElement } from '@simple-dom/interface';
2424
import {
2525
ARGS,
2626
BOUNDS,
@@ -1000,7 +1000,7 @@ class Component<S = unknown>
10001000
);
10011001

10021002
let element = _element;
1003-
let isSVG = element.namespaceURI === Namespace.SVG;
1003+
let isSVG = element.namespaceURI === 'http://www.w3.org/2000/svg';
10041004
let { type, normalized } = normalizeProperty(element as unknown as SimpleElement, name);
10051005

10061006
if (isSVG || type === 'attr') {

packages/@ember/-internals/glimmer/lib/glimmer-component-docs.ts

+2
Original file line numberDiff line numberDiff line change
@@ -383,3 +383,5 @@
383383
@module @glimmer/component
384384
@public
385385
*/
386+
387+
export {};

packages/@ember/-internals/glimmer/lib/glimmer-tracking-docs.ts

+2
Original file line numberDiff line numberDiff line change
@@ -242,3 +242,5 @@
242242
@for @glimmer/tracking
243243
@public
244244
*/
245+
246+
export {};

packages/@ember/-internals/glimmer/lib/helpers/array.ts

+1
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,4 @@
3737
@since 3.8.0
3838
@public
3939
*/
40+
export {};

packages/@ember/-internals/glimmer/lib/helpers/component.ts

+2
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,5 @@
145145
@for Ember.Templates.helpers
146146
@public
147147
*/
148+
149+
export {};

packages/@ember/-internals/glimmer/lib/helpers/concat.ts

+2
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,5 @@
2424
@for @ember/helper
2525
@since 1.13.0
2626
*/
27+
28+
export {};

packages/@ember/-internals/glimmer/lib/helpers/fn.ts

+2
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,5 @@
6969
@public
7070
@since 3.11.0
7171
*/
72+
73+
export {};

packages/@ember/-internals/glimmer/lib/helpers/get.ts

+2
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,5 @@
9696
@for @ember/helper
9797
@since 2.1.0
9898
*/
99+
100+
export {};

packages/@ember/-internals/glimmer/lib/helpers/hash.ts

+1
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,4 @@
4040
@since 2.3.0
4141
@public
4242
*/
43+
export {};

packages/@ember/-internals/glimmer/lib/helpers/helper.ts

+1
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@
3939
@public
4040
@since 3.27.0
4141
*/
42+
export {};

packages/@ember/-internals/glimmer/lib/helpers/if-unless.ts

+2
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,5 @@
179179
@for Ember.Templates.helpers
180180
@public
181181
*/
182+
183+
export {};

packages/@ember/-internals/glimmer/lib/helpers/log.ts

+2
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@
1515
@param {Array} params
1616
@public
1717
*/
18+
19+
export {};

packages/@ember/-internals/glimmer/lib/helpers/modifier.ts

+2
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,5 @@
3838
@public
3939
@since 3.27.0
4040
*/
41+
42+
export {};

packages/@ember/-internals/glimmer/lib/helpers/page-title.ts

+2
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@
1616
@param {String} param
1717
@public
1818
*/
19+
20+
export {};

packages/@ember/-internals/glimmer/lib/modifiers/on.ts

+2
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,5 @@
9191
@public
9292
@since 3.11.0
9393
*/
94+
95+
export {};

packages/@ember/-internals/glimmer/lib/syntax/in-element.ts

+2
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,5 @@
4343
@for Ember.Templates.helpers
4444
@public
4545
*/
46+
47+
export {};

packages/@ember/-internals/glimmer/lib/syntax/let.ts

+2
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,5 @@
5151
@for Ember.Templates.helpers
5252
@public
5353
*/
54+
55+
export {};
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export { counters, Meta, meta, MetaCounters, peekMeta, setMeta, UNDEFINED } from './lib/meta';
1+
export { counters, Meta, meta, type MetaCounters, peekMeta, setMeta, UNDEFINED } from './lib/meta';

packages/@ember/-internals/metal/index.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ export {
33
autoComputed,
44
isComputed,
55
ComputedProperty,
6-
ComputedDecorator,
7-
ComputedPropertyGetter,
8-
ComputedPropertyObj,
9-
ComputedPropertySetter,
10-
ComputedPropertyCallback,
6+
type ComputedDecorator,
7+
type ComputedPropertyGetter,
8+
type ComputedPropertyObj,
9+
type ComputedPropertySetter,
10+
type ComputedPropertyCallback,
1111
} from './lib/computed';
1212
export { getCachedValueFor } from './lib/computed_cache';
1313
export { default as alias } from './lib/alias';
@@ -17,7 +17,7 @@ export {
1717
_getPath,
1818
get,
1919
_getProp,
20-
HasUnknownProperty,
20+
type HasUnknownProperty,
2121
hasUnknownProperty,
2222
} from './lib/property_get';
2323
export { set, _setProp, trySet } from './lib/property_set';
@@ -37,15 +37,15 @@ export {
3737
changeProperties,
3838
endPropertyChanges,
3939
notifyPropertyChange,
40-
PropertyDidChange,
40+
type PropertyDidChange,
4141
PROPERTY_DID_CHANGE,
4242
} from './lib/property_events';
4343
export { defineProperty, defineDecorator, defineValue } from './lib/properties';
4444
export {
45-
ExtendedMethodDecorator,
46-
DecoratorPropertyDescriptor,
45+
type ExtendedMethodDecorator,
46+
type DecoratorPropertyDescriptor,
4747
ComputedDescriptor,
48-
ElementDescriptor,
48+
type ElementDescriptor,
4949
isElementDescriptor,
5050
nativeDescDecorator,
5151
descriptorForDecorator,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export {};

packages/@ember/owner/index.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
// We need to provide a narrower public interface to `getOwner` so that we only
3434
// expose the `Owner` type, *not* our richer `InternalOwner` type and its
3535
// various bits of private API.
36-
import Owner, { getOwner as internalGetOwner } from '@ember/-internals/owner';
36+
import { type default as Owner, getOwner as internalGetOwner } from '@ember/-internals/owner';
3737

3838
// NOTE: this documentation appears here instead of at the definition site so
3939
// it can appear correctly in both API docs and for TS, while providing a richer
@@ -88,15 +88,15 @@ const getOwner = internalGetOwner as (object: object) => Owner | undefined;
8888
export { getOwner };
8989

9090
// Everything else which is part of the public API, we can directly re-export.
91-
export default Owner;
91+
export type { Owner as default };
9292

9393
export {
9494
setOwner,
95-
FullName,
96-
RegisterOptions,
97-
Factory,
98-
FactoryManager,
99-
KnownForTypeResult,
100-
Resolver,
101-
DIRegistry,
95+
type FullName,
96+
type RegisterOptions,
97+
type Factory,
98+
type FactoryManager,
99+
type KnownForTypeResult,
100+
type Resolver,
101+
type DIRegistry,
102102
} from '@ember/-internals/owner';

packages/@ember/routing/-internals.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
export { default as RouterState } from './lib/router_state';
22
export { default as RoutingService } from './lib/routing-service';
3-
export { RouteArgs, prefixRouteNameArg } from './lib/utils';
3+
export { type RouteArgs, prefixRouteNameArg } from './lib/utils';
44
export {
55
default as generateController,
66
generateControllerFactory,
77
} from './lib/generate_controller';
88
export { default as BucketCache } from './lib/cache';
9-
export { default as DSL, DSLCallback } from './lib/dsl';
10-
export { EngineRouteInfo } from './lib/engines';
11-
export { RouteInfo, RouteInfoWithAttributes } from './lib/route-info';
9+
export { default as DSL, type DSLCallback } from './lib/dsl';
10+
export type { EngineRouteInfo } from './lib/engines';
11+
export type { RouteInfo, RouteInfoWithAttributes } from './lib/route-info';
1212
export { default as controllerFor } from './lib/controller_for';
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// Exists to provide runtime exports used in the internals. For the public,
22
// type-only exports, see `packages/@ember/routing/route-info`.
33

4-
export { RouteInfo, RouteInfoWithAttributes } from 'router_js';
4+
export type { RouteInfo, RouteInfoWithAttributes } from 'router_js';

packages/@ember/routing/router-service.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { consumeTag, tagFor } from '@glimmer/validator';
1010
import type { ModelFor, Transition } from 'router_js';
1111
import type Route from '@ember/routing/route';
1212
import EmberRouter from '@ember/routing/router';
13-
import { RouteInfo, RouteInfoWithAttributes } from '@ember/routing/-internals';
13+
import type { RouteInfo, RouteInfoWithAttributes } from '@ember/routing/-internals';
1414
import type { RouteArgs, RouteOptions } from './lib/utils';
1515
import { extractRouteArgs, resemblesURL, shallowEqual } from './lib/utils';
1616

@@ -751,4 +751,4 @@ class RouterService extends Service.extend(Evented) {
751751
declare readonly currentRoute: this['_router']['currentRoute'];
752752
}
753753

754-
export { RouterService as default, RouteInfo, RouteInfoWithAttributes };
754+
export { RouterService as default, type RouteInfo, type RouteInfoWithAttributes };

packages/@ember/runloop/-private/backburner.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ import type Backburner from 'backburner.js';
1212
export type { Backburner };
1313
export type DebugInfo = ReturnType<Backburner['getDebugInfo']>;
1414

15-
export { IQueueItem as QueueItem } from 'backburner.js/dist/backburner/interfaces';
16-
export { DeferredActionQueues } from 'backburner.js';
15+
export type { IQueueItem as QueueItem } from 'backburner.js/dist/backburner/interfaces';
16+
export type { DeferredActionQueues } from 'backburner.js';

packages/@ember/runloop/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { assert } from '@ember/debug';
22
import { onErrorTarget } from '@ember/-internals/error-handling';
33
import { flushAsyncObservers } from '@ember/-internals/metal';
4-
import Backburner, { Timer, type DeferredActionQueues } from 'backburner.js';
4+
import Backburner, { type Timer, type DeferredActionQueues } from 'backburner.js';
55
import type { AnyFn } from '@ember/-internals/utility-types';
66

7-
export { Timer };
7+
export type { Timer };
88

99
// Partial types from https://medium.com/codex/currying-in-typescript-ca5226c85b85
1010

packages/@ember/test/adapter.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
import { Adapter } from 'ember-testing';
2-
3-
export default Adapter;
1+
export { Adapter as default } from 'ember-testing';

packages/ember-template-compiler/lib/public-api.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export {
1111
transformsFor as _transformsFor,
1212
} from './system/compile-options';
1313
export { RESOLUTION_MODE_TRANSFORMS, STRICT_MODE_TRANSFORMS } from './plugins';
14-
export { EmberPrecompileOptions } from './types';
14+
export type { EmberPrecompileOptions } from './types';
1515

1616
export { preprocess as _preprocess, print as _print } from '@glimmer/syntax';
1717
export { precompile as _precompile } from '@glimmer/compiler';

pnpm-lock.yaml

+2-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tsconfig/compiler-options.json

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"noUnusedParameters": true,
2222
"esModuleInterop": false,
2323
"allowSyntheticDefaultImports": false,
24+
"isolatedModules": true,
2425

2526
"newLine": "LF",
2627

0 commit comments

Comments
 (0)