Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: use tegg v4 #765

Merged
merged 15 commits into from
Mar 5, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions app.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
import path from 'node:path';
import { readFile } from 'node:fs/promises';
import { Application } from 'egg';
import { ChangesStreamService } from './app/core/service/ChangesStreamService';
import { Application, ILifecycleBoot } from 'egg';
// ReferenceError: Cannot access 'TaskRepository' before initialization
import { ChangesStreamService } from './app/core/service/ChangesStreamService.js';

declare module 'egg' {
interface Application {
binaryHTML: string;
}
}

export default class CnpmcoreAppHook {
export default class CnpmcoreAppHook implements ILifecycleBoot {
private readonly app: Application;

constructor(app: Application) {
this.app = app;
this.app.binaryHTML = '';
}

async configWillLoad() {
configWillLoad() {
const app = this.app;
// https://github.com/eggjs/tegg/blob/master/plugin/orm/app.ts#L37
// store query sql to log
// @ts-expect-error has no logger property https://github.com/eggjs/tegg/pull/293
app.config.orm.logger = {
// @ts-expect-error has no logger property https://github.com/eggjs/tegg/pull/293
...app.config.orm.logger,
logQuery(sql: string, duration: number) {
app.getLogger('sqlLogger').info('[%s] %s', duration, sql);
Expand All @@ -40,6 +43,7 @@ export default class CnpmcoreAppHook {
// 应用退出时执行
// 需要暂停当前执行的 changesStream task
async beforeClose() {
// const { ChangesStreamService } = await import('./app/core/service/ChangesStreamService.js');
const changesStreamService = await this.app.getEggObject(ChangesStreamService);
await changesStreamService.suspendSync(true);
}
Expand Down
2 changes: 1 addition & 1 deletion app/common/FileUtil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import url from 'node:url';
import { randomBytes } from 'node:crypto';
import { EggContextHttpClient, HttpClientResponse } from 'egg';
import mime from 'mime-types';
import dayjs from './dayjs';
import dayjs from './dayjs.js';

interface DownloadToTempfileOptionalConfig {
retries?: number,
Expand Down
2 changes: 1 addition & 1 deletion app/common/PackageUtil.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Readable } from 'node:stream';
import { pipeline } from 'node:stream/promises';
import * as ssri from 'ssri';
import tar from '@fengmk2/tar';
import { AuthorType, PackageJSONType } from '../repository/PackageRepository';
import { AuthorType, PackageJSONType } from '../repository/PackageRepository.js';


// /@cnpm%2ffoo
Expand Down
2 changes: 1 addition & 1 deletion app/common/adapter/BugVersionStore.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { AccessLevel, SingletonProto } from '@eggjs/tegg';
import { BugVersion } from '../../core/entity/BugVersion';
import { BugVersion } from '../../core/entity/BugVersion.js';

@SingletonProto({
accessLevel: AccessLevel.PUBLIC,
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/NFSAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import {
} from '@eggjs/tegg';
import { Pointcut } from '@eggjs/tegg/aop';
import { EggLogger } from 'egg';
import { AsyncTimer } from '../aop/AsyncTimer';
import { NFSClient } from '../typing';
import { AsyncTimer } from '../aop/AsyncTimer.js';
import { NFSClient } from '../typing.js';

const INSTANCE_NAME = 'nfsAdapter';

Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/NPMRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import {
HttpClientRequestOptions,
HttpClientResponse,
} from 'egg';
import { PackageManifestType } from '../../repository/PackageRepository';
import { isTimeoutError } from '../ErrorUtil';
import { PackageManifestType } from '../../repository/PackageRepository.js';
import { isTimeoutError } from '../ErrorUtil.js';

type HttpMethod = HttpClientRequestOptions['method'];

Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/AbstractBinary.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ImplDecorator, Inject, QualifierImplDecoratorUtil } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { EggHttpClient, EggLogger } from 'egg';
import { BinaryName, BinaryTaskConfig } from '../../../../config/binaries';
import { BinaryType } from '../../enum/Binary.js';
import { BinaryName, BinaryTaskConfig } from '../../../../config/binaries.js';

export type BinaryItem = {
name: string;
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/ApiBinary.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { Inject, SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { EggAppConfig } from 'egg';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Api)
Expand Down
8 changes: 4 additions & 4 deletions app/common/adapter/binary/BucketBinary.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName, BinaryTaskConfig } from '../../../../config/binaries';
import path from 'node:path';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary.js';
import binaries, { BinaryName, BinaryTaskConfig } from '../../../../config/binaries.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Bucket)
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/ChromeForTestingBinary.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { basename } from 'node:path';
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.ChromeForTesting)
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/CypressBinary.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Cypress)
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/EdgedriverBinary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import path from 'node:path';
import { SingletonProto } from '@eggjs/tegg';
import {
AbstractBinary, FetchResult, BinaryItem, BinaryAdapter,
} from './AbstractBinary';
import { BinaryType } from '../../enum/Binary';
} from './AbstractBinary.js';
import { BinaryType } from '../../enum/Binary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Edgedriver)
Expand Down
8 changes: 4 additions & 4 deletions app/common/adapter/binary/ElectronBinary.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName } from '../../../../config/binaries';
import { BinaryAdapter, BinaryItem, FetchResult } from './AbstractBinary';
import { GithubBinary } from './GithubBinary';
import binaries, { BinaryName } from '../../../../config/binaries.js';
import { BinaryType } from '../../enum/Binary.js';
import { BinaryAdapter, BinaryItem, FetchResult } from './AbstractBinary.js';
import { GithubBinary } from './GithubBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Electron)
Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/binary/GithubBinary.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName, BinaryTaskConfig } from '../../../../config/binaries';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import binaries, { BinaryName, BinaryTaskConfig } from '../../../../config/binaries.js';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.GitHub)
Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/binary/ImageminBinary.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName } from '../../../../config/binaries';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import binaries, { BinaryName } from '../../../../config/binaries.js';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Imagemin)
Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/binary/NodeBinary.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { basename } from 'node:path';
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName } from '../../../../config/binaries';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BinaryType } from '../../enum/Binary.js';
import binaries, { BinaryName } from '../../../../config/binaries.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Node)
Expand Down
8 changes: 4 additions & 4 deletions app/common/adapter/binary/NodePreGypBinary.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName } from '../../../../config/binaries';
import { join } from 'node:path';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { SingletonProto } from '@eggjs/tegg';
import binaries, { BinaryName } from '../../../../config/binaries.js';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.NodePreGyp)
Expand Down
8 changes: 4 additions & 4 deletions app/common/adapter/binary/NwjsBinary.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries from '../../../../config/binaries';
import { FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BucketBinary } from './BucketBinary';
import binaries from '../../../../config/binaries.js';
import { BinaryType } from '../../enum/Binary.js';
import { FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';
import { BucketBinary } from './BucketBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Nwjs)
Expand Down
5 changes: 2 additions & 3 deletions app/common/adapter/binary/PlaywrightBinary.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@

import { AbstractBinary, BinaryAdapter, BinaryItem, FetchResult } from './AbstractBinary';
import util from 'node:util';
import path from 'node:path';
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, BinaryAdapter, BinaryItem, FetchResult } from './AbstractBinary.js';

