refactor(data): establish API contract guardrails
CI / Quality and Bundle Budgets (push) Has been cancelled

This commit is contained in:
2026-07-16 20:09:30 +08:00
parent cc06ed034d
commit 19d36ed5bf
24 changed files with 498 additions and 230 deletions
@@ -3,28 +3,15 @@
*/
import {
FacebookIdentityResponseSchema,
type FacebookIdentityResponseInput,
type FacebookIdentityResponseData,
} from "@/data/schemas/auth/response/facebook_identity_response";
import {
createSchemaDto,
type SchemaDto,
} from "@/data/dto/schema_dto";
export class FacebookIdentityResponse {
private constructor(input: FacebookIdentityResponseInput) {
const data = FacebookIdentityResponseSchema.parse(input);
Object.assign(this, data);
Object.freeze(this);
}
static from(input: FacebookIdentityResponseInput): FacebookIdentityResponse {
return new FacebookIdentityResponse(input);
}
static fromJson(json: unknown): FacebookIdentityResponse {
return FacebookIdentityResponse.from(
json as FacebookIdentityResponseInput,
);
}
toJson(): FacebookIdentityResponseData {
return FacebookIdentityResponseSchema.parse(this);
}
}
export type FacebookIdentityResponse = SchemaDto<
typeof FacebookIdentityResponseSchema
>;
export const FacebookIdentityResponse = createSchemaDto(
FacebookIdentityResponseSchema,
);