mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 19:07:08 +00:00
add forest-express package types (#45970)
This commit is contained in:
parent
98ee4c56b2
commit
575459d204
@ -0,0 +1,80 @@
|
||||
import {
|
||||
AggregatedFilters,
|
||||
Filter,
|
||||
Page,
|
||||
Params, PermissionMiddlewareCreator,
|
||||
PUBLIC_ROUTES, RecordCreator,
|
||||
RecordGetter, RecordRemover, RecordsCounter, RecordSerializer,
|
||||
RecordsGetter, RecordsRemover, RecordUpdater, StatSerialized, StatSerializer,
|
||||
} from 'forest-express-mongoose';
|
||||
import { RequestHandler } from 'express';
|
||||
|
||||
const MY_PUBLIC_ROUTES = PUBLIC_ROUTES;
|
||||
|
||||
const model = {
|
||||
name: 'my-model',
|
||||
};
|
||||
|
||||
const page: Page = {
|
||||
number: '1',
|
||||
size: '10',
|
||||
};
|
||||
|
||||
const filter: Filter = {
|
||||
field: 'my-field',
|
||||
operator: 'is',
|
||||
value: 'empty',
|
||||
};
|
||||
|
||||
const params: Params = {
|
||||
timezone: 'EU',
|
||||
search: '',
|
||||
fields: {
|
||||
users: 'createdAt,firstname,id,lastname,updatedAt',
|
||||
},
|
||||
sort: 'ASC',
|
||||
filters: filter,
|
||||
page,
|
||||
searchExtended: '0',
|
||||
};
|
||||
|
||||
const recordGetter = new RecordGetter(model);
|
||||
recordGetter.get('1234');
|
||||
|
||||
const recordsGetter = new RecordsGetter(model);
|
||||
recordsGetter.getAll(params);
|
||||
|
||||
const recordsCounter = new RecordsCounter(model);
|
||||
recordsCounter.count(params);
|
||||
|
||||
const recordUpdater = new RecordUpdater(model);
|
||||
recordUpdater.update({}, '1234');
|
||||
|
||||
const recordCreator = new RecordCreator(model);
|
||||
recordCreator.create({});
|
||||
|
||||
const recordRemover = new RecordRemover(model);
|
||||
recordRemover.remove('1234');
|
||||
|
||||
const recordsRemover = new RecordsRemover(model);
|
||||
recordsRemover.remove(['1234', '5678']);
|
||||
|
||||
const recordSerializer = new RecordSerializer(model);
|
||||
recordSerializer.serialize([{}, {}]);
|
||||
|
||||
let requestHandler: RequestHandler;
|
||||
const permissionMiddlewareCreator = new PermissionMiddlewareCreator('users');
|
||||
requestHandler = permissionMiddlewareCreator.list();
|
||||
requestHandler = permissionMiddlewareCreator.export();
|
||||
requestHandler = permissionMiddlewareCreator.details();
|
||||
requestHandler = permissionMiddlewareCreator.create();
|
||||
requestHandler = permissionMiddlewareCreator.update();
|
||||
requestHandler = permissionMiddlewareCreator.delete();
|
||||
requestHandler = permissionMiddlewareCreator.smartAction();
|
||||
|
||||
let statSerialized: StatSerialized;
|
||||
const stats = {
|
||||
value: [1, 2, 3],
|
||||
};
|
||||
const statSerializer = new StatSerializer(stats);
|
||||
statSerialized = statSerializer.perform();
|
||||
117
types/forest-express-mongoose/index.d.ts
vendored
Normal file
117
types/forest-express-mongoose/index.d.ts
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
// Type definitions for forest-express-mongoose 6.3
|
||||
// Project: http://www.forestadmin.com
|
||||
// Definitions by: Steve Bunlon <https://github.com/SteveBunlon>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
import { RequestHandler, Response } from "express";
|
||||
|
||||
// Everything related to Forest constants
|
||||
|
||||
export const PUBLIC_ROUTES: string[];
|
||||
|
||||
// Everything related to record manipulation
|
||||
|
||||
export class AbstractRecordTool {
|
||||
constructor(model: object)
|
||||
serialize(records: object[]): StatSerialized;
|
||||
}
|
||||
|
||||
export class RecordGetter extends AbstractRecordTool {
|
||||
get(recordId: string): Promise<object>;
|
||||
}
|
||||
|
||||
export class RecordsGetter extends AbstractRecordTool {
|
||||
getAll(params: Params): Promise<object[]>;
|
||||
getIdsFromRequest(params: Params): Promise<string[]>;
|
||||
}
|
||||
|
||||
export class RecordsCounter extends AbstractRecordTool {
|
||||
count(params: Params): Promise<number>;
|
||||
}
|
||||
|
||||
export class RecordsExporter extends AbstractRecordTool {
|
||||
streamExport(response: Response, params: Params): Promise<void>;
|
||||
}
|
||||
|
||||
export class RecordUpdater extends AbstractRecordTool {
|
||||
deserialize(body: object): Promise<object>;
|
||||
update(record: object, recordId: string): Promise<object>;
|
||||
}
|
||||
|
||||
export class RecordCreator extends AbstractRecordTool {
|
||||
deserialize(body: object): Promise<object>;
|
||||
create(record: object): Promise<object>;
|
||||
}
|
||||
|
||||
export class RecordRemover extends AbstractRecordTool {
|
||||
remove(recordId: string): Promise<void>;
|
||||
}
|
||||
|
||||
export class RecordsRemover extends AbstractRecordTool {
|
||||
remove(recordIds: string[]): Promise<void>;
|
||||
}
|
||||
|
||||
export class RecordSerializer extends AbstractRecordTool { }
|
||||
|
||||
// Everyting related to Forest permissions
|
||||
|
||||
export class PermissionMiddlewareCreator {
|
||||
constructor(collectionName: string)
|
||||
list(): RequestHandler;
|
||||
export(): RequestHandler;
|
||||
details(): RequestHandler;
|
||||
create(): RequestHandler;
|
||||
update(): RequestHandler;
|
||||
delete(): RequestHandler;
|
||||
smartAction(): RequestHandler;
|
||||
}
|
||||
|
||||
// Everything related to Forest Charts
|
||||
|
||||
export interface StatSerialized {
|
||||
data: {
|
||||
type: string,
|
||||
id: string,
|
||||
attributes: {
|
||||
value: any[]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export class StatSerializer {
|
||||
constructor(stats: { value: any[] })
|
||||
perform(): StatSerialized;
|
||||
}
|
||||
|
||||
// Everything related to Forest request params
|
||||
|
||||
export interface Page {
|
||||
number: string;
|
||||
size: string;
|
||||
}
|
||||
|
||||
export interface Filter {
|
||||
field: string;
|
||||
operator: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export enum Aggregator {
|
||||
AND = 'and',
|
||||
OR = 'or'
|
||||
}
|
||||
|
||||
export interface AggregatedFilters {
|
||||
aggregator: Aggregator;
|
||||
conditions: Filter[];
|
||||
}
|
||||
|
||||
export interface Params {
|
||||
timezone: string;
|
||||
search: string;
|
||||
fields: {[key: string]: string};
|
||||
sort: string;
|
||||
filters: Filter|AggregatedFilters;
|
||||
page: Page;
|
||||
searchExtended: string;
|
||||
}
|
||||
23
types/forest-express-mongoose/tsconfig.json
Normal file
23
types/forest-express-mongoose/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"forest-express-mongoose-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/forest-express-mongoose/tslint.json
Normal file
1
types/forest-express-mongoose/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
@ -0,0 +1,80 @@
|
||||
import {
|
||||
AggregatedFilters,
|
||||
Filter,
|
||||
Page,
|
||||
Params, PermissionMiddlewareCreator,
|
||||
PUBLIC_ROUTES, RecordCreator,
|
||||
RecordGetter, RecordRemover, RecordsCounter, RecordSerializer,
|
||||
RecordsGetter, RecordsRemover, RecordUpdater, StatSerialized, StatSerializer,
|
||||
} from 'forest-express-sequelize';
|
||||
import { RequestHandler } from 'express';
|
||||
|
||||
const MY_PUBLIC_ROUTES = PUBLIC_ROUTES;
|
||||
|
||||
const model = {
|
||||
name: 'my-model',
|
||||
};
|
||||
|
||||
const page: Page = {
|
||||
number: '1',
|
||||
size: '10',
|
||||
};
|
||||
|
||||
const filter: Filter = {
|
||||
field: 'my-field',
|
||||
operator: 'is',
|
||||
value: 'empty',
|
||||
};
|
||||
|
||||
const params: Params = {
|
||||
timezone: 'EU',
|
||||
search: '',
|
||||
fields: {
|
||||
users: 'createdAt,firstname,id,lastname,updatedAt',
|
||||
},
|
||||
sort: 'ASC',
|
||||
filters: filter,
|
||||
page,
|
||||
searchExtended: '0',
|
||||
};
|
||||
|
||||
const recordGetter = new RecordGetter(model);
|
||||
recordGetter.get('1234');
|
||||
|
||||
const recordsGetter = new RecordsGetter(model);
|
||||
recordsGetter.getAll(params);
|
||||
|
||||
const recordsCounter = new RecordsCounter(model);
|
||||
recordsCounter.count(params);
|
||||
|
||||
const recordUpdater = new RecordUpdater(model);
|
||||
recordUpdater.update({}, '1234');
|
||||
|
||||
const recordCreator = new RecordCreator(model);
|
||||
recordCreator.create({});
|
||||
|
||||
const recordRemover = new RecordRemover(model);
|
||||
recordRemover.remove('1234');
|
||||
|
||||
const recordsRemover = new RecordsRemover(model);
|
||||
recordsRemover.remove(['1234', '5678']);
|
||||
|
||||
const recordSerializer = new RecordSerializer(model);
|
||||
recordSerializer.serialize([{}, {}]);
|
||||
|
||||
let requestHandler: RequestHandler;
|
||||
const permissionMiddlewareCreator = new PermissionMiddlewareCreator('users');
|
||||
requestHandler = permissionMiddlewareCreator.list();
|
||||
requestHandler = permissionMiddlewareCreator.export();
|
||||
requestHandler = permissionMiddlewareCreator.details();
|
||||
requestHandler = permissionMiddlewareCreator.create();
|
||||
requestHandler = permissionMiddlewareCreator.update();
|
||||
requestHandler = permissionMiddlewareCreator.delete();
|
||||
requestHandler = permissionMiddlewareCreator.smartAction();
|
||||
|
||||
let statSerialized: StatSerialized;
|
||||
const stats = {
|
||||
value: [1, 2, 3],
|
||||
};
|
||||
const statSerializer = new StatSerializer(stats);
|
||||
statSerialized = statSerializer.perform();
|
||||
117
types/forest-express-sequelize/index.d.ts
vendored
Normal file
117
types/forest-express-sequelize/index.d.ts
vendored
Normal file
@ -0,0 +1,117 @@
|
||||
// Type definitions for forest-express-sequelize 6.3
|
||||
// Project: http://www.forestadmin.com
|
||||
// Definitions by: Steve Bunlon <https://github.com/SteveBunlon>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
import { RequestHandler, Response } from "express";
|
||||
|
||||
// Everything related to Forest constants
|
||||
|
||||
export const PUBLIC_ROUTES: string[];
|
||||
|
||||
// Everything related to record manipulation
|
||||
|
||||
export class AbstractRecordTool {
|
||||
constructor(model: object)
|
||||
serialize(records: object[]): StatSerialized;
|
||||
}
|
||||
|
||||
export class RecordGetter extends AbstractRecordTool {
|
||||
get(recordId: string): Promise<object>;
|
||||
}
|
||||
|
||||
export class RecordsGetter extends AbstractRecordTool {
|
||||
getAll(params: Params): Promise<object[]>;
|
||||
getIdsFromRequest(params: Params): Promise<string[]>;
|
||||
}
|
||||
|
||||
export class RecordsCounter extends AbstractRecordTool {
|
||||
count(params: Params): Promise<number>;
|
||||
}
|
||||
|
||||
export class RecordsExporter extends AbstractRecordTool {
|
||||
streamExport(response: Response, params: Params): Promise<void>;
|
||||
}
|
||||
|
||||
export class RecordUpdater extends AbstractRecordTool {
|
||||
deserialize(body: object): Promise<object>;
|
||||
update(record: object, recordId: string): Promise<object>;
|
||||
}
|
||||
|
||||
export class RecordCreator extends AbstractRecordTool {
|
||||
deserialize(body: object): Promise<object>;
|
||||
create(record: object): Promise<object>;
|
||||
}
|
||||
|
||||
export class RecordRemover extends AbstractRecordTool {
|
||||
remove(recordId: string): Promise<void>;
|
||||
}
|
||||
|
||||
export class RecordsRemover extends AbstractRecordTool {
|
||||
remove(recordIds: string[]): Promise<void>;
|
||||
}
|
||||
|
||||
export class RecordSerializer extends AbstractRecordTool { }
|
||||
|
||||
// Everyting related to Forest permissions
|
||||
|
||||
export class PermissionMiddlewareCreator {
|
||||
constructor(collectionName: string)
|
||||
list(): RequestHandler;
|
||||
export(): RequestHandler;
|
||||
details(): RequestHandler;
|
||||
create(): RequestHandler;
|
||||
update(): RequestHandler;
|
||||
delete(): RequestHandler;
|
||||
smartAction(): RequestHandler;
|
||||
}
|
||||
|
||||
// Everything related to Forest Charts
|
||||
|
||||
export interface StatSerialized {
|
||||
data: {
|
||||
type: string,
|
||||
id: string,
|
||||
attributes: {
|
||||
value: any[]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export class StatSerializer {
|
||||
constructor(stats: { value: any[] })
|
||||
perform(): StatSerialized;
|
||||
}
|
||||
|
||||
// Everything related to Forest request params
|
||||
|
||||
export interface Page {
|
||||
number: string;
|
||||
size: string;
|
||||
}
|
||||
|
||||
export interface Filter {
|
||||
field: string;
|
||||
operator: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export enum Aggregator {
|
||||
AND = 'and',
|
||||
OR = 'or'
|
||||
}
|
||||
|
||||
export interface AggregatedFilters {
|
||||
aggregator: Aggregator;
|
||||
conditions: Filter[];
|
||||
}
|
||||
|
||||
export interface Params {
|
||||
timezone: string;
|
||||
search: string;
|
||||
fields: {[key: string]: string};
|
||||
sort: string;
|
||||
filters: Filter|AggregatedFilters;
|
||||
page: Page;
|
||||
searchExtended: string;
|
||||
}
|
||||
23
types/forest-express-sequelize/tsconfig.json
Normal file
23
types/forest-express-sequelize/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictFunctionTypes": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"forest-express-sequelize-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/forest-express-sequelize/tslint.json
Normal file
1
types/forest-express-sequelize/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user