const PACKAGE_URL = 'https://registry.npmjs.com/playwright-core';
const DOWNLOAD_HOST = 'https://playwright.azureedge.net/';
Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/binary/PrismaBinary.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import path from 'node:path';
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import binaries, { BinaryName } from '../../../../config/binaries';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BinaryType } from '../../enum/Binary.js';
import binaries, { BinaryName } from '../../../../config/binaries.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Prisma)
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/PuppeteerBinary.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Puppeteer)
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/binary/SqlcipherBinary.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SingletonProto } from '@eggjs/tegg';
import { BinaryType } from '../../enum/Binary';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary';
import { BinaryType } from '../../enum/Binary.js';
import { AbstractBinary, FetchResult, BinaryItem, BinaryAdapter } from './AbstractBinary.js';

@SingletonProto()
@BinaryAdapter(BinaryType.Sqlcipher)
Expand Down
4 changes: 2 additions & 2 deletions app/common/adapter/changesStream/AbstractChangesStream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import {
Inject,
QualifierImplDecoratorUtil,
} from '@eggjs/tegg';
import { RegistryType } from '../../../common/enum/Registry';
import { Registry } from '../../../core/entity/Registry';
import { RegistryType } from '../../../common/enum/Registry.js';
import { Registry } from '../../../core/entity/Registry.js';
import {
EggHttpClient,
EggLogger,
Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/changesStream/CnpmcoreChangesStream.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { RegistryType } from '../../../common/enum/Registry';
import { Registry } from '../../../core/entity/Registry';
import { E500 } from 'egg-errors';
import { AbstractChangeStream, RegistryChangesStream } from './AbstractChangesStream';
import { RegistryType } from '../../../common/enum/Registry.js';
import { Registry } from '../../../core/entity/Registry.js';
import { AbstractChangeStream, RegistryChangesStream } from './AbstractChangesStream.js';

@SingletonProto()
@RegistryChangesStream(RegistryType.Cnpmcore)
Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/changesStream/CnpmjsorgChangesStream.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { RegistryType } from '../../../common/enum/Registry';
import { Registry } from '../../../core/entity/Registry';
import { E500 } from 'egg-errors';
import { AbstractChangeStream, RegistryChangesStream } from './AbstractChangesStream';
import { RegistryType } from '../../../common/enum/Registry.js';
import { Registry } from '../../../core/entity/Registry.js';
import { AbstractChangeStream, RegistryChangesStream } from './AbstractChangesStream.js';

const MAX_LIMIT = 10000;

Expand Down
6 changes: 3 additions & 3 deletions app/common/adapter/changesStream/NpmChangesStream.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { SingletonProto } from '@eggjs/tegg';
import { E500 } from 'egg-errors';
import { RegistryType } from '../../../common/enum/Registry';
import { Registry } from '../../../core/entity/Registry';
import { AbstractChangeStream, ChangesStreamChange, RegistryChangesStream } from './AbstractChangesStream';
import { RegistryType } from '../../../common/enum/Registry.js';
import { Registry } from '../../../core/entity/Registry.js';
import { AbstractChangeStream, ChangesStreamChange, RegistryChangesStream } from './AbstractChangesStream.js';

@SingletonProto()
@RegistryChangesStream(RegistryType.Npm)
Expand Down
2 changes: 1 addition & 1 deletion app/common/dayjs.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import dayjs from 'dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat';
import customParseFormat from 'dayjs/plugin/customParseFormat.js';
dayjs.extend(customParseFormat);

export default dayjs;
3 changes: 2 additions & 1 deletion app/common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
"name": "cnpmcore-common",
"eggModule": {
"name": "cnpmcoreCommon"
}
},
"type": "module"
}
2 changes: 1 addition & 1 deletion app/common/typing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Readable } from 'node:stream';
import { IncomingHttpHeaders } from 'node:http';
import { EggContext } from '@eggjs/tegg';
import { estypes } from '@elastic/elasticsearch';
import { CnpmcoreConfig } from '../port/config';
import { CnpmcoreConfig } from '../port/config.js';

