@resin/pinejs
Version:
Pine.js is a sophisticated rules-driven API engine that enables you to define rules in a structured subset of English. Those rules are used in order for Pine.js to generate a database schema and the associated [OData](http://www.odata.org/) API. This make
59 lines (58 loc) • 2.34 kB
TypeScript
import type * as AbstractSQLCompiler from '@resin/abstract-sql-compiler';
import type { ODataBinds, ODataQuery, SupportedMethod } from '@balena/odata-parser';
import type { Tx } from '../database-layer/db';
import type { InstantiatedHooks } from './hooks';
import type { AnyObject } from './common-types';
import * as ODataParser from '@balena/odata-parser';
import * as Bluebird from 'bluebird';
export declare const SyntaxError: typeof ODataParser.SyntaxError;
export { BadRequestError, ParsingError, TranslationError } from './errors';
import * as sbvrUtils from './sbvr-utils';
export declare type OdataBinds = ODataBinds;
export interface UnparsedRequest {
method: string;
url: string;
data?: any;
headers?: {
[header: string]: string;
};
changeSet?: UnparsedRequest[];
_isChangeSet?: boolean;
}
export interface ODataRequest {
method: SupportedMethod;
url: string;
odataQuery: ODataQuery;
odataBinds: OdataBinds;
values: AnyObject;
abstractSqlModel?: AbstractSQLCompiler.AbstractSqlModel;
abstractSqlQuery?: AbstractSQLCompiler.AbstractSqlQuery;
sqlQuery?: AbstractSQLCompiler.SqlResult | AbstractSQLCompiler.SqlResult[];
resourceName: string;
vocabulary: string;
_defer?: boolean;
id?: number;
custom: AnyObject;
tx?: Tx;
modifiedFields?: ReturnType<AbstractSQLCompiler.EngineInstance['getModifiedFields']>;
hooks?: InstantiatedHooks<sbvrUtils.Hooks>;
engine?: AbstractSQLCompiler.Engines;
}
export declare const parseId: (b: any) => any;
export declare const memoizedParseOdata: (url: string) => {
tree: ODataQuery;
binds: ODataBinds;
};
export declare const metadataEndpoints: string[];
export declare function parseOData(b: UnparsedRequest & {
_isChangeSet?: false;
}): Bluebird<ODataRequest>;
export declare function parseOData(b: UnparsedRequest & {
_isChangeSet: true;
}): Bluebird<ODataRequest[]>;
export declare function parseOData(b: UnparsedRequest): Bluebird<ODataRequest | ODataRequest[]>;
export declare const translateUri: <T extends Pick<ODataRequest, "values" | "method" | "odataQuery" | "odataBinds" | "vocabulary" | "abstractSqlModel" | "resourceName">>(request: T & {
abstractSqlQuery?: ODataRequest['abstractSqlQuery'];
}) => T & {
abstractSqlQuery?: ODataRequest['abstractSqlQuery'];
};