vexdb: Provides its own types (#39561)

This commit is contained in:
Alexander T
2019-11-18 13:50:53 -08:00
committed by Sheetal Nandi
parent e192b28544
commit ada8420cd1
5 changed files with 6 additions and 711 deletions
+6
View File
@@ -5088,6 +5088,12 @@
"sourceRepoURL": "https://github.com/vega/vega",
"asOfVersion": "3.2.0"
},
{
"libraryName": "vexdb",
"typingsPackageName": "vexdb",
"sourceRepoURL": "https://github.com/MayorMonty/vexdb#readme",
"asOfVersion": "1.7.1"
},
{
"libraryName": "velocity-animate",
"typingsPackageName": "velocity-animate",
-595
View File
@@ -1,595 +0,0 @@
// Type definitions for vexdb 1.7
// Project: https://github.com/MayorMonty/vexdb#readme
// Definitions by: Brendan McGuire <https://github.com/MayorMonty>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
import { EventEmitter } from "events";
export type Endpoint =
| "events"
| "teams"
| "matches"
| "rankings"
| "season_rankings"
| "awards"
| "skills";
/**
* Parameter Objects
*/
export type StringRequest =
| string
| string[]
| RegExp
| StringRequestValidatorFunction;
export type StringRequestValidatorFunction = (
itemValue: string,
item: ResponseObject
) => Promise<boolean> | boolean;
export type NumberRequest = number | number[] | NumberRequestValidatorFunction;
export type NumberRequestValidatorFunction = (
itemValue: number,
item: ResponseObject
) => Promise<boolean> | boolean;
/**
* Request Objects
*/
export type RequestObject =
| TeamsRequestObject
| EventsRequestObject
| MatchesRequestObject
| RankingsRequestObject
| SeasonRankingsRequestObject
| AwardsRequestObject
| SkillsRequestObject;
export interface TeamsRequestObject {
team?: StringRequest;
number?: StringRequest;
team_name?: StringRequest;
robot_name?: StringRequest;
program?: StringRequest;
organisation?: StringRequest;
city?: StringRequest;
region?: StringRequest;
country?: StringRequest;
grade?: StringRequest;
is_registered?: NumberRequest;
sku?: StringRequest;
limit_number?: number;
limit_start?: number;
}
export interface EventsRequestObject {
sku?: StringRequest;
program?: StringRequest;
date?: StringRequest;
season?: StringRequest;
city?: StringRequest;
region?: StringRequest;
country?: StringRequest;
status?: StringRequest;
limit_number?: number;
limit_start?: number;
key?: StringRequest;
name?: StringRequest;
loc_venue?: StringRequest;
loc_address1?: StringRequest;
loc_address2?: StringRequest;
loc_city?: StringRequest;
loc_region?: StringRequest;
loc_postcode?: StringRequest;
loc_country?: StringRequest;
start?: StringRequest;
end?: StringRequest;
}
export interface MatchesRequestObject {
sku?: StringRequest;
division?: StringRequest;
team?: StringRequest;
round?: NumberRequest;
instance?: NumberRequest;
matchnum?: NumberRequest;
scheduled?: NumberRequest;
field?: StringRequest;
scored?: NumberRequest;
season?: StringRequest;
limit_number?: number;
limit_start?: number;
red1?: StringRequest;
red2?: StringRequest;
red3?: StringRequest;
redsit?: StringRequest;
blue1?: StringRequest;
blue2?: StringRequest;
blue3?: StringRequest;
bluesit?: StringRequest;
redscore?: NumberRequest;
bluescore?: NumberRequest;
}
export interface RankingsRequestObject {
sku?: StringRequest;
division?: StringRequest;
team?: StringRequest;
rank?: StringRequest;
season?: StringRequest;
limit_number?: number;
limit_start?: number;
wins?: NumberRequest;
losses?: NumberRequest;
ties?: NumberRequest;
wp?: NumberRequest;
ap?: NumberRequest;
sp?: NumberRequest;
trsp?: NumberRequest;
max_score?: NumberRequest;
opr?: NumberRequest;
dpr?: NumberRequest;
ccwm?: NumberRequest;
}
export interface SeasonRankingsRequestObject {
program?: StringRequest;
season?: StringRequest;
team?: StringRequest;
vrating_rank?: NumberRequest;
limit_number?: number;
limit_start?: number;
vrating?: NumberRequest;
}
export interface AwardsRequestObject {
sku?: StringRequest;
name?: StringRequest;
team?: StringRequest;
season?: StringRequest;
limit_number?: number;
limit_start?: number;
order?: NumberRequest;
}
export interface SkillsRequestObject {
sku?: StringRequest;
program?: StringRequest;
type?: NumberRequest;
team?: StringRequest;
season?: StringRequest;
rank?: NumberRequest;
season_rank?: NumberRequest;
limit_number?: number;
limit_start?: number;
attempts?: NumberRequest;
score?: NumberRequest;
}
/**
* Response Objects
*/
export type ResponseObject =
| TeamsResponseObject
| EventsResponseObject
| MatchesResponseObject
| RankingsResponseObject
| SeasonRankingsResponseObject
| AwardsResponseObject
| SkillsResponseObject;
export interface TeamsResponseObject {
number: string;
program: string;
team_name: string;
robot_name: string;
organisation: string;
city: string;
region: string;
country: string;
grade: string;
is_registered: 0 | 1;
}
export interface EventsResponseObject {
sku: string;
key: string;
program: string;
name: string;
loc_venue: string;
loc_address1: string;
loc_address2: string;
loc_city: string;
loc_region: string;
loc_postcode: string;
loc_country: string;
season: string;
start: string;
end: string;
divisions: string[];
}
export interface MatchesResponseObject {
sku: string;
division: string;
round: 1 | 2 | 3 | 4 | 5 | 6 | 16;
instance: number;
matchnum: number;
field: string;
red1: string;
red2: string;
red3: string;
redsit: string;
blue1: string;
blue2: string;
blue3: string;
bluesit: string;
redscore: number;
bluescore: number;
scored: 0 | 1;
scheduled: string;
}
export interface RankingsResponseObject {
sku: string;
division: string;
rank: number;
team: string;
wins: number;
losses: number;
ties: number;
wp: number;
ap: number;
sp: number;
trsp: number;
max_score: number;
opr: number;
dpr: number;
ccwm: number;
}
export interface SeasonRankingsResponseObject {
team: string;
season: string;
program: string;
vrating_rank: number;
vrating: number;
}
export interface AwardsResponseObject {
sku: string;
name: string;
team: string;
qualifies: string[];
order: number;
}
export interface SkillsResponseObject {
sku: string;
type: number;
rank: number;
team: string;
program: string;
attempts: number;
score: number;
}
/**
* GET
*/
export function get(
endpoint: "teams",
params: TeamsRequestObject
): Promise<TeamsResponseObject[]>;
export function get(
endpoint: "events",
params: EventsRequestObject
): Promise<EventsResponseObject[]>;
export function get(
endpoint: "matches",
params: MatchesRequestObject
): Promise<MatchesResponseObject[]>;
export function get(
endpoint: "rankings",
params: RankingsRequestObject
): Promise<RankingsResponseObject[]>;
export function get(
endpoint: "season_rankings",
params: SeasonRankingsRequestObject
): Promise<SeasonRankingsResponseObject[]>;
export function get(
endpoint: "awards",
params: AwardsRequestObject
): Promise<AwardsResponseObject[]>;
export function get(
endpoint: "skills",
params: SkillsRequestObject
): Promise<SkillsResponseObject[]>;
/**
* SIZE
*/
export function size(
endpoint: "teams",
params: TeamsRequestObject
): Promise<number>;
export function size(
endpoint: "events",
params: EventsRequestObject
): Promise<number>;
export function size(
endpoint: "matches",
params: MatchesRequestObject
): Promise<number>;
export function size(
endpoint: "rankings",
params: RankingsRequestObject
): Promise<number>;
export function size(
endpoint: "season_rankings",
params: SeasonRankingsRequestObject
): Promise<number>;
export function size(
endpoint: "awards",
params: AwardsRequestObject
): Promise<number>;
export function size(
endpoint: "skills",
params: SkillsRequestObject
): Promise<number>;
/**
* LIVE
*/
export interface LiveEventEmitter<Q, R> extends EventEmitter {
close(): void;
params(updateParameters: Q): Q;
current(): R[];
// Update Events
on(event: "item", callback: (item: R) => void): this;
on(event: "fetch", callback: (newItems: R[]) => void): this;
on(event: "prefetch", callback: (results: R[]) => void): this;
}
export type LiveRequestObject<T> = T & { prefetch?: boolean };
export function live(
endpoint: "teams",
params: LiveRequestObject<TeamsRequestObject>
): LiveEventEmitter<TeamsRequestObject, TeamsResponseObject>;
export function live(
endpoint: "events",
params: LiveRequestObject<EventsRequestObject>
): LiveEventEmitter<EventsRequestObject, EventsResponseObject>;
export function live(
endpoint: "matches",
params: LiveRequestObject<MatchesRequestObject>
): LiveEventEmitter<MatchesRequestObject, MatchesResponseObject>;
export function live(
endpoint: "rankings",
params: LiveRequestObject<RankingsRequestObject>
): LiveEventEmitter<RankingsRequestObject, RankingsResponseObject>;
export function live(
endpoint: "season_rankings",
params: LiveRequestObject<SeasonRankingsRequestObject>
): LiveEventEmitter<SeasonRankingsRequestObject, SeasonRankingsResponseObject>;
export function live(
endpoint: "awards",
params: LiveRequestObject<AwardsRequestObject>
): LiveEventEmitter<AwardsRequestObject, AwardsResponseObject>;
export function live(
endpoint: "skills",
params: LiveRequestObject<SkillsRequestObject>
): LiveEventEmitter<SkillsRequestObject, SkillsResponseObject>;
export function live(
endpoint: Endpoint,
params: LiveRequestObject<RequestObject>
): LiveEventEmitter<RequestObject, ResponseObject>;
/**
* CACHE
*/
export interface CacheEntry<T> {
expiry: number;
value: {
status: 0 | 1;
size: number;
result: T[];
};
}
export function cache(
endpoint: "teams",
params: TeamsRequestObject,
value: TeamsResponseObject[]
): Promise<CacheEntry<TeamsResponseObject>>;
export function cache(
endpoint: "events",
params: EventsRequestObject,
value: EventsResponseObject[]
): Promise<CacheEntry<EventsResponseObject>>;
export function cache(
endpoint: "matches",
params: MatchesRequestObject,
value: MatchesResponseObject[]
): Promise<CacheEntry<MatchesResponseObject>>;
export function cache(
endpoint: "rankings",
params: RankingsRequestObject,
value: RankingsResponseObject[]
): Promise<CacheEntry<RankingsResponseObject>>;
export function cache(
endpoint: "season_rankings",
params: SeasonRankingsRequestObject,
value: SeasonRankingsResponseObject[]
): Promise<CacheEntry<SeasonRankingsResponseObject>>;
export function cache(
endpoint: "awards",
params: AwardsRequestObject,
value: AwardsResponseObject[]
): Promise<CacheEntry<AwardsResponseObject>>;
export function cache(
endpoint: "skills",
params: SkillsRequestObject,
value: SkillsResponseObject[]
): Promise<CacheEntry<SkillsResponseObject>>;
export function cache(
endpoint: Endpoint,
params: RequestObject,
value: ResponseObject[]
): Promise<CacheEntry<ResponseObject>>;
export namespace cache {
const ttl: number;
function clear(): void;
function has(endpoint: "teams", params: TeamsRequestObject): Promise<boolean>;
function has(
endpoint: "events",
params: EventsRequestObject
): Promise<boolean>;
function has(
endpoint: "matches",
params: MatchesRequestObject
): Promise<boolean>;
function has(
endpoint: "rankings",
params: RankingsRequestObject
): Promise<boolean>;
function has(
endpoint: "season_rankings",
params: SeasonRankingsRequestObject
): Promise<boolean>;
function has(
endpoint: "awards",
params: AwardsRequestObject
): Promise<boolean>;
function has(
endpoint: "skills",
params: SkillsRequestObject
): Promise<boolean>;
function resolve(
endpoint: "teams",
params: TeamsRequestObject
): Promise<CacheEntry<TeamsResponseObject>>;
function resolve(
endpoint: "events",
params: EventsRequestObject
): Promise<CacheEntry<EventsResponseObject>>;
function resolve(
endpoint: "matches",
params: MatchesRequestObject
): Promise<CacheEntry<MatchesResponseObject>>;
function resolve(
endpoint: "rankings",
params: RankingsRequestObject
): Promise<CacheEntry<RankingsResponseObject>>;
function resolve(
endpoint: "season_rankings",
params: SeasonRankingsRequestObject
): Promise<CacheEntry<SeasonRankingsResponseObject>>;
function resolve(
endpoint: "awards",
params: AwardsRequestObject
): Promise<CacheEntry<AwardsResponseObject>>;
function resolve(
endpoint: "skills",
params: SkillsRequestObject
): Promise<CacheEntry<SkillsResponseObject>>;
function sanitize(endpoint: Endpoint, params: object): object;
function serialize(url: any, params: object): object;
function setTTL(ttl: number): object;
}
/**
* CONSTANT
*/
export namespace constant {
const endpoints: string[];
const settings: {
baseURL: string;
cache: {
ttl: number;
};
headers: {};
live: {
pollTime: number;
};
params: {};
};
const uniques: {
events: string;
teams: string;
};
const validParams: {
awards: string[];
events: string[];
matches: string[];
rankings: string[];
season_rankings: string[];
skills: string[];
teams: string[];
};
function header(headers: object): void;
function isBrowser(): boolean;
function param(params: RequestObject): void;
}
-16
View File
@@ -1,16 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": ["es6"],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": ["../"],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": ["index.d.ts", "vexdb-tests.ts"]
}
-1
View File
@@ -1 +0,0 @@
{ "extends": "dtslint/dt.json" }
-99
View File
@@ -1,99 +0,0 @@
/**
* Requests
*/
import {
get,
live,
TeamsRequestObject,
AwardsRequestObject,
EventsRequestObject,
RankingsRequestObject,
SeasonRankingsRequestObject,
SkillsRequestObject,
MatchesRequestObject,
TeamsResponseObject,
AwardsResponseObject,
EventsResponseObject,
RankingsResponseObject,
SeasonRankingsResponseObject,
SkillsResponseObject,
MatchesResponseObject,
size
} from "vexdb";
get("teams", { number: "3796B" });
get("awards", { order: 1 });
get("events", { loc_venue: "J.L. Mann High School" });
get("matches", { redscore: 23 });
get("rankings", { wp: 23 });
get("season_rankings", { vrating: 1 });
get("skills", { attempts: 1 });
size("teams", { number: "3796B" });
size("awards", { order: 1 });
size("events", { loc_venue: "J.L. Mann High School" });
size("matches", { redscore: 23 });
size("rankings", { wp: 23 });
size("season_rankings", { vrating: 1 });
size("skills", { attempts: 1 });
const teams = live("teams", { number: "3796B" });
const teams_params: TeamsRequestObject = {};
const teams_current: TeamsResponseObject[] = teams.current();
teams.params(teams_params);
teams.on("fetch", (item: TeamsResponseObject[]) => {});
teams.on("prefetch", (results: TeamsResponseObject[]) => {});
teams.on("item", (item: TeamsResponseObject) => {});
teams.close();
const awards = live("awards", { order: 1 });
const awards_params: AwardsRequestObject = {};
const awards_current: AwardsResponseObject[] = awards.current();
awards.params(awards_params);
awards.on("fetch", (item: AwardsResponseObject[]) => {});
awards.on("prefetch", (results: AwardsResponseObject[]) => {});
awards.on("item", (item: AwardsResponseObject) => {});
awards.close();
const events = live("events", { loc_venue: "J.L. Mann High School" });
const events_params: EventsRequestObject = {};
const events_current: EventsResponseObject[] = events.current();
events.params(events_params);
events.on("fetch", (item: EventsResponseObject[]) => {});
events.close();
const matches = live("matches", { team: "3796B" });
const matches_params: MatchesRequestObject = {};
const matches_current: MatchesResponseObject[] = matches.current();
matches.params(matches_params);
matches.on("fetch", (item: MatchesResponseObject[]) => {});
matches.on("prefetch", (results: MatchesResponseObject[]) => {});
matches.on("item", (item: MatchesResponseObject) => {});
matches.close();
const skills = live("skills", { rank: 23 });
const skills_params: SkillsRequestObject = {};
const skills_current: SkillsResponseObject[] = skills.current();
skills.params(skills_params);
skills.on("fetch", (item: SkillsResponseObject[]) => {});
skills.on("prefetch", (results: SkillsResponseObject[]) => {});
skills.on("item", (item: SkillsResponseObject) => {});
skills.close();
const rankings = live("rankings", { team: "3796N" });
const rankings_params: RankingsRequestObject = {};
const rankings_current: RankingsResponseObject[] = rankings.current();
rankings.params(rankings_params);
rankings.on("fetch", (item: RankingsResponseObject[]) => {});
rankings.on("prefetch", (results: RankingsResponseObject[]) => {});
rankings.on("item", (item: RankingsResponseObject) => {});
rankings.close();
const season_rankings = live("season_rankings", { team: "3796N" });
const season_rankings_params: SeasonRankingsRequestObject = {};
const season_rankings_current: SeasonRankingsResponseObject[] = season_rankings.current();
season_rankings.params(season_rankings_params);
season_rankings.on("fetch", (item: SeasonRankingsResponseObject[]) => {});
season_rankings.on("prefetch", (results: SeasonRankingsResponseObject[]) => {});
season_rankings.on("item", (item: SeasonRankingsResponseObject) => {});
season_rankings.close();