export interface UploadResult {
key: string;
Expand Down
4 changes: 2 additions & 2 deletions app/core/entity/Binary.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Entity, EntityData } from './Entity';
import { EasyData, EntityUtil } from '../util/EntityUtil';
import { Entity, EntityData } from './Entity.js';
import { EasyData, EntityUtil } from '../util/EntityUtil.js';

interface BinaryData extends EntityData {
binaryId: string;
Expand Down
4 changes: 2 additions & 2 deletions app/core/entity/Change.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Entity, EntityData } from './Entity';
import { EasyData, EntityUtil } from '../util/EntityUtil';
import { Entity, EntityData } from './Entity.js';
import { EasyData, EntityUtil } from '../util/EntityUtil.js';

interface ChangeData extends EntityData {
changeId: string;
Expand Down
4 changes: 2 additions & 2 deletions app/core/entity/Dist.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Entity, EntityData } from './Entity';
import { EasyData, EntityUtil } from '../util/EntityUtil';
import { Entity, EntityData } from './Entity.js';
import { EasyData, EntityUtil } from '../util/EntityUtil.js';

interface DistData extends EntityData {
distId: string;
Expand Down
6 changes: 3 additions & 3 deletions app/core/entity/Hook.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Entity, EntityData } from './Entity';
import { EasyData, EntityUtil } from '../util/EntityUtil';
import { HookType } from '../../common/enum/Hook';
import crypto from 'node:crypto';
import { Entity, EntityData } from './Entity.js';
import { EasyData, EntityUtil } from '../util/EntityUtil.js';
import { HookType } from '../../common/enum/Hook.js';

export type CreateHookData = Omit<EasyData<HookData, 'hookId'>, 'enable' | 'latestTaskId'>;

Expand Down
2 changes: 1 addition & 1 deletion app/core/entity/HookEvent.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { HookEventType } from '../../common/enum/Hook';
import { HookEventType } from '../../common/enum/Hook.js';

export interface PublishChangePayload {
'dist-tag'?: string;
Expand Down
8 changes: 4 additions & 4 deletions app/core/entity/Package.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Entity, EntityData } from './Entity';
import { EasyData, EntityUtil } from '../util/EntityUtil';
import { Dist } from './Dist';
import { getFullname } from '../../common/PackageUtil';
import { Entity, EntityData } from './Entity.js';
import { EasyData, EntityUtil } from '../util/EntityUtil.js';
import { Dist } from './Dist.js';
import { getFullname } from '../../common/PackageUtil.js';

interface PackageData extends EntityData {
scope: string;
Expand Down
4 changes: 2 additions & 2 deletions app/core/entity/PackageTag.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Entity, EntityData } from './Entity';
import { EasyData, EntityUtil } from '../util/EntityUtil';
import { Entity, EntityData } from './Entity.js';
import { EasyData, EntityUtil } from '../util/EntityUtil.js';

interface PackageTagData extends EntityData {
packageId: string;
Expand Down
Loading
Loading