Skip to content

chore: Enforce import types #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Aug 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
"require-await": "off",
"@typescript-eslint/require-await": "error",
"@typescript-eslint/naming-convention": "error",
"import/no-cycle": "error",
"import/no-self-import": "error",
"@typescript-eslint/consistent-type-imports": "error",
"import/order": [
2,
{
Expand Down
2 changes: 1 addition & 1 deletion src/grpc/plugin.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { pluginV3 } from '@cloudquery/plugin-pb-javascript';
import grpc = require('@grpc/grpc-js');

import { Plugin } from '../plugin/plugin.js';
import type { Plugin } from '../plugin/plugin.js';
import { encodeTables, flattenTables } from '../schema/table.js';

export class MigrateTable extends pluginV3.cloudquery.plugin.v3.Sync.MessageMigrateTable {}
Expand Down
4 changes: 2 additions & 2 deletions src/grpc/server.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { pluginV3, discovery1 } from '@cloudquery/plugin-pb-javascript';
import grpc = require('@grpc/grpc-js');
import winston from 'winston';
import type winston from 'winston';

import { Plugin } from '../plugin/plugin.js';
import type { Plugin } from '../plugin/plugin.js';

import { DiscoveryServer } from './discovery.js';
import { PluginServer } from './plugin.js';
Expand Down
2 changes: 1 addition & 1 deletion src/memdb/delete-stale.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DeleteStale } from '../grpc/plugin.js';
import type { DeleteStale } from '../grpc/plugin.js';

export type DeleteStaleFunction = (message: DeleteStale) => void;

Expand Down
6 changes: 4 additions & 2 deletions src/memdb/memdb.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { default as Ajv } from 'ajv';

import { Plugin, newPlugin, SyncOptions, TableOptions, NewClientFunction } from '../plugin/plugin.js';
import type { Plugin, SyncOptions, TableOptions, NewClientFunction } from '../plugin/plugin.js';
import { newPlugin } from '../plugin/plugin.js';
import { sync } from '../scheduler/scheduler.js';
import { Table, filterTables } from '../schema/table.js';
import type { Table } from '../schema/table.js';
import { filterTables } from '../schema/table.js';

import { createDeleteStale } from './delete-stale.js';
import { createOverwrite } from './overwrite.js';
Expand Down
4 changes: 2 additions & 2 deletions src/memdb/overwrite.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { StructRowProxy } from '@apache-arrow/esnext-esm';
import type { StructRowProxy } from '@apache-arrow/esnext-esm';

import { Table } from '../schema/table.js';
import type { Table } from '../schema/table.js';

//eslint-disable-next-line @typescript-eslint/no-explicit-any
export type OverwriteFunction = (table: Table, primaryKeys: string[], record: StructRowProxy<any>) => void;
Expand Down
2 changes: 1 addition & 1 deletion src/memdb/read.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ReadStream, ReadRequest } from '../grpc/plugin.js';
import type { ReadStream, ReadRequest } from '../grpc/plugin.js';
import { decodeTable } from '../schema/table.js';

//eslint-disable-next-line @typescript-eslint/no-explicit-any
Expand Down
9 changes: 5 additions & 4 deletions src/memdb/write.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { WriteStream, WriteRequest } from '../grpc/plugin.js';
import { Table, decodeTable, decodeRecord, getPrimaryKeys } from '../schema/table.js';
import type { WriteStream, WriteRequest } from '../grpc/plugin.js';
import type { Table } from '../schema/table.js';
import { decodeTable, decodeRecord, getPrimaryKeys } from '../schema/table.js';

import { DeleteStaleFunction } from './delete-stale.js';
import { OverwriteFunction } from './overwrite.js';
import type { DeleteStaleFunction } from './delete-stale.js';
import type { OverwriteFunction } from './overwrite.js';

export const createWrite = (
//eslint-disable-next-line @typescript-eslint/no-explicit-any
Expand Down
6 changes: 3 additions & 3 deletions src/plugin/plugin.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Logger } from 'winston';
import type { Logger } from 'winston';

import { SyncStream, ReadStream, WriteStream } from '../grpc/plugin.js';
import { Table } from '../schema/table.js';
import type { SyncStream, ReadStream, WriteStream } from '../grpc/plugin.js';
import type { Table } from '../schema/table.js';

