UNPKG

@cloudquery/plugin-sdk-javascript

Version:

This is the high-level package to use for developing CloudQuery plugins in JavaScript

42 lines (41 loc) 2.31 kB
import type { Writable } from 'node:stream'; import type { RecordBatch } from '@apache-arrow/esnext-esm'; import { Schema } from '@apache-arrow/esnext-esm'; import type { Column } from './column.js'; import type { ClientMeta } from './meta.js'; import type { Resource } from './resource.js'; import type { Nullable } from './types.js'; export type TableResolver = (clientMeta: ClientMeta, parent: Nullable<Resource>, stream: Writable) => Promise<void>; export type RowResolver = (clientMeta: ClientMeta, resource: Resource) => Promise<void>; export type Multiplexer = (clientMeta: ClientMeta) => ClientMeta[]; export type Transform = (table: Table) => void; export type Table = { name: string; title: string; description: string; columns: Column[]; relations: Table[]; transform: Transform; resolver: TableResolver; multiplexer: Multiplexer; postResourceResolver: RowResolver; preResourceResolver: RowResolver; isIncremental: boolean; ignoreInTests: boolean; parent: Nullable<Table>; pkConstraintName: string; }; export declare const createTable: ({ name, title, description, columns, relations, transform, resolver, multiplexer, postResourceResolver, preResourceResolver, isIncremental, ignoreInTests, parent, pkConstraintName, }?: Partial<Table>) => Table; export declare const getTablesNames: (tables: Table[]) => string[]; export declare const getTopLevelTableByName: (tables: Table[], name: string) => Table | undefined; export declare const getTableByName: (tables: Table[], name: string) => Table | undefined; export declare const getPrimaryKeys: (table: Table) => string[]; export declare const flattenTables: (tables: Table[]) => Table[]; export declare const getAllParents: (table: Table) => Table[]; export declare const filterTables: (tables: Table[], include: string[], skip: string[], skipDependantTables: boolean) => Table[]; export declare const toArrowSchema: (table: Table) => Schema; export declare const fromArrowSchema: (schema: Schema) => Table; export declare const encodeTable: (table: Table) => Uint8Array; export declare const encodeTables: (tables: Table[]) => Uint8Array[]; export declare const decodeTable: (bytes: Uint8Array) => Table; export declare const decodeRecord: (bytes: Uint8Array) => [string, RecordBatch<any>[]];