Skip to content

Commit 59637e7

Browse files
authored
Merge pull request #20065 from wagenet/more-internals-ts2
Convert more internals to TS
2 parents f7334c9 + 127bbf3 commit 59637e7

File tree

13 files changed

+289
-267
lines changed

13 files changed

+289
-267
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ class Component
857857
if (!lazyEventsProcessedForComponentClass.has(proto)) {
858858
let lazyEvents = eventDispatcher.lazyEvents;
859859

860-
lazyEvents.forEach((mappedEventName: string | null, event: string) => {
860+
lazyEvents.forEach((mappedEventName, event) => {
861861
if (mappedEventName !== null && typeof (this as any)[mappedEventName] === 'function') {
862862
eventDispatcher.setupHandlerForBrowserEvent(event);
863863
}

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

+4-6
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ export class DynamicScope implements GlimmerDynamicScope {
8686
}
8787
}
8888

89+
const NO_OP = () => {};
90+
8991
// This wrapper logic prevents us from rerendering in case of a hard failure
9092
// during render. This prevents infinite revalidation type loops from occuring,
9193
// and ensures that errors are not swallowed by subsequent follow on failures.
@@ -218,10 +220,6 @@ function loopBegin(): void {
218220
}
219221
}
220222

221-
function K() {
222-
/* noop */
223-
}
224-
225223
let renderSettledDeferred: RSVP.Deferred<void> | null = null;
226224
/*
227225
Returns a promise which will resolve when rendering has settled. Settled in
@@ -239,7 +237,7 @@ export function renderSettled() {
239237
// a chance to resolve (because its resolved in backburner's "end" event)
240238
if (!_getCurrentRunLoop()) {
241239
// ensure a runloop has been kicked off
242-
_backburner.schedule('actions', null, K);
240+
_backburner.schedule('actions', null, NO_OP);
243241
}
244242
}
245243

@@ -266,7 +264,7 @@ function loopEnd() {
266264
throw new Error('infinite rendering invalidation detected');
267265
}
268266
loops++;
269-
return _backburner.join(null, K);
267+
return _backburner.join(null, NO_OP);
270268
}
271269
}
272270
loops = 0;

packages/@ember/-internals/metal/lib/computed.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -903,8 +903,8 @@ export function computed(
903903
}
904904

905905
export function autoComputed(
906-
...config: [ComputedPropertyObj]
907-
): ComputedDecorator | DecoratorPropertyDescriptor {
906+
...config: [ComputedPropertyObj | ComputedPropertyGetterFunction]
907+
): ComputedDecorator {
908908
// SAFETY: We passed in the impl for this class
909909
return makeComputedDecorator(
910910
new AutoComputedProperty(config),

packages/@ember/-internals/runtime/lib/mixins/array.d.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,27 @@ interface EmberArray<T> extends Enumerable {
2626
): NativeArray<U>;
2727
mapBy<K extends string>(key: K): NativeArray<Value<T, K>>;
2828
filter<Target>(
29-
callback: (this: Target, item: T, index: number, arr: this) => boolean,
29+
callback: (this: Target, item: T, index: number, arr: this) => unknown,
3030
target?: Target
3131
): NativeArray<T>;
3232
reject<Target>(
33-
callback: (this: Target, item: T, index: number, arr: this) => boolean,
33+
callback: (this: Target, item: T, index: number, arr: this) => unknown,
3434
target?: Target
3535
): NativeArray<T>;
3636
filterBy(key: string): NativeArray<T>;
3737
rejectBy(key: string): NativeArray<T>;
3838
find<Target = void>(
39-
callback: (this: Target, item: T, index: number, arr: this) => boolean,
39+
callback: (this: Target, item: T, index: number, arr: this) => unknown,
4040
target?: Target
4141
): T | undefined;
4242
findBy<K extends string>(key: K, value?: Value<T, K>): T | undefined;
4343
every<Target = void>(
44-
callback: (this: Target, item: T, index: number, arr: this) => boolean,
44+
callback: (this: Target, item: T, index: number, arr: this) => unknown,
4545
target?: Target
4646
): boolean;
4747
isEvery<K extends string>(key: K, value?: Value<T, K>): boolean;
4848
any<Target = void>(
49-
callback: (this: Target, item: T, index: number, arr: this) => boolean,
49+
callback: (this: Target, item: T, index: number, arr: this) => unknown,
5050
target?: Target
5151
): boolean;
5252
isAny<K extends string>(key: K, value?: Value<T, K>): boolean;
@@ -103,5 +103,8 @@ export function A<A>(arr: A): A extends Array<infer V> ? NativeArray<V> : Native
103103
export function A<T>(): NativeArray<T>;
104104

105105
export function removeAt<T>(array: T[] | EmberArray<T>, start: number, len: number): EmberArray<T>;
106-
export function uniqBy<T>(array: T[], keyOrFunc: string | ((item: T) => unknown)): T[];
106+
export function uniqBy<T>(
107+
array: T[] | EmberArray<T>,
108+
keyOrFunc: string | ((item: T) => unknown)
109+
): T[] | EmberArray<T>;
107110
export function isArray(obj: unknown): boolean;

packages/@ember/controller/lib/controller_mixin.d.ts

-28
This file was deleted.

packages/@ember/controller/lib/controller_mixin.js packages/@ember/controller/lib/controller_mixin.ts

+26-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import { Mixin, computed } from '@ember/-internals/metal';
2+
import { RouteArgs } from '@ember/-internals/routing/lib/utils';
23
import { ActionHandler } from '@ember/-internals/runtime';
34
import { symbol } from '@ember/-internals/utils';
5+
import Route from '@ember/routing/route';
6+
import { Transition } from 'router_js';
7+
8+
export type ControllerQueryParamType = 'boolean' | 'number' | 'array' | 'string';
9+
export type ControllerQueryParam = string | Record<string, { type: ControllerQueryParamType }>;
410

511
const MODEL = symbol('MODEL');
612

@@ -14,7 +20,23 @@ const MODEL = symbol('MODEL');
1420
@uses Ember.ActionHandler
1521
@private
1622
*/
17-
export default Mixin.create(ActionHandler, {
23+
interface ControllerMixin<T> extends ActionHandler {
24+
/** @internal */
25+
_qpDelegate: unknown | null;
26+
27+
isController: true;
28+
target: unknown | null;
29+
model: T;
30+
31+
// From routing/lib/ext/controller
32+
33+
queryParams: Array<ControllerQueryParam>;
34+
35+
transitionToRoute(...args: RouteArgs<Route>): Transition;
36+
37+
replaceRoute(...args: RouteArgs<Route>): Transition;
38+
}
39+
const ControllerMixin = Mixin.create(ActionHandler, {
1840
/* ducktype as a controller */
1941
isController: true,
2042

@@ -50,8 +72,10 @@ export default Mixin.create(ActionHandler, {
5072
return this[MODEL];
5173
},
5274

53-
set(key, value) {
75+
set(_key, value) {
5476
return (this[MODEL] = value);
5577
},
5678
}),
5779
});
80+
81+
export default ControllerMixin;

packages/@ember/object/computed.d.ts

-104
This file was deleted.
File renamed without changes.

0 commit comments

Comments
 (0)