Skip to content
This repository was archived by the owner on Oct 29, 2024. It is now read-only.

Commit 88da536

Browse files
authored
Merge pull request #148 from givanse/noImplicitAny
updates towards noImplicitAny
2 parents 459662e + 1c1015f commit 88da536

File tree

21 files changed

+123
-53
lines changed

21 files changed

+123
-53
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"rollup": "^0.41.6",
4646
"rollup-plugin-node-resolve": "^3.0.0",
4747
"rollup-plugin-sourcemaps": "^0.4.2",
48+
"rollup-plugin-typescript2": "^0.17.0",
4849
"semver": "^5.3.0",
4950
"simple-dom": "^1.2.0",
5051
"simple-html-tokenizer": "^0.5.3",
@@ -66,4 +67,4 @@
6667
"deprecation": ":warning: Deprecation"
6768
}
6869
}
69-
}
70+
}

packages/@glimmer/app-compiler/src/bundle-compiler.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@ import { mainTemplate } from '@glimmer/application';
88
import { CompilableProgram } from '@glimmer/opcode-compiler';
99
import { Opaque } from '@glimmer/util';
1010
import { AppCompilerDelegateOptions } from '@glimmer/compiler-delegates';
11+
import { TempDir } from 'broccoli-test-helper';
12+
13+
// https://github.com/joliss/node-walk-sync/blob/984a2d6adf9facc1531fb325852f475eb260781d/index.d.ts
14+
export class WalkSyncEntry {
15+
relativePath: string;
16+
basePath: string;
17+
fullPath: string;
18+
mode: number;
19+
size: number;
20+
mtime: Date;
21+
isDirectory: Function;
22+
}
1123

1224
export type CompilerMode = 'module-unification';
1325

@@ -29,7 +41,7 @@ export default class GlimmerBundleCompiler extends Plugin {
2941
outputPath: string;
3042
compiler: BundleCompiler<Opaque>;
3143
private delegate: AppCompilerDelegate<Opaque>;
32-
constructor(inputNode, options: GlimmerBundleCompilerOptions) {
44+
constructor(inputNode: TempDir|string, options: GlimmerBundleCompilerOptions) {
3345
super([inputNode], options);
3446
this.options = this.defaultOptions(options);
3547
}
@@ -47,12 +59,12 @@ export default class GlimmerBundleCompiler extends Plugin {
4759
}, options);
4860
}
4961

