Skip to content

Commit a553674

Browse files
btakitataylorzane
authored andcommitted
chore: more specific typings, and add README note about Yarn (sveltejs#4483)
1 parent 4c5eed9 commit a553674

File tree

5 files changed

+25
-23
lines changed

5 files changed

+25
-23
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ cd svelte
3232
npm install
3333
```
3434

35+
> Do not use Yarn to install the dependencies, as the specific package versions in `package-lock.json` are used to build and test Svelte.
36+
3537
> Many tests depend on newlines being preserved as `<LF>`. On Windows, you can ensure this by cloning with:
3638
> ```bash
3739
> git -c core.autocrlf=false clone https://github.com/sveltejs/svelte.git

src/compiler/compile/Component.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ export default class Component {
239239
const program: any = { type: 'Program', body: result.js };
240240

241241
walk(program, {
242-
enter: (node, parent, key) => {
242+
enter: (node: Node, parent: Node, key) => {
243243
if (node.type === 'Identifier') {
244244
if (node.name[0] === '@') {
245245
if (node.name[1] === '_') {
@@ -526,7 +526,7 @@ export default class Component {
526526
if (!script) return;
527527

528528
walk(script.content, {
529-
enter(node) {
529+
enter(node: Node) {
530530
if (node.type === 'LabeledStatement' && node.label.name === '$') {
531531
component.warn(node as any, {
532532
code: 'module-script-reactive-declaration',
@@ -715,7 +715,7 @@ export default class Component {
715715
let scope_updated = false;
716716

717717
walk(content, {
718-
enter(node, parent, prop, index) {
718+
enter(node: Node, parent, prop, index) {
719719
if (map.has(node)) {
720720
scope = map.get(node);
721721
}
@@ -741,7 +741,7 @@ export default class Component {
741741
component.warn_on_undefined_store_value_references(node, parent, scope);
742742
},
743743

744-
leave(node) {
744+
leave(node: Node) {
745745
// do it on leave, to prevent infinite loop
746746
if (component.compile_options.dev && component.compile_options.loopGuardTimeout > 0) {
747747
const to_replace_for_loop_protect = component.loop_protect(node, scope, component.compile_options.loopGuardTimeout);
@@ -785,7 +785,7 @@ export default class Component {
785785
let scope = instance_scope;
786786

787787
walk(content, {
788-
enter(node, parent) {
788+
enter(node: Node, parent: Node) {
789789
if (map.has(node)) {
790790
scope = map.get(node);
791791
}
@@ -818,7 +818,7 @@ export default class Component {
818818
}
819819
},
820820

821-
leave(node) {
821+
leave(node: Node) {
822822
if (map.has(node)) {
823823
scope = scope.parent;
824824
}
@@ -886,7 +886,7 @@ export default class Component {
886886
let scope = instance_scope;
887887

888888
walk(this.ast.instance.content, {
889-
enter(node, parent, key, index) {
889+
enter(node: Node, parent, key, index) {
890890
if (/Function/.test(node.type)) {
891891
return this.skip();
892892
}
@@ -963,7 +963,7 @@ export default class Component {
963963
}
964964
},
965965

966-
leave(node, parent, _key, index) {
966+
leave(node: Node, parent, _key, index) {
967967
if (map.has(node)) {
968968
scope = scope.parent;
969969
}
@@ -1064,7 +1064,7 @@ export default class Component {
10641064
walking.add(fn_declaration);
10651065

10661066
walk(fn_declaration, {
1067-
enter(node, parent) {
1067+
enter(node: Node, parent) {
10681068
if (!hoistable) return this.skip();
10691069

10701070
if (map.has(node)) {
@@ -1112,7 +1112,7 @@ export default class Component {
11121112
}
11131113
},
11141114

1115-
leave(node) {
1115+
leave(node: Node) {
11161116
if (map.has(node)) {
11171117
scope = scope.parent;
11181118
}
@@ -1155,7 +1155,7 @@ export default class Component {
11551155
const map = this.instance_scope_map;
11561156

11571157
walk(node.body, {
1158-
enter(node, parent) {
1158+
enter(node: Node, parent) {
11591159
if (map.has(node)) {
11601160
scope = map.get(node);
11611161
}
@@ -1195,7 +1195,7 @@ export default class Component {
11951195
}
11961196
},
11971197

1198-
leave(node) {
1198+
leave(node: Node) {
11991199
if (map.has(node)) {
12001200
scope = scope.parent;
12011201
}
@@ -1455,4 +1455,4 @@ function get_relative_path(from: string, to: string) {
14551455
}
14561456

14571457
return from_parts.concat(to_parts).join('/');
1458-
}
1458+
}

src/compiler/compile/nodes/Let.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Node from './shared/Node';
22
import Component from '../Component';
33
import { walk } from 'estree-walker';
4-
import { Identifier } from 'estree';
4+
import { BasePattern, Identifier } from 'estree';
55

66
const applicable = new Set(['Identifier', 'ObjectExpression', 'ArrayExpression', 'Property']);
77

@@ -22,7 +22,7 @@ export default class Let extends Node {
2222
this.value = info.expression;
2323

2424
walk(info.expression, {
25-
enter(node) {
25+
enter(node: Identifier|BasePattern) {
2626
if (!applicable.has(node.type)) {
2727
component.error(node as any, {
2828
code: 'invalid-let',
@@ -31,21 +31,21 @@ export default class Let extends Node {
3131
}
3232

3333
if (node.type === 'Identifier') {
34-
names.push(node.name);
34+
names.push((node as Identifier).name);
3535
}
3636

3737
// slightly unfortunate hack
3838
if (node.type === 'ArrayExpression') {
39-
(node as any).type = 'ArrayPattern';
39+
node.type = 'ArrayPattern';
4040
}
4141

4242
if (node.type === 'ObjectExpression') {
43-
(node as any).type = 'ObjectPattern';
43+
node.type = 'ObjectPattern';
4444
}
4545
}
4646
});
4747
} else {
4848
names.push(this.name.name);
4949
}
5050
}
51-
}
51+
}

src/compiler/compile/nodes/shared/Expression.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ export default class Expression {
143143
}
144144
},
145145

146-
leave(node) {
146+
leave(node: Node) {
147147
if (map.has(node)) {
148148
scope = scope.parent;
149149
}
@@ -338,7 +338,7 @@ export default class Expression {
338338
});
339339
}
340340

341-
return (this.manipulated = node);
341+
return (this.manipulated = node as Node);
342342
}
343343
}
344344

src/compiler/compile/render_dom/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ export default function dom(
200200
let execution_context: Node | null = null;
201201

202202
walk(component.ast.instance.content, {
203-
enter(node) {
203+
enter(node: Node) {
204204
if (map.has(node)) {
205205
scope = map.get(node) as Scope;
206206

@@ -212,7 +212,7 @@ export default function dom(
212212
}
213213
},
214214

215-
leave(node) {
215+
leave(node: Node) {
216216
if (map.has(node)) {
217217
scope = scope.parent;
218218
}

0 commit comments

Comments
 (0)