Skip to content

Commit 9d4405d

Browse files
authored
Merge pull request #218 from crazy-max/fix-non-iterable
fix intermediate values
2 parents cc5d04c + a69137f commit 9d4405d

File tree

6 files changed

+33
-24
lines changed

6 files changed

+33
-24
lines changed

__tests__/labeler.test.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
import {describe, expect, jest, test} from '@jest/globals';
2+
import * as fs from 'fs';
3+
import * as path from 'path';
4+
25
import {Inputs} from '../src/context';
36
import {Label, Labeler, LabelStatus} from '../src/labeler';
47

5-
import repoLabels from './fixtures/repoLabels.json';
8+
const fixturesDir = path.join(__dirname, 'fixtures');
9+
610
// eslint-disable-next-line @typescript-eslint/no-explicit-any
711
jest.spyOn(Labeler.prototype as any, 'getRepoLabels').mockImplementation((): Promise<Label[]> => {
8-
return <Promise<Label[]>>(repoLabels as unknown);
12+
return <Promise<Label[]>>JSON.parse(fs.readFileSync(path.join(fixturesDir, 'repoLabels.json'), 'utf-8'));
913
});
1014

1115
const cases = [
1216
[
1317
'labels.update.yml',
1418
{
1519
githubToken: 'n/a',
16-
yamlFile: './__tests__/fixtures/labels.update.yml',
20+
yamlFile: path.join(fixturesDir, 'labels.update.yml'),
1721
skipDelete: true,
1822
dryRun: true,
1923
exclude: []
@@ -32,7 +36,7 @@ const cases = [
3236
'labels.exclude1.yml',
3337
{
3438
githubToken: 'n/a',
35-
yamlFile: './__tests__/fixtures/labels.exclude1.yml',
39+
yamlFile: path.join(fixturesDir, 'labels.exclude1.yml'),
3640
skipDelete: true,
3741
dryRun: true,
3842
exclude: ['* d*', '*enhancement', '*fix']
@@ -51,7 +55,7 @@ const cases = [
5155
'labels.exclude2.yml',
5256
{
5357
githubToken: 'n/a',
54-
yamlFile: './__tests__/fixtures/labels.exclude2.yml',
58+
yamlFile: path.join(fixturesDir, 'labels.exclude2.yml'),
5559
skipDelete: true,
5660
dryRun: true,
5761
exclude: ['*fix']
@@ -70,7 +74,7 @@ const cases = [
7074
'labels.hexcodes.yml',
7175
{
7276
githubToken: 'n/a',
73-
yamlFile: './__tests__/fixtures/labels.hexcodes.yml',
77+
yamlFile: path.join(fixturesDir, 'labels.hexcodes.yml'),
7478
skipDelete: true,
7579
dryRun: true,
7680
exclude: []
@@ -106,7 +110,8 @@ describe('run', () => {
106110
delete: 0,
107111
error: 0
108112
};
109-
for (const label of await labeler.labels) {
113+
const labels = await labeler.labels;
114+
for (const label of labels) {
110115
switch (label.ghaction_status) {
111116
case LabelStatus.Exclude: {
112117
res.exclude++;

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"matcher": "^3.0.0"
3333
},
3434
"devDependencies": {
35+
"@types/js-yaml": "^4.0.9",
3536
"@types/node": "^20.6.0",
3637
"@typescript-eslint/eslint-plugin": "^6.6.0",
3738
"@typescript-eslint/parser": "^6.6.0",

src/labeler.ts

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ export class Labeler {
212212
);
213213
}
214214

215-
for (const fileLabel of await this.fileLabels) {
215+
const fileLabels = await this.fileLabels;
216+
for (const fileLabel of fileLabels) {
216217
// Allow color hex codes (e.g., '#cccccc') to be set even though GitHub's API requires the # sign not to be present.
217218
fileLabel.color = this.sanitizeColorString(fileLabel.color);
218219

@@ -285,7 +286,8 @@ export class Labeler {
285286
}
286287

287288
// Delete
288-
for (const repoLabel of await this.repoLabels) {
289+
const repoLabels = await this.repoLabels;
290+
for (const repoLabel of repoLabels) {
289291
if (await this.getFileLabel(repoLabel.name)) {
290292
continue;
291293
}
@@ -308,26 +310,19 @@ export class Labeler {
308310
}
309311

310312
private async getRepoLabel(name: string): Promise<Label | undefined> {
311-
for (const repoLabel of await this.repoLabels) {
312-
if (name == repoLabel.name) {
313-
return repoLabel;
314-
}
315-
}
316-
return undefined;
313+
const repoLabels = await this.repoLabels;
314+
return repoLabels.find(repoLabel => repoLabel.name === name);
317315
}
318316

319317
private async getFileLabel(name: string): Promise<Label | undefined> {
320-
for (const fileLabel of await this.fileLabels) {
321-
if (name == fileLabel.name || name == fileLabel.from_name) {
322-
return fileLabel;
323-
}
324-
}
325-
return undefined;
318+
const fileLabels = await this.fileLabels;
319+
return fileLabels.find(fileLabel => name === fileLabel.name || name === fileLabel.from_name);
326320
}
327321

328322
async printRepoLabels() {
329323
const labels = Array<Label>();
330-
for (const repoLabel of await this.repoLabels) {
324+
const repoLabels = await this.repoLabels;
325+
for (const repoLabel of repoLabels) {
331326
labels.push({
332327
name: repoLabel.name,
333328
color: repoLabel.color,

yarn.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1592,6 +1592,13 @@ __metadata:
15921592
languageName: node
15931593
linkType: hard
15941594

1595+
"@types/js-yaml@npm:^4.0.9":
1596+
version: 4.0.9
1597+
resolution: "@types/js-yaml@npm:4.0.9"
1598+
checksum: e5e5e49b5789a29fdb1f7d204f82de11cb9e8f6cb24ab064c616da5d6e1b3ccfbf95aa5d1498a9fbd3b9e745564e69b4a20b6c530b5a8bbb2d4eb830cda9bc69
1599+
languageName: node
1600+
linkType: hard
1601+
15951602
"@types/json-schema@npm:^7.0.12":
15961603
version: 7.0.12
15971604
resolution: "@types/json-schema@npm:7.0.12"
@@ -3216,6 +3223,7 @@ __metadata:
32163223
dependencies:
32173224
"@actions/core": ^1.10.0
32183225
"@actions/github": ^5.1.1
3226+
"@types/js-yaml": ^4.0.9
32193227
"@types/node": ^20.6.0
32203228
"@typescript-eslint/eslint-plugin": ^6.6.0
32213229
"@typescript-eslint/parser": ^6.6.0

0 commit comments

Comments
 (0)