Skip to content

Commit 7be297b

Browse files
committed
Lint - Test - Build ok
1 parent 6ad8866 commit 7be297b

File tree

12 files changed

+298
-246
lines changed

12 files changed

+298
-246
lines changed

.eslintrc.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
1+
module.exports = {
2+
extends: [require.resolve("@backstage/cli/config/eslint")],
3+
ignorePatterns: ["node_modules/", "dist/", "*.d.ts", ".eslintrc.js"]
4+
};

.gitignore

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
11
# Dependency directories
22
node_modules/
33

4-
#yarn
5-
**/.yarn/*
6-
!.yarn/releases
4+
# Yarn files
5+
.pnp.*
6+
.yarn/*
7+
!.yarn/patches
8+
!.yarn/plugins
9+
!.yarn/releases
10+
!.yarn/sdks
11+
!.yarn/versions
12+
13+
# Ignore build output directories
14+
node_modules/
15+
dist
16+
build/
17+
dist-types
18+
coverage
19+
20+
# Ignore TypeScript build info files
21+
*.tsbuildinfo
22+
# Ignore TypeScript declaration files
23+
*.d.ts
24+
# Local environment variables
25+
.env

lerna.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3+
"version": "1.0.0",
4+
"npmClient": "yarn"
5+
}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@haptoio/backstage-plugin-language-info",
2+
"name": "@hpatoio/backstage-plugin-language-info",
33
"version": "1.0.0",
44
"repository": {
55
"type": "git",
@@ -28,7 +28,7 @@
2828
"build:doc": "lerna run build:doc",
2929
"lint": "backstage-cli repo lint",
3030
"lint:all": "yarn lint && yarn prettier:check",
31-
"test": "CI=true lerna --scope '@liatrio/*' run test",
31+
"test": "CI=true lerna --scope '@hpatoio/*' run test",
3232
"prettier:check": "npx --yes prettier --check .",
3333
"prettier:fix": "npx --yes prettier --write .",
3434
"tsc:full": "tsc --skipLibCheck true --incremental false",

packages/backstage-plugin-language-info-card/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@hpatoio/plugin-language-info",
2+
"name": "@hpatoio/backstage-plugin-language-info-card",
33
"version": "1.0.23",
44
"license": "Apache-2.0",
55
"main": "src/index.ts",
@@ -11,9 +11,9 @@
1111
},
1212
"backstage": {
1313
"role": "frontend-plugin",
14-
"pluginId": "language-info",
14+
"pluginId": "backstage-plugin-language-info-card",
1515
"pluginPackages": [
16-
"@hpatoio/plugin-language-info"
16+
"@hpatoio/backstage-plugin-language-info-card"
1717
]
1818
},
1919
"sideEffects": false,

packages/backstage-plugin-language-info-processor/package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@internal/plugin-language-info-backend",
2+
"name": "@hpatoio/backstage-plugin-language-info-processor",
33
"version": "0.1.0",
44
"license": "Apache-2.0",
55
"private": true,
@@ -11,7 +11,11 @@
1111
"types": "dist/index.d.ts"
1212
},
1313
"backstage": {
14-
"role": "backend-plugin"
14+
"role": "backend-plugin",
15+
"pluginId": "backstage-plugin-language-info-processor",
16+
"pluginPackages": [
17+
"@hpatoio/backstage-plugin-language-info-processor"
18+
]
1519
},
1620
"scripts": {
1721
"start": "backstage-cli package start",

packages/backstage-plugin-language-info-processor/src/libs/LanguageInfoPhpReader.test.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { getVoidLogger } from '@backstage/backend-common';
22
import { UrlReaderService } from '@backstage/backend-plugin-api';
3-
import { LanguageInfoPhpReader } from './LanguageInfoPhpReader';
3+
import { languageInfoPhpReader } from './LanguageInfoPhpReader';
44

5-
describe('LanguageInfoPhpReader', () => {
5+
describe('languageInfoPhpReader', () => {
66
const mockUrlReader: jest.Mocked<UrlReaderService> = {
77
read: jest.fn(),
88
readUrl: jest.fn(),
@@ -27,7 +27,8 @@ describe('LanguageInfoPhpReader', () => {
2727
});
2828

2929
mockUrlReader.search.mockResolvedValueOnce({
30-
files: [{ path: 'composer.json', content: async () => Buffer.from(composerJson) }],
30+
files: [{ url: 'composer.json', content: async () => Buffer.from(composerJson) }],
31+
etag: 'etag'
3132
});
3233

3334
mockUrlReader.readUrl.mockResolvedValueOnce({
@@ -36,17 +37,18 @@ describe('LanguageInfoPhpReader', () => {
3637
etag: 'etag',
3738
});
3839

39-
const result = await LanguageInfoPhpReader(repoUrl, mockUrlReader, logger);
40+
const result = await languageInfoPhpReader(repoUrl, mockUrlReader, logger);
4041

4142
expect(result).toBe('>=7.4');
4243
});
4344

4445
it('should return dash when composer.json does not exist', async () => {
4546
mockUrlReader.search.mockResolvedValueOnce({
4647
files: [],
48+
etag: 'etag'
4749
});
4850

49-
const result = await LanguageInfoPhpReader(repoUrl, mockUrlReader, logger);
51+
const result = await languageInfoPhpReader(repoUrl, mockUrlReader, logger);
5052

5153
expect(result).toBe('-');
5254
});
@@ -60,7 +62,8 @@ describe('LanguageInfoPhpReader', () => {
6062
});
6163

6264
mockUrlReader.search.mockResolvedValueOnce({
63-
files: [{ path: 'composer.json', content: async () => Buffer.from(composerJson) }],
65+
files: [{ url: 'composer.json', content: async () => Buffer.from(composerJson) }],
66+
etag: 'etag'
6467
});
6568

6669
mockUrlReader.readUrl.mockResolvedValueOnce({
@@ -69,7 +72,7 @@ describe('LanguageInfoPhpReader', () => {
6972
etag: 'etag',
7073
});
7174

72-
const result = await LanguageInfoPhpReader(repoUrl, mockUrlReader, logger);
75+
const result = await languageInfoPhpReader(repoUrl, mockUrlReader, logger);
7376

7477
expect(result).toBe('-');
7578
});
@@ -78,7 +81,8 @@ describe('LanguageInfoPhpReader', () => {
7881
const invalidJson = '{invalid json';
7982

8083
mockUrlReader.search.mockResolvedValueOnce({
81-
files: [{ path: 'composer.json', content: async () => Buffer.from(invalidJson) }],
84+
files: [{ url: 'composer.json', content: async () => Buffer.from(invalidJson) }],
85+
etag: 'etag'
8286
});
8387

8488
mockUrlReader.readUrl.mockResolvedValueOnce({
@@ -87,15 +91,15 @@ describe('LanguageInfoPhpReader', () => {
8791
etag: 'etag',
8892
});
8993

90-
const result = await LanguageInfoPhpReader(repoUrl, mockUrlReader, logger);
94+
const result = await languageInfoPhpReader(repoUrl, mockUrlReader, logger);
9195

9296
expect(result).toBe('-');
9397
});
9498

9599
it('should return dash when urlReader throws an error', async () => {
96100
mockUrlReader.search.mockRejectedValueOnce(new Error('Network error'));
97101

98-
const result = await LanguageInfoPhpReader(repoUrl, mockUrlReader, logger);
102+
const result = await languageInfoPhpReader(repoUrl, mockUrlReader, logger);
99103

100104
expect(result).toBe('-');
101105
});

packages/backstage-plugin-language-info-processor/src/libs/LanguageInfoPhpReader.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { UrlReaderService, RootLoggerService } from '@backstage/backend-plugin-api';
22

3-
export async function LanguageInfoPhpReader(
3+
export async function languageInfoPhpReader(
44
repoUrl: string,
55
urlReader: UrlReaderService,
66
logger: RootLoggerService
@@ -22,7 +22,7 @@ export async function LanguageInfoPhpReader(
2222
return extractPhpVersionFromComposerFile(content.toString('utf-8'));
2323

2424
} catch (error) {
25-
logger.error(`Error checking or reading file ${filePath}: ${error.message}`);
25+
logger.error(`Error checking or reading file ${filePath}: ${(error as Error).message}`);
2626
return "-";
2727
}
2828
}

packages/backstage-plugin-language-info-processor/src/libs/LanguageInfoProcessor.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { getVoidLogger } from '@backstage/backend-common';
22
import { Entity } from '@backstage/catalog-model';
33
import { UrlReaderService } from '@backstage/backend-plugin-api';
44
import { LanguageInfoProcessor } from './LanguageInfoProcessor';
5-
import { LanguageInfoPhpReader } from './LanguageInfoPhpReader';
5+
import { languageInfoPhpReader } from './LanguageInfoPhpReader';
66

77
jest.mock('./LanguageInfoPhpReader');
88

@@ -28,7 +28,7 @@ describe('LanguageInfoProcessor', () => {
2828

2929
it('should process entities tagged with php and add language annotations', async () => {
3030
const mockPhpVersion = '>=7.4';
31-
(LanguageInfoPhpReader as jest.Mock).mockResolvedValueOnce(mockPhpVersion);
31+
(languageInfoPhpReader as jest.Mock).mockResolvedValueOnce(mockPhpVersion);
3232

3333
const entity: Entity = {
3434
apiVersion: 'backstage.io/v1alpha1',
@@ -68,7 +68,7 @@ describe('LanguageInfoProcessor', () => {
6868

6969
const result = await processor.preProcessEntity(entity);
7070

71-
expect(LanguageInfoPhpReader).not.toHaveBeenCalled();
71+
expect(languageInfoPhpReader).not.toHaveBeenCalled();
7272
expect(result).toEqual(entity);
7373
});
7474

@@ -88,13 +88,13 @@ describe('LanguageInfoProcessor', () => {
8888

8989
const result = await processor.preProcessEntity(entity);
9090

91-
expect(LanguageInfoPhpReader).not.toHaveBeenCalled();
91+
expect(languageInfoPhpReader).not.toHaveBeenCalled();
9292
expect(result).toEqual(entity);
9393
});
9494

9595
it('should preserve existing annotations when adding language info', async () => {
9696
const mockPhpVersion = '>=8.0';
97-
(LanguageInfoPhpReader as jest.Mock).mockResolvedValueOnce(mockPhpVersion);
97+
(languageInfoPhpReader as jest.Mock).mockResolvedValueOnce(mockPhpVersion);
9898

9999
const entity: Entity = {
100100
apiVersion: 'backstage.io/v1alpha1',

packages/backstage-plugin-language-info-processor/src/libs/LanguageInfoProcessor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { CatalogProcessor } from '@backstage/plugin-catalog-node';
22
import { Entity, getEntitySourceLocation } from '@backstage/catalog-model';
33
import { RootLoggerService, UrlReaderService } from '@backstage/backend-plugin-api';
4-
import { LanguageInfoPhpReader } from './LanguageInfoPhpReader';
4+
import { languageInfoPhpReader } from './LanguageInfoPhpReader';
55

66
export class LanguageInfoProcessor implements CatalogProcessor {
77

@@ -27,7 +27,7 @@ export class LanguageInfoProcessor implements CatalogProcessor {
2727

2828
this.logger.info('LanguageInfoProcessor PHP tag found.');
2929

30-
const phpVersion = await LanguageInfoPhpReader(location.target, this.urlReader, this.logger)
30+
const phpVersion = await languageInfoPhpReader(location.target, this.urlReader, this.logger)
3131

3232
entity.metadata.annotations = {
3333
...(entity.metadata.annotations || {}),

0 commit comments

Comments
 (0)