Skip to content

Commit ece530f

Browse files
dario-piotrowiczdylhunn
authored andcommitted
refactor(animations): change errors type from any to string (#44726)
errors in the animations code are of type `any` but are consistently used as if there were `string`s, change `any` to `string` to make typing more accurate PR Close #44726
1 parent cd5200e commit ece530f

13 files changed

+30
-25
lines changed

packages/animations/browser/src/dsl/animation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {ElementInstructionMap} from './element_instruction_map';
1919
export class Animation {
2020
private _animationAst: Ast<AnimationMetadataType>;
2121
constructor(private _driver: AnimationDriver, input: AnimationMetadata|AnimationMetadata[]) {
22-
const errors: any[] = [];
22+
const errors: string[] = [];
2323
const ast = buildAnimationAst(_driver, input, errors);
2424
if (errors.length) {
2525
const errorMessage = `animation validation failed:\n${errors.join('\n')}`;

packages/animations/browser/src/dsl/animation_ast_builder.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const SELF_TOKEN_REGEX = new RegExp(`\s*${SELF_TOKEN}\s*,?`, 'g');
5656
*/
5757
export function buildAnimationAst(
5858
driver: AnimationDriver, metadata: AnimationMetadata|AnimationMetadata[],
59-
errors: any[]): Ast<AnimationMetadataType> {
59+
errors: string[]): Ast<AnimationMetadataType> {
6060
return new AnimationAstBuilderVisitor(driver).build(metadata, errors);
6161
}
6262

@@ -65,7 +65,7 @@ const ROOT_SELECTOR = '';
6565
export class AnimationAstBuilderVisitor implements AnimationDslVisitor {
6666
constructor(private _driver: AnimationDriver) {}
6767

68-
build(metadata: AnimationMetadata|AnimationMetadata[], errors: any[]):
68+
build(metadata: AnimationMetadata|AnimationMetadata[], errors: string[]):
6969
Ast<AnimationMetadataType> {
7070
const context = new AnimationAstBuilderContext(errors);
7171
this._resetContextStyleTimingState(context);
@@ -515,7 +515,7 @@ export class AnimationAstBuilderContext {
515515
public currentTime: number = 0;
516516
public collectedStyles: {[selectorName: string]: {[propName: string]: StyleTimeTuple}} = {};
517517
public options: AnimationOptions|null = null;
518-
constructor(public errors: any[]) {}
518+
constructor(public errors: string[]) {}
519519
}
520520

521521
function consumeOffset(styles: ɵStyleData|string|(ɵStyleData | string)[]): number|null {
@@ -543,7 +543,7 @@ function isObject(value: any): boolean {
543543
return !Array.isArray(value) && typeof value == 'object';
544544
}
545545

546-
function constructTimingAst(value: string|number|AnimateTimings, errors: any[]) {
546+
function constructTimingAst(value: string|number|AnimateTimings, errors: string[]) {
547547
let timings: AnimateTimings|null = null;
548548
if (value.hasOwnProperty('duration')) {
549549
timings = value as AnimateTimings;

packages/animations/browser/src/dsl/animation_timeline_builder.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ export function buildAnimationTimelines(
108108
driver: AnimationDriver, rootElement: any, ast: Ast<AnimationMetadataType>,
109109
enterClassName: string, leaveClassName: string, startingStyles: ɵStyleData = {},
110110
finalStyles: ɵStyleData = {}, options: AnimationOptions,
111-
subInstructions?: ElementInstructionMap, errors: any[] = []): AnimationTimelineInstruction[] {
111+
subInstructions?: ElementInstructionMap,
112+
errors: string[] = []): AnimationTimelineInstruction[] {
112113
return new AnimationTimelineBuilderVisitor().buildKeyframes(
113114
driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles,
114115
options, subInstructions, errors);
@@ -119,7 +120,7 @@ export class AnimationTimelineBuilderVisitor implements AstVisitor {
119120
driver: AnimationDriver, rootElement: any, ast: Ast<AnimationMetadataType>,
120121
enterClassName: string, leaveClassName: string, startingStyles: ɵStyleData,
121122
finalStyles: ɵStyleData, options: AnimationOptions, subInstructions?: ElementInstructionMap,
122-
errors: any[] = []): AnimationTimelineInstruction[] {
123+
errors: string[] = []): AnimationTimelineInstruction[] {
123124
subInstructions = subInstructions || new ElementInstructionMap();
124125
const context = new AnimationTimelineContext(
125126
driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);
@@ -466,7 +467,7 @@ export class AnimationTimelineContext {
466467
constructor(
467468
private _driver: AnimationDriver, public element: any,
468469
public subInstructions: ElementInstructionMap, private _enterClassName: string,
469-
private _leaveClassName: string, public errors: any[], public timelines: TimelineBuilder[],
470+
private _leaveClassName: string, public errors: string[], public timelines: TimelineBuilder[],
470471
initialTimeline?: TimelineBuilder) {
471472
this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);
472473
timelines.push(this.currentTimeline);
@@ -574,7 +575,7 @@ export class AnimationTimelineContext {
574575

575576
invokeQuery(
576577
selector: string, originalSelector: string, limit: number, includeSelf: boolean,
577-
optional: boolean, errors: any[]): any[] {
578+
optional: boolean, errors: string[]): any[] {
578579
let results: any[] = [];
579580
if (includeSelf) {
580581
results.push(this.element);
@@ -723,7 +724,7 @@ export class TimelineBuilder {
723724
}
724725

725726
setStyles(
726-
input: (ɵStyleData|string)[], easing: string|null, errors: any[],
727+
input: (ɵStyleData|string)[], easing: string|null, errors: string[],
727728
options?: AnimationOptions) {
728729
if (easing) {
729730
this._previousKeyframe['easing'] = easing;

packages/animations/browser/src/dsl/animation_transition_factory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class AnimationTransitionFactory {
2929
return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);
3030
}
3131

32-
buildStyles(stateName: string, params: {[key: string]: any}, errors: any[]) {
32+
buildStyles(stateName: string, params: {[key: string]: any}, errors: string[]) {
3333
const backupStateStyler = this._stateStyles['*'];
3434
const stateStyler = this._stateStyles[stateName];
3535
const backupStyles = backupStateStyler ? backupStateStyler.buildStyles(params, errors) : {};
@@ -41,7 +41,7 @@ export class AnimationTransitionFactory {
4141
enterClassName: string, leaveClassName: string, currentOptions?: AnimationOptions,
4242
nextOptions?: AnimationOptions, subInstructions?: ElementInstructionMap,
4343
skipAstBuild?: boolean): AnimationTransitionInstruction {
44-
const errors: any[] = [];
44+
const errors: string[] = [];
4545

4646
const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;
4747
const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;

packages/animations/browser/src/dsl/animation_transition_instruction.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
import {ɵStyleData} from '@angular/animations';
9+
910
import {AnimationEngineInstruction, AnimationTransitionInstructionType} from '../render/animation_engine_instruction';
11+
1012
import {AnimationTimelineInstruction} from './animation_timeline_instruction';
1113

1214
export interface AnimationTransitionInstruction extends AnimationEngineInstruction {
@@ -22,7 +24,7 @@ export interface AnimationTransitionInstruction extends AnimationEngineInstructi
2224
preStyleProps: Map<any, {[prop: string]: boolean}>;
2325
postStyleProps: Map<any, {[prop: string]: boolean}>;
2426
totalTime: number;
25-
errors?: any[];
27+
errors?: string[];
2628
}
2729

2830
export function createTransitionInstruction(
@@ -31,7 +33,7 @@ export function createTransitionInstruction(
3133
timelines: AnimationTimelineInstruction[], queriedElements: any[],
3234
preStyleProps: Map<any, {[prop: string]: boolean}>,
3335
postStyleProps: Map<any, {[prop: string]: boolean}>, totalTime: number,
34-
errors?: any[]): AnimationTransitionInstruction {
36+
errors?: string[]): AnimationTransitionInstruction {
3537
return {
3638
type: AnimationTransitionInstructionType.TransitionAnimation,
3739
element,

packages/animations/browser/src/dsl/animation_trigger.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
import {AnimationMetadataType, ɵStyleData} from '@angular/animations';
9+
910
import {SequenceAst, TransitionAst, TriggerAst} from './animation_ast';
1011
import {AnimationStateStyles, AnimationTransitionFactory} from './animation_transition_factory';
1112
import {AnimationStyleNormalizer} from './style_normalization/animation_style_normalizer';
@@ -50,7 +51,7 @@ export class AnimationTrigger {
5051
return entry || null;
5152
}
5253

53-
matchStyles(currentState: any, params: {[key: string]: any}, errors: any[]): ɵStyleData {
54+
matchStyles(currentState: any, params: {[key: string]: any}, errors: string[]): ɵStyleData {
5455
return this.fallbackTransition.buildStyles(currentState, params, errors);
5556
}
5657
}

packages/animations/browser/src/render/animation_engine_next.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
import {AnimationMetadata, AnimationPlayer, AnimationTriggerMetadata} from '@angular/animations';
9+
910
import {TriggerAst} from '../dsl/animation_ast';
1011
import {buildAnimationAst} from '../dsl/animation_ast_builder';
1112
import {AnimationTrigger, buildTrigger} from '../dsl/animation_trigger';
@@ -41,7 +42,7 @@ export class AnimationEngine {
4142
const cacheKey = componentId + '-' + name;
4243
let trigger = this._triggerCache[cacheKey];
4344
if (!trigger) {
44-
const errors: any[] = [];
45+
const errors: string[] = [];
4546
const ast =
4647
buildAnimationAst(this._driver, metadata as AnimationMetadata, errors) as TriggerAst;
4748
if (errors.length) {

packages/animations/browser/src/render/timeline_animation_engine.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class TimelineAnimationEngine {
3030
private _normalizer: AnimationStyleNormalizer) {}
3131

3232
register(id: string, metadata: AnimationMetadata|AnimationMetadata[]) {
33-
const errors: any[] = [];
33+
const errors: string[] = [];
3434
const ast = buildAnimationAst(this._driver, metadata, errors);
3535
if (errors.length) {
3636
throw new Error(
@@ -50,7 +50,7 @@ export class TimelineAnimationEngine {
5050
}
5151

5252
create(id: string, element: any, options: AnimationOptions = {}): AnimationPlayer {
53-
const errors: any[] = [];
53+
const errors: string[] = [];
5454
const ast = this._animations[id];
5555
let instructions: AnimationTimelineInstruction[];
5656

packages/animations/browser/src/render/transition_animation_engine.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ export class AnimationTransitionNamespace {
224224
// this means that despite the value not changing, some inner params
225225
// have changed which means that the animation final styles need to be applied
226226
if (!objEquals(fromState.params, toState.params)) {
227-
const errors: any[] = [];
227+
const errors: string[] = [];
228228
const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);
229229
const toStyles = trigger.matchStyles(toState.value, toState.params, errors);
230230
if (errors.length) {

packages/animations/browser/src/util.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function _convertTimeValueToMS(value: number, unit: string): number {
4141
}
4242

4343
export function resolveTiming(
44-
timings: string|number|AnimateTimings, errors: any[], allowNegativeValues?: boolean) {
44+
timings: string|number|AnimateTimings, errors: string[], allowNegativeValues?: boolean) {
4545
return timings.hasOwnProperty('duration') ?
4646
<AnimateTimings>timings :
4747
parseTimeExpression(<string|number>timings, errors, allowNegativeValues);
@@ -197,7 +197,7 @@ export function normalizeAnimationEntry(steps: AnimationMetadata|
197197
}
198198

199199
export function validateStyleParams(
200-
value: string|number, options: AnimationOptions, errors: any[]) {
200+
value: string|number, options: AnimationOptions, errors: string[]) {
201201
const params = options.params || {};
202202
const matches = extractStyleParams(value);
203203
if (matches.length) {
@@ -225,7 +225,7 @@ export function extractStyleParams(value: string|number): string[] {
225225
}
226226

227227
export function interpolateParams(
228-
value: string|number, params: {[name: string]: any}, errors: any[]): string|number {
228+
value: string|number, params: {[name: string]: any}, errors: string[]): string|number {
229229
const original = value.toString();
230230
const str = original.replace(PARAM_REGEX, (_, varName) => {
231231
let localVal = params[varName];

0 commit comments

Comments
 (0)