From 891fa0919a6d864bfab1f554568c3a7bb901e9b3 Mon Sep 17 00:00:00 2001 From: Jeff LADIRAY Date: Fri, 20 Dec 2024 10:03:04 +0100 Subject: [PATCH] chore(lint): enforce export type --- .eslintrc.js | 5 ++++- packages/agent/src/index.ts | 2 +- packages/datasource-customizer/src/index.ts | 12 ++++++------ packages/datasource-toolkit/src/index.ts | 2 +- packages/forest-cloud/src/index.ts | 2 +- packages/forestadmin-client/src/index.ts | 12 ++++++------ packages/plugin-aws-s3/src/index.ts | 2 +- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 37c89694ba..bc3561e6bf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -95,7 +95,10 @@ module.exports = { // padding around describe and tests "jest-formatting/padding-around-describe-blocks": 2, - "jest-formatting/padding-around-test-blocks": 2 + "jest-formatting/padding-around-test-blocks": 2, + + // Enforce export type when needed + '@typescript-eslint/consistent-type-exports': 'error', }, overrides: [ ...readdirSync(resolve(__dirname, 'packages')) diff --git a/packages/agent/src/index.ts b/packages/agent/src/index.ts index 5914601d92..e50951d10d 100644 --- a/packages/agent/src/index.ts +++ b/packages/agent/src/index.ts @@ -8,7 +8,7 @@ export function createAgent(options: AgentOptions): } export { Agent }; -export { AgentOptions } from './types'; +export type { AgentOptions } from './types'; export * from '@forestadmin/datasource-customizer'; // export is necessary for the agent-generator package diff --git a/packages/datasource-customizer/src/index.ts b/packages/datasource-customizer/src/index.ts index fd8e1cf319..a19094fb5b 100644 --- a/packages/datasource-customizer/src/index.ts +++ b/packages/datasource-customizer/src/index.ts @@ -7,12 +7,12 @@ export * from './types'; // Decorators (helpers) export * from './decorators/actions/types/actions'; export * from './decorators/actions/types/fields'; -export { DataSourceChartDefinition } from './decorators/chart/types'; -export { ComputedDefinition } from './decorators/computed/types'; -export { OperatorDefinition } from './decorators/operators-emulate/types'; -export { RelationDefinition } from './decorators/relation/types'; -export { SearchDefinition } from './decorators/search/types'; -export { SegmentDefinition } from './decorators/segment/types'; +export type { DataSourceChartDefinition } from './decorators/chart/types'; +export type { ComputedDefinition } from './decorators/computed/types'; +export type { OperatorDefinition } from './decorators/operators-emulate/types'; +export type { RelationDefinition } from './decorators/relation/types'; +export type { SearchDefinition } from './decorators/search/types'; +export type { SegmentDefinition } from './decorators/segment/types'; export * from './decorators/write/write-replace/types'; export * from './decorators/hook/types'; export * from './decorators/override/types'; diff --git a/packages/datasource-toolkit/src/index.ts b/packages/datasource-toolkit/src/index.ts index 412c3d8f58..3a352b8b27 100644 --- a/packages/datasource-toolkit/src/index.ts +++ b/packages/datasource-toolkit/src/index.ts @@ -43,7 +43,7 @@ export * from './interfaces/query/sort'; export * from './interfaces/query/page'; export * from './interfaces/record'; export * from './interfaces/schema'; -export { +export type { GenericTree, GenericTreeBranch, GenericTreeLeaf, diff --git a/packages/forest-cloud/src/index.ts b/packages/forest-cloud/src/index.ts index f4d1a3a0e5..cc8d52f7da 100644 --- a/packages/forest-cloud/src/index.ts +++ b/packages/forest-cloud/src/index.ts @@ -4,5 +4,5 @@ import type { ConnectionOptions } from '@forestadmin/datasource-sql'; import { Agent } from './types'; -export { Agent }; +export type { Agent }; export type { ConnectionParams as MongoConnectionParams, ConnectionOptions as SqlConnectionParams }; diff --git a/packages/forestadmin-client/src/index.ts b/packages/forestadmin-client/src/index.ts index 2aa634758e..3e35b6ac85 100644 --- a/packages/forestadmin-client/src/index.ts +++ b/packages/forestadmin-client/src/index.ts @@ -8,7 +8,7 @@ export { default as JTWUnableToVerifyError } from './permissions/errors/jwt-unab export { default as ChainedSQLQueryError } from './permissions/errors/chained-sql-query-error'; export { default as EmptySQLQueryError } from './permissions/errors/empty-sql-query-error'; export { default as NonSelectSQLQueryError } from './permissions/errors/non-select-sql-query-error'; -export { +export type { ForestAdminClientOptions, Logger, LoggerLevel, @@ -19,16 +19,16 @@ export { RawTreeWithSources, ForestAdminServerInterface, } from './types'; -export { IpWhitelistConfiguration } from './ip-whitelist/types'; +export type { IpWhitelistConfiguration } from './ip-whitelist/types'; // These types are used for the agent-generator package -export { - CollectionActionEvent, +export type { EnvironmentPermissionsV4, RenderingPermissionV4, UserPermissionV4, } from './permissions/types'; -export { UserInfo } from './auth/types'; +export { CollectionActionEvent } from './permissions/types'; +export type { UserInfo } from './auth/types'; export default function createForestAdminClient( options: ForestAdminClientOptions, @@ -71,7 +71,7 @@ export { default as ContextVariables } from './utils/context-variables'; export { default as ChartHandler } from './charts/chart-handler'; export { default as ForestAdminClientWithCache } from './forest-admin-client-with-cache'; export { default as buildApplicationServices } from './build-application-services'; -export { HttpOptions } from './permissions/forest-http-api'; +export type { HttpOptions } from './permissions/forest-http-api'; export { default as ForestHttpApi } from './permissions/forest-http-api'; // export is necessary for the agent-generator package export { default as SchemaService } from './schema'; diff --git a/packages/plugin-aws-s3/src/index.ts b/packages/plugin-aws-s3/src/index.ts index d981080ef1..175b014272 100644 --- a/packages/plugin-aws-s3/src/index.ts +++ b/packages/plugin-aws-s3/src/index.ts @@ -12,7 +12,7 @@ import replaceField from './field/replace-field'; import { File, Options } from './types'; import Client from './utils/s3'; -export { Options, File }; +export type { Options, File }; export async function createFileField< S extends TSchema = TSchema,