Skip to content

Commit

Permalink
fix: bad declaration file (#320)
Browse files Browse the repository at this point in the history
The declaration files for `npm-registry-fetch` package do not expose the error-class it throws when a fetch failed. Because of this, we wrote our own declaration file for it.

The declaration file was incorrectly written. It placed the error class into the packages `index` file even though it is inside `lib/errors`. After updating the declaration and relevant imports the error is now fixed.

See #319.
  • Loading branch information
ComradeVanti committed May 2, 2024
1 parent 348505d commit 3d6d888
Show file tree
Hide file tree
Showing 24 changed files with 36 additions and 45 deletions.
8 changes: 2 additions & 6 deletions src/cli/cmd-add.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,7 @@ import {
UnityProjectManifest,
} from "../domain/project-manifest";
import { CmdOptions } from "./options";
import {
PackumentResolveError,
pickMostFixable,

} from "../packument-resolving";
import { PackumentResolveError, pickMostFixable } from "../packument-resolving";
import { SemanticVersion } from "../domain/semantic-version";
import { areArraysEqual } from "../utils/array-utils";
import { Err, Ok, Result } from "ts-results-es";
Expand All @@ -52,7 +48,7 @@ import { logValidDependency } from "./dependency-logging";
import { unityRegistryUrl } from "../domain/registry-url";
import { tryGetTargetEditorVersionFor } from "../domain/package-manifest";
import { FetchPackumentError } from "../services/fetch-packument";
import {VersionNotFoundError} from "../domain/packument";
import { VersionNotFoundError } from "../domain/packument";

export class InvalidPackumentDataError extends CustomError {
private readonly _class = "InvalidPackumentDataError";
Expand Down
7 changes: 2 additions & 5 deletions src/cli/cmd-deps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,7 @@ import {
splitPackageReference,
} from "../domain/package-reference";
import { CmdOptions } from "./options";
import {
PackumentResolveError,

} from "../packument-resolving";
import { PackumentResolveError } from "../packument-resolving";
import { PackumentNotFoundError } from "../common-errors";
import { Ok, Result } from "ts-results-es";
import {
Expand All @@ -18,7 +15,7 @@ import {
} from "../services/dependency-resolving";
import { Logger } from "npmlog";
import { logValidDependency } from "./dependency-logging";
import {VersionNotFoundError} from "../domain/packument";
import { VersionNotFoundError } from "../domain/packument";

export type DepsError = EnvParseError | DependencyResolveError;

Expand Down
2 changes: 1 addition & 1 deletion src/cli/cmd-search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { EnvParseError, ParseEnvService } from "../services/parse-env";
import { CmdOptions } from "./options";
import { formatAsTable } from "./output-formatting";
import { AsyncResult, Ok, Result } from "ts-results-es";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import {
SearchedPackument,
SearchRegistryService,
Expand Down
7 changes: 2 additions & 5 deletions src/cli/error-logging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@ import {
} from "../io/project-manifest-io";
import { NotFoundError } from "../io/file-io";
import { Logger } from "npmlog";
import {
PackumentResolveError,

} from "../packument-resolving";
import { PackumentResolveError } from "../packument-resolving";
import { PackumentNotFoundError } from "../common-errors";
import { DomainName } from "../domain/domain-name";
import {VersionNotFoundError} from "../domain/packument";
import { VersionNotFoundError } from "../domain/packument";

/**
* Logs a {@link ManifestLoadError} to the console.
Expand Down
1 change: 0 additions & 1 deletion src/io/upm-config-io.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,3 @@ export const trySaveUpmConfig = (
const content = TOML.stringify(config);
return writeFile(configPath, content).map(() => configPath);
};

2 changes: 1 addition & 1 deletion src/services/dependency-resolving.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ import {
} from "./resolve-latest-version";
import { Err, Ok, Result } from "ts-results-es";
import { FetchPackumentError } from "./fetch-packument";
import { HttpErrorBase } from "npm-registry-fetch";
import { PackumentNotFoundError } from "../common-errors";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";

export type DependencyBase = {
/**
Expand Down
2 changes: 1 addition & 1 deletion src/services/fetch-packument.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import RegClient from "another-npm-registry-client";
import { AsyncResult, Err, Ok } from "ts-results-es";
import { assertIsHttpError } from "../utils/error-type-guards";
import { UnityPackument } from "../domain/packument";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import { DomainName } from "../domain/domain-name";
import { Registry } from "../domain/registry";

Expand Down
3 changes: 2 additions & 1 deletion src/services/get-all-packuments.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Registry } from "../domain/registry";
import { AsyncResult, Err, Ok } from "ts-results-es";
import npmFetch, { HttpErrorBase } from "npm-registry-fetch";
import npmFetch from "npm-registry-fetch";
import { assertIsHttpError } from "../utils/error-type-guards";
import { getNpmFetchOptions, SearchedPackument } from "./search-registry";
import { DomainName } from "../domain/domain-name";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";

/**
* The result of querying the /-/all endpoint.
Expand Down
2 changes: 1 addition & 1 deletion src/services/resolve-latest-version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { AsyncResult, Err, Ok } from "ts-results-es";
import { SemanticVersion } from "../domain/semantic-version";
import { PackumentNotFoundError } from "../common-errors";
import { FetchPackumentError, FetchPackumentService } from "./fetch-packument";
import {NoVersionsError, tryGetLatestVersion} from "../domain/packument";
import { NoVersionsError, tryGetLatestVersion } from "../domain/packument";
import { recordKeys } from "../utils/record-utils";

/**
Expand Down
3 changes: 1 addition & 2 deletions src/services/resolve-remote-packument.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@ import {
PackumentResolveError,
ResolvableVersion,
ResolvedPackument,

} from "../packument-resolving";
import { PackumentNotFoundError } from "../common-errors";
import { FetchPackumentError, FetchPackumentService } from "./fetch-packument";
import {tryResolvePackumentVersion} from "../domain/packument";
import { tryResolvePackumentVersion } from "../domain/packument";

/**
* Service function for resolving remove packuments.
Expand Down
3 changes: 2 additions & 1 deletion src/services/search-registry.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { AsyncResult, Err, Ok } from "ts-results-es";
import npmFetch, { HttpErrorBase } from "npm-registry-fetch";
import npmFetch from "npm-registry-fetch";
import npmSearch from "libnpmsearch";
import { assertIsHttpError } from "../utils/error-type-guards";
import { UnityPackument } from "../domain/packument";
import { SemanticVersion } from "../domain/semantic-version";
import { Registry } from "../domain/registry";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";

/**
* A type representing a searched packument. Instead of having all versions
Expand Down
8 changes: 0 additions & 8 deletions src/types/npm-registry-fetch.d.ts

This file was deleted.

8 changes: 8 additions & 0 deletions src/types/npm-registry-fetch/lib/errors.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import {Response} from "node-fetch";

declare module "npm-registry-fetch/lib/errors" {
export class HttpErrorBase extends Error {
statusCode: Response["status"];
code: `E${Response["status"]}}` | `E${string}`;
}
}
2 changes: 1 addition & 1 deletion src/utils/error-type-guards.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { HttpErrorBase } from "npm-registry-fetch";
import assert, { AssertionError } from "assert";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";

/**
* @throws {AssertionError} The given parameter is not an error.
Expand Down
2 changes: 1 addition & 1 deletion test/cli/cmd-add.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import {
WriteProjectManifest,
} from "../../src/io/project-manifest-io";
import { makePackageReference } from "../../src/domain/package-reference";
import {VersionNotFoundError} from "../../src/domain/packument";
import { VersionNotFoundError } from "../../src/domain/packument";

const somePackage = makeDomainName("com.some.package");
const otherPackage = makeDomainName("com.other.package");
Expand Down
2 changes: 1 addition & 1 deletion test/cli/cmd-deps.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { makeSemanticVersion } from "../../src/domain/semantic-version";
import { PackumentNotFoundError } from "../../src/common-errors";
import { ResolveDependenciesService } from "../../src/services/dependency-resolving";
import { mockService } from "../services/service.mock";
import {VersionNotFoundError} from "../../src/domain/packument";
import { VersionNotFoundError } from "../../src/domain/packument";

const somePackage = makeDomainName("com.some.package");
const otherPackage = makeDomainName("com.other.package");
Expand Down
2 changes: 1 addition & 1 deletion test/cli/cmd-search.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from "../../src/services/search-registry";
import { exampleRegistryUrl } from "../domain/data-registry";
import { Err, Ok } from "ts-results-es";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import {
AllPackumentsResult,
GetAllPackumentsService,
Expand Down
2 changes: 1 addition & 1 deletion test/services/fetch-packument.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { buildPackument } from "../domain/data-packument";
import { makeFetchPackumentService } from "../../src/services/fetch-packument";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import { makeDomainName } from "../../src/domain/domain-name";
import RegClient from "another-npm-registry-client";
import { Registry } from "../../src/domain/registry";
Expand Down
3 changes: 2 additions & 1 deletion test/services/get-all-packuments.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import npmFetch, { HttpErrorBase } from "npm-registry-fetch";
import npmFetch from "npm-registry-fetch";
import { makeGetAllPackumentsService } from "../../src/services/get-all-packuments";
import { Registry } from "../../src/domain/registry";
import { exampleRegistryUrl } from "../domain/data-registry";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";

jest.mock("npm-registry-fetch");

Expand Down
2 changes: 1 addition & 1 deletion test/services/npm-login.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
makeNpmLoginService,
} from "../../src/services/npm-login";
import RegClient from "another-npm-registry-client";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import { exampleRegistryUrl } from "../domain/data-registry";
import { mockRegClientAddUserResult } from "./registry-client.mock";

Expand Down
4 changes: 2 additions & 2 deletions test/services/packument-resolving.mock.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Err } from "ts-results-es";
import { PackumentNotFoundError } from "../../src/common-errors";
import {
tryResolvePackumentVersion,
UnityPackument
tryResolvePackumentVersion,
UnityPackument,
} from "../../src/domain/packument";
import { RegistryUrl } from "../../src/domain/registry-url";
import { ResolveRemotePackumentService } from "../../src/services/resolve-remote-packument";
Expand Down
2 changes: 1 addition & 1 deletion test/services/registry-client.mock.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import RegClient, { AddUserResponse } from "another-npm-registry-client";
import { UnityPackument } from "../../src/domain/packument";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import { Response } from "request";

export function mockRegClientGetResult(
Expand Down
2 changes: 1 addition & 1 deletion test/services/resolve-latest-version.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { makeResolveLatestVersionService } from "../../src/services/resolve-late
import { makeDomainName } from "../../src/domain/domain-name";
import { PackumentNotFoundError } from "../../src/common-errors";
import { Ok } from "ts-results-es";
import {NoVersionsError, UnityPackument} from "../../src/domain/packument";
import { NoVersionsError, UnityPackument } from "../../src/domain/packument";
import { Registry } from "../../src/domain/registry";
import { exampleRegistryUrl } from "../domain/data-registry";
import { unityRegistryUrl } from "../../src/domain/registry-url";
Expand Down
2 changes: 1 addition & 1 deletion test/services/search-registry.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import npmSearch from "libnpmsearch";
import search from "libnpmsearch";
import { HttpErrorBase } from "npm-registry-fetch";
import { HttpErrorBase } from "npm-registry-fetch/lib/errors";
import { makeSearchRegistryService } from "../../src/services/search-registry";
import { Registry } from "../../src/domain/registry";
import { exampleRegistryUrl } from "../domain/data-registry";
Expand Down

0 comments on commit 3d6d888

Please sign in to comment.