Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
23 changes: 15 additions & 8 deletions packages/ensnode-sdk/src/ensapi/api/config/deserialize.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
import { deserializeENSApiPublicConfig } from "../../config/deserialize";
import type { ConfigResponse } from "./response";
import type { SerializedConfigResponse } from "./serialized-response";
import { deserializeEnsApiPublicConfig } from "../../config/deserialize";
import type { EnsApiConfigResponse } from "./response";
import type { SerializedEnsApiConfigResponse } from "./serialized-response";

/**
* Deserialize a {@link ConfigResponse} object.
* Deserialize a {@link EnsApiConfigResponse} object.
*/
export function deserializeConfigResponse(
serializedResponse: SerializedConfigResponse,
): ConfigResponse {
return deserializeENSApiPublicConfig(serializedResponse);
export function deserializeEnsApiConfigResponse(
serializedResponse: SerializedEnsApiConfigResponse,
): EnsApiConfigResponse {
return deserializeEnsApiPublicConfig(serializedResponse);
}

/**
* Deserialize a {@link EnsApiConfigResponse} object.
*
* @deprecated Use {@link deserializeEnsApiConfigResponse} instead.
*/
export const deserializeConfigResponse = deserializeEnsApiConfigResponse;
11 changes: 9 additions & 2 deletions packages/ensnode-sdk/src/ensapi/api/config/response.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import type { ENSApiPublicConfig } from "../../config/types";
import type { EnsApiPublicConfig } from "../../config/types";

/**
* ENSApi Public Config Response
*/
export type ConfigResponse = ENSApiPublicConfig;
export type EnsApiConfigResponse = EnsApiPublicConfig;

/**
* ENSApi Config API Response
*
* @deprecated Use {@link EnsApiConfigResponse} instead.
*/
export type ConfigResponse = EnsApiConfigResponse;
22 changes: 17 additions & 5 deletions packages/ensnode-sdk/src/ensapi/api/config/serialize.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
import { serializeENSApiPublicConfig } from "../../config/serialize";
import type { ConfigResponse } from "./response";
import type { SerializedConfigResponse } from "./serialized-response";
import { serializeEnsApiPublicConfig } from "../../config/serialize";
import type { EnsApiConfigResponse } from "./response";
import type { SerializedEnsApiConfigResponse } from "./serialized-response";

export function serializeConfigResponse(response: ConfigResponse): SerializedConfigResponse {
return serializeENSApiPublicConfig(response);
/**
* Serialize ENSApi Config API Response
*/
export function serializeEnsApiConfigResponse(
response: EnsApiConfigResponse,
): SerializedEnsApiConfigResponse {
return serializeEnsApiPublicConfig(response);
}

/**
* Serialize ENSApi Config API Response
*
* @deprecated Use {@link serializeEnsApiConfigResponse} instead.
*/
export const serializeConfigResponse = serializeEnsApiConfigResponse;
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
import type { SerializedENSApiPublicConfig } from "../../config/serialized-types";
import type { SerializedEnsApiPublicConfig } from "../../config/serialized-types";
import type { EnsApiConfigResponse } from "./response";

export type SerializedConfigResponse = SerializedENSApiPublicConfig;
/**
* Serialized representation of {@link EnsApiConfigResponse}
*/
export type SerializedEnsApiConfigResponse = SerializedEnsApiPublicConfig;

/**
* @deprecated Use {@link SerializedEnsApiConfigResponse} instead.
*/
export type SerializedConfigResponse = SerializedEnsApiConfigResponse;
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@ import { prettifyError } from "zod/v4";

import { buildUnvalidatedRealtimeIndexingStatusProjection } from "../../../indexing-status/deserialize/realtime-indexing-status-projection";
import type { Unvalidated } from "../../../shared/types";
import { type IndexingStatusResponse, IndexingStatusResponseCodes } from "./response";
import type { SerializedIndexingStatusResponse } from "./serialized-response";
import { type EnsApiIndexingStatusResponse, EnsApiIndexingStatusResponseCodes } from "./response";
import type { SerializedEnsApiIndexingStatusResponse } from "./serialized-response";
import {
makeIndexingStatusResponseSchema,
makeSerializedIndexingStatusResponseSchema,
makeEnsApiIndexingStatusResponseSchema,
makeSerializedEnsApiIndexingStatusResponseSchema,
} from "./zod-schemas";

/**
* Builds an unvalidated {@link IndexingStatusResponse} object to be
* validated with {@link makeIndexingStatusResponseSchema}.
* Builds an unvalidated {@link EnsApiIndexingStatusResponse} object to be
* validated with {@link makeEnsApiIndexingStatusResponseSchema}.
*
* @param serializedResponse - The serialized response to build from.
* @return An unvalidated {@link IndexingStatusResponse} object.
* @return An unvalidated {@link EnsApiIndexingStatusResponse} object.
*/
function buildUnvalidatedIndexingStatusResponse(
serializedResponse: SerializedIndexingStatusResponse,
): Unvalidated<IndexingStatusResponse> {
if (serializedResponse.responseCode !== IndexingStatusResponseCodes.Ok) {
function buildUnvalidatedEnsApiIndexingStatusResponse(
serializedResponse: SerializedEnsApiIndexingStatusResponse,
): Unvalidated<EnsApiIndexingStatusResponse> {
if (serializedResponse.responseCode !== EnsApiIndexingStatusResponseCodes.Ok) {
return serializedResponse;
}

Expand All @@ -32,19 +32,28 @@ function buildUnvalidatedIndexingStatusResponse(
}

/**
* Deserialize a {@link IndexingStatusResponse} object.
* Deserialize a {@link EnsApiIndexingStatusResponse} object.
*/
export function deserializeIndexingStatusResponse(
maybeResponse: Unvalidated<SerializedIndexingStatusResponse>,
): IndexingStatusResponse {
const parsed = makeSerializedIndexingStatusResponseSchema()
.transform(buildUnvalidatedIndexingStatusResponse)
.pipe(makeIndexingStatusResponseSchema())
export function deserializeEnsApiIndexingStatusResponse(
maybeResponse: Unvalidated<SerializedEnsApiIndexingStatusResponse>,
): EnsApiIndexingStatusResponse {
const parsed = makeSerializedEnsApiIndexingStatusResponseSchema()
.transform(buildUnvalidatedEnsApiIndexingStatusResponse)
.pipe(makeEnsApiIndexingStatusResponseSchema())
.safeParse(maybeResponse);

if (parsed.error) {
throw new Error(`Cannot deserialize IndexingStatusResponse:\n${prettifyError(parsed.error)}\n`);
throw new Error(
`Cannot deserialize EnsApiIndexingStatusResponse:\n${prettifyError(parsed.error)}\n`,
);
}

return parsed.data;
}

/**
* Deserialize a {@link EnsApiIndexingStatusResponse} object.
*
* @deprecated Use {@link deserializeEnsApiIndexingStatusResponse} instead.
*/
export const deserializeIndexingStatusResponse = deserializeEnsApiIndexingStatusResponse;
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
/**
* Represents a request to Indexing Status API.
*/
export type IndexingStatusRequest = {};
export type EnsApiIndexingStatusRequest = {};

/**
* Represents a request to Indexing Status API.
*
* @deprecated Use {@link EnsApiIndexingStatusRequest} instead.
*/
export type IndexingStatusRequest = EnsApiIndexingStatusRequest;
55 changes: 46 additions & 9 deletions packages/ensnode-sdk/src/ensapi/api/indexing-status/response.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { RealtimeIndexingStatusProjection } from "../../../indexing-status/
/**
* A status code for indexing status responses.
*/
export const IndexingStatusResponseCodes = {
export const EnsApiIndexingStatusResponseCodes = {
/**
* Represents that the indexing status is available.
*/
Expand All @@ -16,30 +16,67 @@ export const IndexingStatusResponseCodes = {
} as const;

/**
* The derived string union of possible {@link IndexingStatusResponseCodes}.
* A status code for indexing status responses.
*
* @deprecated Use {@link EnsApiIndexingStatusResponseCodes} instead.
*/
export const IndexingStatusResponseCodes = EnsApiIndexingStatusResponseCodes;

/**
* The derived string union of possible {@link EnsApiIndexingStatusResponseCodes}.
*/
export type EnsApiIndexingStatusResponseCode =
(typeof EnsApiIndexingStatusResponseCodes)[keyof typeof EnsApiIndexingStatusResponseCodes];

/**
* The derived string union of possible {@link EnsApiIndexingStatusResponseCodes}.
*
* @deprecated Use {@link EnsApiIndexingStatusResponseCode} instead.
*/
export type IndexingStatusResponseCode =
(typeof IndexingStatusResponseCodes)[keyof typeof IndexingStatusResponseCodes];
export type IndexingStatusResponseCode = EnsApiIndexingStatusResponseCode;

/**
* An indexing status response when the indexing status is available.
*/
export type IndexingStatusResponseOk = {
responseCode: typeof IndexingStatusResponseCodes.Ok;
export type EnsApiIndexingStatusResponseOk = {
responseCode: typeof EnsApiIndexingStatusResponseCodes.Ok;
realtimeProjection: RealtimeIndexingStatusProjection;
};

/**
* An indexing status response when the indexing status is available.
*
* @deprecated Use {@link EnsApiIndexingStatusResponseOk} instead.
*/
export type IndexingStatusResponseOk = EnsApiIndexingStatusResponseOk;

/**
* An indexing status response when the indexing status is unavailable.
*/
export type IndexingStatusResponseError = {
responseCode: typeof IndexingStatusResponseCodes.Error;
export type EnsApiIndexingStatusResponseError = {
responseCode: typeof EnsApiIndexingStatusResponseCodes.Error;
};

/**
* An indexing status response when the indexing status is unavailable.
*
* @deprecated Use {@link EnsApiIndexingStatusResponseError} instead.
*/
export type IndexingStatusResponseError = EnsApiIndexingStatusResponseError;

/**
* Indexing status response.
*
* Use the `responseCode` field to determine the specific type interpretation
* at runtime.
*/
export type IndexingStatusResponse = IndexingStatusResponseOk | IndexingStatusResponseError;
export type EnsApiIndexingStatusResponse =
| EnsApiIndexingStatusResponseOk
| EnsApiIndexingStatusResponseError;

/**
* Indexing status response.
*
* @deprecated Use {@link EnsApiIndexingStatusResponse} instead.
*/
export type IndexingStatusResponse = EnsApiIndexingStatusResponse;
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
import { serializeRealtimeIndexingStatusProjection } from "../../../indexing-status/serialize/realtime-indexing-status-projection";
import { type IndexingStatusResponse, IndexingStatusResponseCodes } from "./response";
import { type EnsApiIndexingStatusResponse, EnsApiIndexingStatusResponseCodes } from "./response";
import type {
SerializedIndexingStatusResponse,
SerializedIndexingStatusResponseOk,
SerializedEnsApiIndexingStatusResponse,
SerializedEnsApiIndexingStatusResponseOk,
} from "./serialized-response";

export function serializeIndexingStatusResponse(
response: IndexingStatusResponse,
): SerializedIndexingStatusResponse {
/**
* Serialize a {@link EnsApiIndexingStatusResponse} object.
*/
export function serializeEnsApiIndexingStatusResponse(
response: EnsApiIndexingStatusResponse,
): SerializedEnsApiIndexingStatusResponse {
switch (response.responseCode) {
case IndexingStatusResponseCodes.Ok:
case EnsApiIndexingStatusResponseCodes.Ok:
return {
responseCode: response.responseCode,
realtimeProjection: serializeRealtimeIndexingStatusProjection(response.realtimeProjection),
} satisfies SerializedIndexingStatusResponseOk;
} satisfies SerializedEnsApiIndexingStatusResponseOk;

case IndexingStatusResponseCodes.Error:
case EnsApiIndexingStatusResponseCodes.Error:
return response;
}
}

/**
* Serialize a {@link EnsApiIndexingStatusResponse} object.
*
* @deprecated Use {@link serializeEnsApiIndexingStatusResponse} instead.
*/
export const serializeIndexingStatusResponse = serializeEnsApiIndexingStatusResponse;
Original file line number Diff line number Diff line change
@@ -1,22 +1,47 @@
import type { SerializedRealtimeIndexingStatusProjection } from "../../../indexing-status/serialize/realtime-indexing-status-projection";
import type { IndexingStatusResponseError, IndexingStatusResponseOk } from "./response";
import type {
EnsApiIndexingStatusResponse,
EnsApiIndexingStatusResponseError,
EnsApiIndexingStatusResponseOk,
} from "./response";

/**
* Serialized representation of {@link IndexingStatusResponseError}.
* Serialized representation of {@link EnsApiIndexingStatusResponseError}.
*/
export type SerializedIndexingStatusResponseError = IndexingStatusResponseError;
export type SerializedEnsApiIndexingStatusResponseError = EnsApiIndexingStatusResponseError;

/**
* Serialized representation of {@link IndexingStatusResponseOk}.
* Serialized representation of {@link EnsApiIndexingStatusResponseError}.
*
* @deprecated Use {@link SerializedEnsApiIndexingStatusResponseError} instead.
*/
export interface SerializedIndexingStatusResponseOk
extends Omit<IndexingStatusResponseOk, "realtimeProjection"> {
export type SerializedIndexingStatusResponseError = SerializedEnsApiIndexingStatusResponseError;

/**
* Serialized representation of {@link EnsApiIndexingStatusResponseOk}.
*/
export interface SerializedEnsApiIndexingStatusResponseOk
extends Omit<EnsApiIndexingStatusResponseOk, "realtimeProjection"> {
realtimeProjection: SerializedRealtimeIndexingStatusProjection;
}

/**
* Serialized representation of {@link IndexingStatusResponse}.
* Serialized representation of {@link EnsApiIndexingStatusResponseOk}.
*
* @deprecated Use {@link SerializedEnsApiIndexingStatusResponseOk} instead.
*/
export type SerializedIndexingStatusResponseOk = SerializedEnsApiIndexingStatusResponseOk;

/**
* Serialized representation of {@link EnsApiIndexingStatusResponse}.
*/
export type SerializedEnsApiIndexingStatusResponse =
| SerializedEnsApiIndexingStatusResponseOk
| SerializedEnsApiIndexingStatusResponseError;

/**
* Serialized representation of {@link EnsApiIndexingStatusResponse}.
*
* @deprecated Use {@link SerializedEnsApiIndexingStatusResponse} instead.
*/
export type SerializedIndexingStatusResponse =
| SerializedIndexingStatusResponseOk
| SerializedIndexingStatusResponseError;
export type SerializedIndexingStatusResponse = SerializedEnsApiIndexingStatusResponse;
Loading
Loading