openblox
Version:
Roblox API Wrapper For Both Classic And OpenCloud APIs.
107 lines (106 loc) • 4.55 kB
TypeScript
import type { Identifier, ISODateTime, ObjectPrettify, Url } from "typeforge";
type JobType = "FullTime" | "PartTime" | "Commission";
type SkillType = "Graphics Design" | "Clothes Design" | "Development" | "Animation" | "UI Design" | "Sound Production" | "Composing" | "Modeling" | "Level Design" | "Community" | "Business Development" | "Game Design" | "Programmer" | "Scripting" | "Social Media" | "User Experience" | "Git" | "Data Analysis" | "Management" | "Leadership" | "QA" | "Map Design" | "Building" | "Marketing" | "Texturing" | "Translation" | "Particles" | "Education" | "Voice Actor" | "UGC" | "Pants" | "Avatar Items" | "Shirts" | "Layered Clothing" | "Hats" | "Concert" | "Brands" | "Turnkey Experiences" | "Integrations" | "Sports" | "Simulation" | "Adventure" | "Simulator" | "Idle" | "Puzzle" | "Platformer" | "Social Hangout" | "Tabletop Games" | "Action" | "Minigames" | "Role-playing" | "Tycoon" | "Shopping" | "Strategy" | "Sandbox" | "Media Creation" | "Charity" | "Fashion" | "Beauty" | "Entertainment" | "Live Ops" | "Project Management" | "Influencer Marketing" | "English" | "Spanish" | "German" | "French" | "Italian" | "Brazilian Portuguese" | "Simplified Chinese" | "Traditional Chinese" | "Korean" | "Japanese" | "Indonesian" | "Vietnamese" | "Thai" | "Turkish" | "Arabic" | "Polish";
export type RawUsersAreIdVerifiedData<UserId extends Identifier> = ObjectPrettify<{
data: {
userId: UserId;
isVerified: boolean;
}[];
}>;
type CreatorProfileData<UserId extends Identifier, TimeType> = ObjectPrettify<{
creatorUserId: UserId;
createdUtc: TimeType;
updatedUtc: TimeType;
isPublic: boolean;
isContactAllowed: boolean;
creatorDescription: string;
isOpenToWork: boolean;
interestDescription: string;
linkTypes: ("Roblox" | "DeveloperForum" | "Facebook" | "Twitter" | "Youtube" | "Twitch")[];
preferredContactLinkType: "DeveloperForum" | "Roblox" | "Invalid";
socialLinks: [];
jobTypes: JobType[];
skillTypes: SkillType[];
requiresAction: "NoAction";
}>;
export type RawCreatorProfileData<UserId extends Identifier> = ObjectPrettify<{
data: [CreatorProfileData<UserId, ISODateTime>];
}>;
export type PrettifiedCreatorProfileData<UserId extends Identifier> = CreatorProfileData<UserId, Date>;
type CreatorExperienceData<TimeType> = ObjectPrettify<{
experienceId: Identifier;
creatorUserId: Identifier;
createdUtc: TimeType;
updatedUtc: TimeType;
projectName: string;
experienceDescription: string;
jobRole: string;
teamName: string;
experienceMedia: {
assetId: Identifier;
title: `RobloxScreenShot${number}_${number}.${string}`;
}[];
experienceLinks: `[${string}](${Url})`[];
teamId: Identifier | null;
robloxExperienceIds: Identifier[];
robloxAssetIds: Identifier[];
startedUtc: TimeType;
} & ({
endedUtc: TimeType;
isCurrent: false;
} | {
endedUtc: null;
isCurrent: true;
})>;
export type RawCreatorExperiencesData = ObjectPrettify<{
data: CreatorExperienceData<ISODateTime>[];
}>;
export type PrettifiedCreatorExperiencesData = CreatorExperienceData<Date>[];
type PaymentType = "Robux" | "RevenuePercent" | "Currency";
export type JobSearchFilter = {
jobType?: JobType[];
paymentAmount?: {
from?: number;
to?: number;
};
paymentTypes?: PaymentType[];
skillTypes?: SkillType[];
isVerified?: boolean;
};
type JobSearchResult<TimeType, BoolType> = ObjectPrettify<{
id: Identifier;
jobPosterId: Identifier;
title: string;
description: string;
jobType: JobType;
paymentTypes: PaymentType[];
skillTypes: SkillType;
publishedUtc: TimeType;
expiresUtc: TimeType;
minAgeRequirement: number;
isVerifiedRequirement: BoolType;
paymentAmount: number;
paymentAmountType: "Total" | string;
_meta: {
score: number;
};
}>;
type JobSearchData<JobSearchType> = ObjectPrettify<{
meta: {
page: {
totalPages: number;
totalResults: number;
current: number;
size: number;
};
};
results: JobSearchType[];
}>;
type RawJobSearchResult = JobSearchResult<ISODateTime, "true" | "false">;
export type RawJobSearchData = JobSearchData<ObjectPrettify<{
[Key in keyof RawJobSearchResult]: Key extends "_meta" ? RawJobSearchResult[Key] : {
raw: RawJobSearchResult[Key];
};
}>>;
export type PrettifiedJobSearchData = JobSearchData<JobSearchResult<Date, boolean>>;
export {};