export type BackendOptions = {
tableName: string;
Expand Down
3 changes: 2 additions & 1 deletion src/plugin/serve.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import test from 'ava';

import { newMemDBPlugin } from '../memdb/memdb.js';

import { createServeCommand, ServeArguments } from './serve.js';
import type { ServeArguments } from './serve.js';
import { createServeCommand } from './serve.js';

const serve = createServeCommand(newMemDBPlugin()).exitProcess(false);

Expand Down
2 changes: 1 addition & 1 deletion src/plugin/serve.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { hideBin } from 'yargs/helpers';
import { startServer, Network } from '../grpc/server.js';
import { LogFormat, LogLevel, createLogger } from '../logger/logger.js';

import { Plugin } from './plugin.js';
import type { Plugin } from './plugin.js';

const TELEMETRY_LEVEL_CHOICES = ['none', 'errors', 'stats', 'all'] as const;

Expand Down
2 changes: 1 addition & 1 deletion src/scalar/bool.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Bool as ArrowBool } from '@apache-arrow/esnext-esm';
import { boolean, isBooleanable } from 'boolean';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Bool implements Scalar<boolean> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/date.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Date_ as ArrowDate, DateUnit } from '@apache-arrow/esnext-esm';
import type { DataType, DateUnit } from '@apache-arrow/esnext-esm';
import { Date_ as ArrowDate } from '@apache-arrow/esnext-esm';
import { DateTime } from 'luxon';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Date implements Scalar<DateTime> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/float32.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { DataType, Float32 as ArrowFloat32 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Float32 as ArrowFloat32 } from '@apache-arrow/esnext-esm';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Float32 implements Scalar<number> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/float64.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { DataType, Float64 as ArrowFloat64 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Float64 as ArrowFloat64 } from '@apache-arrow/esnext-esm';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Float64 implements Scalar<number> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/int16.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Int16 as ArrowInt16 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Int16 as ArrowInt16 } from '@apache-arrow/esnext-esm';
import { bigIntToNumber } from '@apache-arrow/esnext-esm/util/bigint.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Int16 implements Scalar<bigint> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/int32.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Int32 as ArrowInt32 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Int32 as ArrowInt32 } from '@apache-arrow/esnext-esm';
import { bigIntToNumber } from '@apache-arrow/esnext-esm/util/bigint.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Int32 implements Scalar<bigint> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/int64.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Int64 as ArrowInt64 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Int64 as ArrowInt64 } from '@apache-arrow/esnext-esm';
import { bigIntToNumber } from '@apache-arrow/esnext-esm/util/bigint.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Int64 implements Scalar<bigint> {
Expand Down
4 changes: 2 additions & 2 deletions src/scalar/json.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Utf8 as ArrowString } from '@apache-arrow/esnext-esm';

import { Nullable } from '../schema/types.js';
import type { Nullable } from '../schema/types.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

const validate = (value: string) => {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/list.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { DataType, List as ArrowList } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { List as ArrowList } from '@apache-arrow/esnext-esm';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

type TVector<T extends Scalar<unknown>> = T[];
Expand Down
2 changes: 1 addition & 1 deletion src/scalar/text.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Utf8 as ArrowString } from '@apache-arrow/esnext-esm';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Text implements Scalar<string> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/timestamp.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Timestamp as ArrowTimestamp, TimeUnit } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Timestamp as ArrowTimestamp, TimeUnit } from '@apache-arrow/esnext-esm';
import { DateTime } from 'luxon';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Timestamp implements Scalar<DateTime> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/uint16.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Uint16 as ArrowUint16 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Uint16 as ArrowUint16 } from '@apache-arrow/esnext-esm';
import { bigIntToNumber } from '@apache-arrow/esnext-esm/util/bigint.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Uint16 implements Scalar<bigint> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/uint32.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Uint32 as ArrowUint32 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Uint32 as ArrowUint32 } from '@apache-arrow/esnext-esm';
import { bigIntToNumber } from '@apache-arrow/esnext-esm/util/bigint.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Uint32 implements Scalar<bigint> {
Expand Down
5 changes: 3 additions & 2 deletions src/scalar/uint64.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { DataType, Uint64 as ArrowUint64 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Uint64 as ArrowUint64 } from '@apache-arrow/esnext-esm';
import { bigIntToNumber } from '@apache-arrow/esnext-esm/util/bigint.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class Uint64 implements Scalar<bigint> {
Expand Down
4 changes: 2 additions & 2 deletions src/scalar/uuid.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { FixedSizeBinary } from '@apache-arrow/esnext-esm';
import { parse, stringify } from 'uuid';

import { Nullable } from '../schema/types.js';
import type { Nullable } from '../schema/types.js';

import { Scalar } from './scalar.js';
import type { Scalar } from './scalar.js';
import { isInvalid, NULL_VALUE } from './util.js';

