From 44239714e6d664ce884023b31af7d95c8e37ed3f Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Thu, 8 Dec 2022 15:22:34 -0500 Subject: [PATCH] Replace `for` loops with `for...of` --- actions-languageservice/src/complete.ts | 7 ++----- .../src/context-providers/matrix.ts | 12 ++++-------- .../src/context-providers/needs.ts | 3 +-- .../src/context-providers/strategy.ts | 3 +-- .../src/context/workflow-context.ts | 4 +--- actions-languageservice/src/utils/find-token.ts | 8 +++----- package-lock.json | 12 ++++++------ 7 files changed, 18 insertions(+), 31 deletions(-) diff --git a/actions-languageservice/src/complete.ts b/actions-languageservice/src/complete.ts index ca9d58c..f9fc982 100644 --- a/actions-languageservice/src/complete.ts +++ b/actions-languageservice/src/complete.ts @@ -159,8 +159,7 @@ export function getExistingValues(token: TemplateToken | null, parent: TemplateT if (isSequence(parent)) { const sequenceValues = new Set(); - for (let i = 0; i < parent.count; i++) { - const t = parent.get(i); + for (const t of parent) { if (isString(t)) { // Should we support other literal values here? sequenceValues.add(t.value); @@ -176,9 +175,7 @@ export function getExistingValues(token: TemplateToken | null, parent: TemplateT const mapKeys = new Set(); const mapToken = parent as MappingToken; - for (let i = 0; i < mapToken.count; i++) { - const key = mapToken.get(i).key; - + for (const {key} of mapToken) { if (isString(key)) { mapKeys.add(key.value); } diff --git a/actions-languageservice/src/context-providers/matrix.ts b/actions-languageservice/src/context-providers/matrix.ts index c13f6ac..01f7caf 100644 --- a/actions-languageservice/src/context-providers/matrix.ts +++ b/actions-languageservice/src/context-providers/matrix.ts @@ -98,8 +98,7 @@ function matrixProperties(matrix: MappingToken): Map | undef let include: SequenceToken | undefined; - for (let i = 0; i < matrix.count; i++) { - const pair = matrix.get(i); + for (const pair of matrix) { if (!isString(pair.key)) { continue; } @@ -123,8 +122,7 @@ function matrixProperties(matrix: MappingToken): Map | undef } const values = new Set(); - for (let j = 0; j < pair.value.count; j++) { - const value = pair.value.get(j); + for (const value of pair.value) { // The parser should coerce matrix values to strings, ignore expressions if (isString(value)) { values.add(value.value); @@ -137,14 +135,12 @@ function matrixProperties(matrix: MappingToken): Map | undef } if (include) { - for (let i = 0; i < include.count; i++) { - const item = include.get(i); + for (const item of include) { if (!isMapping(item)) { continue; } - for (let j = 0; j < item.count; j++) { - const pair = item.get(j); + for (const pair of item) { addValueToProperties(properties, pair); } } diff --git a/actions-languageservice/src/context-providers/needs.ts b/actions-languageservice/src/context-providers/needs.ts index 92ec131..af11b9d 100644 --- a/actions-languageservice/src/context-providers/needs.ts +++ b/actions-languageservice/src/context-providers/needs.ts @@ -34,8 +34,7 @@ function jobOutputs(job?: Job): data.Dictionary { return d; } - for (let i = 0; i < job.outputs.count; ++i) { - const output = job.outputs.get(i); + for (const output of job.outputs) { if (!isString(output.key)) { continue; } diff --git a/actions-languageservice/src/context-providers/strategy.ts b/actions-languageservice/src/context-providers/strategy.ts index 8160859..0142cf0 100644 --- a/actions-languageservice/src/context-providers/strategy.ts +++ b/actions-languageservice/src/context-providers/strategy.ts @@ -17,8 +17,7 @@ export function getStrategyContext(workflowContext: WorkflowContext): data.Dicti } const strategyContext = new data.Dictionary(); - for (let i = 0; i < strategy.count; i++) { - const pair = strategy.get(i); + for (const pair of strategy) { if (!isString(pair.key)) { continue; } diff --git a/actions-languageservice/src/context/workflow-context.ts b/actions-languageservice/src/context/workflow-context.ts index 898aa2d..1754ffc 100644 --- a/actions-languageservice/src/context/workflow-context.ts +++ b/actions-languageservice/src/context/workflow-context.ts @@ -31,9 +31,7 @@ export function getWorkflowContext( let stepToken: MappingToken | undefined = undefined; // Iterate through the token path to find the job and step - for (let i = 0; i < tokenPath.length; ++i) { - const token = tokenPath[i]; - + for (const token of tokenPath) { switch (token.definition?.key) { case "job-id": { const jobID = (token as StringToken).value; diff --git a/actions-languageservice/src/utils/find-token.ts b/actions-languageservice/src/utils/find-token.ts index 09c4d1b..b133001 100644 --- a/actions-languageservice/src/utils/find-token.ts +++ b/actions-languageservice/src/utils/find-token.ts @@ -69,9 +69,7 @@ export function findToken(pos: Position, root?: TemplateToken): TokenResult { switch (token.templateTokenType) { case TokenType.Mapping: const mappingToken = token as MappingToken; - for (let i = 0; i < mappingToken.count; i++) { - const {key, value} = mappingToken.get(i); - + for (const {key, value} of mappingToken) { // If the position is within the key, immediately return it as the token. if (posInToken(pos, key)) { return { @@ -104,11 +102,11 @@ export function findToken(pos: Position, root?: TemplateToken): TokenResult { case TokenType.Sequence: const sequenceToken = token as SequenceToken; - for (let i = 0; i < sequenceToken.count; i++) { + for (const token of sequenceToken) { s.push({ parent: sequenceToken, keyToken: null, - token: sequenceToken.get(i), + token: token, path: [...path, sequenceToken] }); } diff --git a/package-lock.json b/package-lock.json index 18ee009..b4cb599 100644 --- a/package-lock.json +++ b/package-lock.json @@ -698,9 +698,9 @@ "link": true }, "node_modules/@github/actions-workflow-parser": { - "version": "0.0.29", - "resolved": "https://npm.pkg.github.com/download/@github/actions-workflow-parser/0.0.29/ecf3d1c9727e4f5f71e52863f456672b173b7096", - "integrity": "sha512-VJLRv+GHD0E7S9uUCH89jIIA3iMdKRcqhrKwKq5TE5u/6Lap5nj1Juy48tBoCFAog07lhuqyqgWjP6FHHyAvPg==", + "version": "0.0.30", + "resolved": "https://npm.pkg.github.com/download/@github/actions-workflow-parser/0.0.30/2c95f0614784e740bc544d2a8f7b1661e9526920", + "integrity": "sha512-Gr/fDCh+dVZVCgDAo67gPVqV+cVrrhBPkVIaxnpyBVnPUtVftthY4+Klg3r37gNRSchxuORyxKQk/cPDrZwxoQ==", "license": "MIT", "dependencies": { "@github/actions-expressions": "*", @@ -13533,9 +13533,9 @@ } }, "@github/actions-workflow-parser": { - "version": "0.0.29", - "resolved": "https://npm.pkg.github.com/download/@github/actions-workflow-parser/0.0.29/ecf3d1c9727e4f5f71e52863f456672b173b7096", - "integrity": "sha512-VJLRv+GHD0E7S9uUCH89jIIA3iMdKRcqhrKwKq5TE5u/6Lap5nj1Juy48tBoCFAog07lhuqyqgWjP6FHHyAvPg==", + "version": "0.0.30", + "resolved": "https://npm.pkg.github.com/download/@github/actions-workflow-parser/0.0.30/2c95f0614784e740bc544d2a8f7b1661e9526920", + "integrity": "sha512-Gr/fDCh+dVZVCgDAo67gPVqV+cVrrhBPkVIaxnpyBVnPUtVftthY4+Klg3r37gNRSchxuORyxKQk/cPDrZwxoQ==", "requires": { "@github/actions-expressions": "*", "yaml": "^2.0.0-8"