50-
listEntries() {
62+
listEntries(): WalkSyncEntry[] {
5163
let [srcPath] = this.inputPaths;
5264
return walkSync.entries(srcPath);
5365
}
5466

55-
_readFile(file) {
67+
_readFile(file: string) {
5668
return readFileSync(join(this.inputPaths[0], file), 'UTF-8');
5769
}
5870

@@ -88,7 +100,7 @@ export default class GlimmerBundleCompiler extends Plugin {
88100

89101
let [projectPath] = this.inputPaths;
90102

91-
this.listEntries().forEach(entry => {
103+
this.listEntries().forEach((entry: WalkSyncEntry) => {
92104
let { relativePath } = entry;
93105
if (entry.isDirectory()) {
94106
mkdirSync(join(outputPath, relativePath));

packages/@glimmer/app-compiler/test/node/bundle-compiler-test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { GlimmerBundleCompiler } from '@glimmer/app-compiler';
2-
import { createTempDir, buildOutput } from 'broccoli-test-helper';
2+
import { createTempDir, buildOutput, TempDir, Tree } from 'broccoli-test-helper';
33

44
const { module, test } = QUnit;
55

66
module('Broccol Glimmer Bundle Compiler', function(hooks) {
7-
let input = null;
7+
let input:TempDir = null;
88

99
hooks.beforeEach(() => createTempDir().then(tempDir => (input = tempDir)));
1010

@@ -53,7 +53,7 @@ module('Broccol Glimmer Bundle Compiler', function(hooks) {
5353
});
5454

5555
let output = await buildOutput(compiler);
56-
let files = output.read();
56+
let files: Tree = output.read();
5757

5858
assert.deepEqual(Object.keys(files).sort(), ['src', 'package.json', 'templates.gbx', 'data-segment.js'].sort());
5959
assert.deepEqual(Object.keys(files['src']).sort(), ['ui'].sort());

packages/@glimmer/application-test-helpers/src/app-builder.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { BundleCompiler, CompilerDelegate as ICompilerDelegate } from '@glimmer/
1313
import { buildAction, mainTemplate } from '@glimmer/application';
1414
import { CompilableProgram } from '@glimmer/opcode-compiler';
1515
import { Cursor } from '@glimmer/runtime';
16+
import { Metadata } from '../../application/src/loaders/bytecode/loader';
1617

1718
import didRender from './did-render';
1819

@@ -119,9 +120,10 @@ export class AppBuilder<T extends TestApplication> {
119120
let { heap, pool, table } = compiler.compile();
120121

121122
let resolverTable: Opaque[] = [];
122-
let meta = {};
123123

124-
table.vmHandleByModuleLocator.forEach((vmHandle, locator) => {
124+
let meta: Dict<Metadata> = {};
125+
126+
table.vmHandleByModuleLocator.forEach((vmHandle , locator) => {
125127
let handle = table.byModuleLocator.get(locator);
126128
let template = compiler.compilableTemplates.get(locator);
127129

packages/@glimmer/application-test-helpers/src/render-test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,20 @@ export class RenderTest {
3636
}
3737

3838
function setTestingDescriptor(descriptor: PropertyDescriptor): void {
39-
let testFunction = descriptor.value as Function;
39+
let testFunction:TestFunction = descriptor.value as TestFunction;
4040
descriptor.enumerable = true;
4141
testFunction['isTest'] = true;
4242
}
4343

4444
export interface TestMeta {
45+
[key: string]: any;
4546
debug?: boolean;
4647
}
4748

49+
export interface TestFunction {
50+
[key: string]: boolean;
51+
}
52+
4853
export function test(meta: TestMeta): MethodDecorator;
4954
export function test(
5055
_target: Object | TestMeta,
@@ -55,7 +60,7 @@ export function test(...args: any[]) {
5560
if (args.length === 1) {
5661
let meta: TestMeta = args[0];
5762
return (_target: Object, _name: string, descriptor: PropertyDescriptor) => {
58-
let testFunction = descriptor.value as Function;
63+
let testFunction: TestFunction = descriptor.value as TestFunction;
5964
Object.keys(meta).forEach(key => (testFunction[key] = meta[key]));
6065
setTestingDescriptor(descriptor);
6166
};

packages/@glimmer/application/src/dynamic-scope.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ import {
99
PathReference
1010
} from '@glimmer/reference';
1111

12+
interface Bucket {
13+
[key: string]: PathReference<Opaque>;
14+
}
15+
1216
export default class DynamicScope implements GlimmerDynamicScope {
13-
private bucket;
17+
private bucket: Bucket;
1418

15-
constructor(bucket=null) {
19+
constructor(bucket: Bucket = null) {
1620
if (bucket) {
1721
this.bucket = assign({}, bucket);
1822
} else {

packages/@glimmer/application/src/helpers/action.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default function buildAction(vm: VM, _args: Arguments) {
1212
throwNoActionError(actionFunc, args.positional.at(0));
1313
}
1414

15-
return new UpdatableReference(function action(...invokedArgs) {
15+
return new UpdatableReference(function action(...invokedArgs: any[]) {
1616
let curriedArgs = args.positional.value();
1717
// Consume the action function that was already captured above.
1818
curriedArgs.shift();

packages/@glimmer/application/src/helpers/user-helper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {
2121

2222
export type UserHelper = (args: ReadonlyArray<Opaque>, named: Dict<Opaque>) => any;
2323

24-
export default function buildUserHelper(helperFunc): GlimmerHelper {
24+
export default function buildUserHelper(helperFunc: UserHelper): GlimmerHelper {
2525
return (_vm: VM, args: Arguments) => new HelperReference(helperFunc, args);
2626
}
2727

packages/@glimmer/application/src/iterable.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ export default class Iterable implements AbstractIterable<Opaque, Opaque, Iterat
110110
} else if (iterable === undefined || iterable === null) {
111111
return EMPTY_ITERATOR;
112112
} else if (iterable.forEach !== undefined) {
113-
let array = [];
114-
iterable.forEach(function(item) {
113+
let array: any[] = [];
114+
iterable.forEach(function(item: any) {
115115
array.push(item);
116116
});
117117
return array.length > 0 ? new ArrayIterator(array, keyFor) : EMPTY_ITERATOR;

packages/@glimmer/application/src/loaders/bytecode/loader.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ export interface SerializedHeap {
1515
}
1616

1717
export interface Metadata {
18+
[key: string]: number | ProgramSymbolTable;
19+
1820
/** VM handle */
19-
v: number;
21+
v?: number;
2022
/** Handle */
21-
h: number;
23+
h?: number;
2224

23-
table: ProgramSymbolTable;
25+
table?: ProgramSymbolTable;
2426
}
2527

2628
/**

packages/@glimmer/application/test/browser/action-test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ test('can curry arguments to actions', async function(assert) {
2222
helloWorldComponent = this;
2323
}
2424

25-
userDidClick(msg1, msg2, event) {
25+
userDidClick(msg1: string, msg2: string, event: Event) {
2626
passedMsg1 = msg1;
2727
passedMsg2 = msg2;
2828
passedEvent = event;
@@ -67,7 +67,7 @@ test('actions can be passed and invoked with additional arguments', async functi
6767
type: 'click'
6868
};
6969
let parentComponent: ParentComponent;
70-
let passed = [];
70+
let passed: any[] = [];
7171

7272
class ParentComponent extends Component {
7373
name = "world";
@@ -77,7 +77,7 @@ test('actions can be passed and invoked with additional arguments', async functi
7777
parentComponent = this;
7878
}
7979

80-
userDidClick(a1, a2, a3, a4, a5, a6, evt) {
80+
userDidClick(a1: number, a2: number, a3: number, a4: number, a5: number, a6: number, evt: Event) {
8181
passed = [a1, a2, a3, a4, a5, a6, evt];
8282
assert.strictEqual(this, parentComponent, 'function context is preserved');
8383
}

packages/@glimmer/application/test/browser/application-as-owner-test.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ const { module, test } = QUnit;
55

66
module('[@glimmer/application] Owner interface');
77

8+
interface FooBarClass {
9+
[key: string]: any;
10+
}
11+
812
test('#identify - uses a resolver to convert a relative specifier to an absolute specifier', function(assert) {
913
assert.expect(2);
1014

@@ -120,7 +124,7 @@ test('#lookup - returns an instance created by the factory', function(assert) {
120124
let instance = { foo: 'bar' };
121125

122126
class FooBar {
123-
static create(injections) {
127+
static create(injections: Object) {
124128
assert.ok(true, 'Factory#create invoked');
125129
assert.strictEqual(getOwner(injections), app, 'owner is included in injections');
126130
return instance;
@@ -248,11 +252,11 @@ test('#lookup - uses the resolver to locate a registration', function(assert) {
248252
test('#lookup - injects references registered by name', function(assert) {
249253
assert.expect(5);
250254

251-
let instance = { foo: 'bar' };
255+
let instance: FooBarClass = { foo: 'bar' };
252256
let router = { name: 'router' };
253257

254258
class FooBar {
255-
static create(injections) {
259+
static create(injections: FooBarClass) {
256260
assert.ok(true, 'FooBarFactory#create invoked');
257261
assert.strictEqual(injections['router'], router, 'expected injections passed to factory');
258262
instance['router'] = injections['router'];
@@ -286,11 +290,11 @@ test('#lookup - injects references registered by name', function(assert) {
286290
test('#lookup - injects references registered by type', function(assert) {
287291
assert.expect(5);
288292

289-
let instance = { foo: 'bar' };
293+
let instance: FooBarClass = { foo: 'bar' };
290294
let router = { name: 'router' };
291295

292296
class FooBar {
293-
static create(injections) {
297+
static create(injections: FooBarClass) {
294298
assert.ok(true, 'FooBarFactory#create invoked');
295299
assert.strictEqual(injections['router'], router, 'expected injections passed to factory');
296300
instance['router'] = injections['router'];

packages/@glimmer/application/test/browser/environment-test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ test('can render a custom helper that takes args', async function(assert) {
172172
}
173173

174174
let app = await buildApp()
175-
.helper('greeting', (params) => `Hello ${params[0]} ${params[1]}!`)
175+
.helper('greeting', (params: string[]) => `Hello ${params[0]} ${params[1]}!`)
176176
.template('Main', '<div>{{greeting firstName lastName}}</div>')
177177
.component('Main', MainComponent)
178178
.boot();

packages/@glimmer/application/test/browser/render-component-test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import Component, { tracked } from '@glimmer/component';
44
import '../helpers/async';
55

66
class RenderComponentTest extends RenderTest {
7-
@test async "renders a component"(assert) {
7+
@test async "renders a component"(assert: Assert) {
88
assert.expect(1);
99

1010
let containerElement = document.createElement('div');
@@ -22,7 +22,7 @@ class RenderComponentTest extends RenderTest {
2222
assert.equal(containerElement.innerHTML, '<h1>A B Hello Glimmer!</h1>');
2323
}
2424

25-
@test async 'renders a component without affecting existing content'(assert) {
25+
@test async 'renders a component without affecting existing content'(assert: Assert) {
2626
assert.expect(2);
2727

2828
let containerElement = document.createElement('div');
@@ -45,7 +45,7 @@ class RenderComponentTest extends RenderTest {
4545
assert.equal(containerElement.innerHTML, '<p>foo</p>bar<h1>Hello Glimmer!</h1>');
4646
}
4747

48-
@test async 'renders a component before a given sibling'(assert) {
48+
@test async 'renders a component before a given sibling'(assert: Assert) {
4949
assert.expect(2);
5050

5151
let containerElement = document.createElement('div');
@@ -68,7 +68,7 @@ class RenderComponentTest extends RenderTest {
6868
assert.equal(containerElement.innerHTML, '<p></p><h1>Hello Glimmer!</h1><aside></aside>');
6969
}
7070

71-
@test async 'renders multiple components in different places'(assert) {
71+
@test async 'renders multiple components in different places'(assert: Assert) {
7272
assert.expect(2);
7373

7474
let firstContainerElement = document.createElement('div');
@@ -88,7 +88,7 @@ class RenderComponentTest extends RenderTest {
8888
assert.equal(secondContainerElement.innerHTML, '<h1>Hello Robbie!</h1>');
8989
}
9090

91-
@test async 'renders multiple components in the same container'(assert) {
91+
@test async 'renders multiple components in the same container'(assert: Assert) {
9292
assert.expect(1);
9393

9494
let containerElement = document.createElement('div');
@@ -106,7 +106,7 @@ class RenderComponentTest extends RenderTest {
106106
assert.equal(containerElement.innerHTML, '<h1>Hello Glimmer!</h1><h1>Hello Robbie!</h1>');
107107
}
108108

109-
@test async 'renders multiple components in the same container in particular places'(assert) {
109+
@test async 'renders multiple components in the same container in particular places'(assert: Assert) {
110110
assert.expect(2);
111111

112112
let containerElement = document.createElement('div');
@@ -129,7 +129,7 @@ class RenderComponentTest extends RenderTest {
129129
assert.equal(containerElement.innerHTML, '<h1>Hello Robbie!</h1><aside></aside><h1>Hello Glimmer!</h1>');
130130
}
131131

132-
@test async 'user helpers are not volatile'(assert) {
132+
@test async 'user helpers are not volatile'(assert: Assert) {
133133
assert.expect(6);
134134

135135
let containerElement = document.createElement('div');
@@ -141,7 +141,7 @@ class RenderComponentTest extends RenderTest {
141141

142142
class HelloWorld extends Component {
143143
@tracked a = 'a';
144-
constructor(options) {
144+
constructor(options: any) {
145145
super(options);
146146
component = this;
147147
}
@@ -150,7 +150,7 @@ class RenderComponentTest extends RenderTest {
150150
let count = 0;
151151

152152
let app = await this.app
153-
.helper('woot', (params) => {
153+
.helper('woot', (params: any) => {
154154
count++;
155155
return params[0];
156156
})
@@ -186,7 +186,7 @@ class RenderComponentTest extends RenderTest {
186186
}
187187

188188
@test({ debug: true })
189-
async 'throws an exception if an invoked component is not found'(assert) {
189+
async 'throws an exception if an invoked component is not found'(assert: Assert) {
190190
assert.expect(1);
191191

192192
let containerElement = document.createElement('div');

0 commit comments

Comments
 (0)