export class UUID implements Scalar<Nullable<Uint8Array>> {
Expand Down
2 changes: 1 addition & 1 deletion src/scheduler/cqid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { createHash } from 'node:crypto';
import { v4 as uuidv4, v5 as uuidv5, NIL as NIL_UUID } from 'uuid';

import { cqIDColumn } from '../schema/meta.js';
import { Resource } from '../schema/resource.js';
import type { Resource } from '../schema/resource.js';
import { getPrimaryKeys } from '../schema/table.js';

export const setCQId = (resource: Resource, deterministicCQId: boolean, generator: () => string = uuidv4) => {
Expand Down
14 changes: 8 additions & 6 deletions src/scheduler/scheduler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@ import { Duplex } from 'node:stream';

import pMap from 'p-map';
import pTimeout from 'p-timeout';
import { Logger } from 'winston';
import type { Logger } from 'winston';

import { SyncStream, SyncResponse, MigrateTable, Insert } from '../grpc/plugin.js';
import { Column } from '../schema/column.js';
import { ClientMeta } from '../schema/meta.js';
import type { SyncStream } from '../grpc/plugin.js';
import { SyncResponse, MigrateTable, Insert } from '../grpc/plugin.js';
import type { Column } from '../schema/column.js';
import type { ClientMeta } from '../schema/meta.js';
import { Resource, encodeResource } from '../schema/resource.js';
import { Table, encodeTable, flattenTables } from '../schema/table.js';
import { Nullable } from '../schema/types.js';
import type { Table } from '../schema/table.js';
import { encodeTable, flattenTables } from '../schema/table.js';
import type { Nullable } from '../schema/types.js';

import { setCQId } from './cqid.js';

Expand Down
10 changes: 6 additions & 4 deletions src/schema/column.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { isDeepStrictEqual } from 'node:util';

import { DataType, Field, Utf8 } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Field, Utf8 } from '@apache-arrow/esnext-esm';

import { ExtensionType, isExtensionType } from '../types/extensions.js';
import type { ExtensionType } from '../types/extensions.js';
import { isExtensionType } from '../types/extensions.js';

import * as arrow from './arrow.js';
import { ClientMeta } from './meta.js';
import { Resource } from './resource.js';
import type { ClientMeta } from './meta.js';
import type { Resource } from './resource.js';

export type ColumnResolver = (meta: ClientMeta, resource: Resource, c: Column) => Promise<void>;

Expand Down
8 changes: 5 additions & 3 deletions src/schema/meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ import { Utf8, TimeNanosecond } from '@apache-arrow/esnext-esm';

import { UUIDType } from '../types/uuid.js';

import { Column, createColumn, ColumnResolver } from './column.js';
import { Resource } from './resource.js';
import { Table, getPrimaryKeys } from './table.js';
import type { Column, ColumnResolver } from './column.js';
import { createColumn } from './column.js';
import type { Resource } from './resource.js';
import type { Table } from './table.js';
import { getPrimaryKeys } from './table.js';

export type ClientMeta = {
id: () => string;
Expand Down
2 changes: 1 addition & 1 deletion src/schema/resolvers.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { getProperty } from 'dot-prop';

import { ColumnResolver } from './column.js';
import type { ColumnResolver } from './column.js';

export const pathResolver = (path: string): ColumnResolver => {
return (_, resource, c) => {
Expand Down
8 changes: 5 additions & 3 deletions src/schema/resource.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import { tableToIPC, Table as ArrowTable, RecordBatch, vectorFromArray } from '@apache-arrow/esnext-esm';

import { Scalar, Vector, newScalar } from '../scalar/scalar.js';
import type { Scalar, Vector } from '../scalar/scalar.js';
import { newScalar } from '../scalar/scalar.js';
import { isExtensionType } from '../types/extensions.js';

import { cqIDColumn } from './meta.js';
import { Table, toArrowSchema } from './table.js';
import { Nullable } from './types.js';
import type { Table } from './table.js';
import { toArrowSchema } from './table.js';
import type { Nullable } from './types.js';

export class Resource {
item: unknown;
Expand Down
14 changes: 8 additions & 6 deletions src/schema/table.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import { Writable } from 'node:stream';
import type { Writable } from 'node:stream';

import { Table as ArrowTable, tableFromIPC, tableToIPC, Schema, RecordBatch } from '@apache-arrow/esnext-esm';
import type { RecordBatch } from '@apache-arrow/esnext-esm';
import { Table as ArrowTable, tableFromIPC, tableToIPC, Schema } from '@apache-arrow/esnext-esm';
import { isMatch } from 'matcher';

import * as arrow from './arrow.js';
import { Column, fromArrowField, toArrowField } from './column.js';
import { ClientMeta } from './meta.js';
import { Resource } from './resource.js';
import { Nullable } from './types.js';
import type { Column } from './column.js';
import { fromArrowField, toArrowField } 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>;
Expand Down
3 changes: 2 additions & 1 deletion src/transformers/openapi.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Utf8, Int64, Bool } from '@apache-arrow/esnext-esm';
import test from 'ava';

import { Column, createColumn } from '../schema/column.js';
import type { Column } from '../schema/column.js';
import { createColumn } from '../schema/column.js';
import { JSONType } from '../types/json.js';

import { oapiDefinitionToColumns } from './openapi.js';
Expand Down
6 changes: 4 additions & 2 deletions src/transformers/openapi.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { DataType, Utf8, Int64, Bool } from '@apache-arrow/esnext-esm';
import type { DataType } from '@apache-arrow/esnext-esm';
import { Utf8, Int64, Bool } from '@apache-arrow/esnext-esm';

import { Column, createColumn } from '../schema/column.js';
import type { Column } from '../schema/column.js';
import { createColumn } from '../schema/column.js';
import { JSONType } from '../types/json.js';

interface OAPIProperty {
Expand Down
Loading