Skip to content

Commit 4dbcbf1

Browse files
authored
chore: add "type" import enforcement lint rule and apply (#1292)
Signed-off-by: Todd Baert <[email protected]>
1 parent 8d2fd48 commit 4dbcbf1

File tree

120 files changed

+379
-480
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+379
-480
lines changed

.eslintrc.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
{
88
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
99
"rules": {
10+
"@typescript-eslint/consistent-type-imports": [
11+
"error",
12+
{
13+
"disallowTypeAnnotations": true,
14+
"fixStyle": "separate-type-imports",
15+
"prefer": "type-imports"
16+
}
17+
],
1018
"@nx/enforce-module-boundaries": [
1119
"error",
1220
{

libs/hooks/open-telemetry/src/lib/metrics/metrics-hook.spec.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
import { BeforeHookContext, EvaluationDetails, HookContext, StandardResolutionReasons } from '@openfeature/server-sdk';
1+
import type { BeforeHookContext, EvaluationDetails, HookContext } from '@openfeature/server-sdk';
2+
import { StandardResolutionReasons } from '@openfeature/server-sdk';
23
import opentelemetry from '@opentelemetry/api';
3-
import { DataPoint, MeterProvider, MetricReader, ScopeMetrics } from '@opentelemetry/sdk-metrics';
4+
import type { DataPoint, ScopeMetrics } from '@opentelemetry/sdk-metrics';
5+
import { MeterProvider, MetricReader } from '@opentelemetry/sdk-metrics';
46
import {
57
ACTIVE_COUNT_NAME,
68
ERROR_TOTAL_NAME,
@@ -12,7 +14,7 @@ import {
1214
VARIANT_ATTR,
1315
} from '../conventions';
1416
import { MetricsHook } from './metrics-hook';
15-
import { AttributeMapper } from '../otel-hook';
17+
import type { AttributeMapper } from '../otel-hook';
1618

1719
// no-op "in-memory" reader
1820
class InMemoryMetricReader extends MetricReader {

libs/hooks/open-telemetry/src/lib/metrics/metrics-hook.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1+
import type { BeforeHookContext, Logger } from '@openfeature/server-sdk';
12
import {
2-
BeforeHookContext,
3-
Logger,
43
StandardResolutionReasons,
54
type EvaluationDetails,
65
type FlagValue,
76
type Hook,
87
type HookContext,
98
} from '@openfeature/server-sdk';
10-
import { Attributes, Counter, UpDownCounter, ValueType, metrics } from '@opentelemetry/api';
9+
import type { Attributes, Counter, UpDownCounter } from '@opentelemetry/api';
10+
import { ValueType, metrics } from '@opentelemetry/api';
11+
import type { EvaluationAttributes, ExceptionAttributes } from '../conventions';
1112
import {
1213
ACTIVE_COUNT_NAME,
1314
ERROR_TOTAL_NAME,
1415
EXCEPTION_ATTR,
15-
EvaluationAttributes,
16-
ExceptionAttributes,
1716
KEY_ATTR,
1817
PROVIDER_NAME_ATTR,
1918
REASON_ATTR,
2019
REQUESTS_TOTAL_NAME,
2120
SUCCESS_TOTAL_NAME,
2221
VARIANT_ATTR,
2322
} from '../conventions';
24-
import { OpenTelemetryHook, OpenTelemetryHookOptions } from '../otel-hook';
23+
import type { OpenTelemetryHookOptions } from '../otel-hook';
24+
import { OpenTelemetryHook } from '../otel-hook';
2525

2626
type ErrorEvaluationAttributes = EvaluationAttributes & ExceptionAttributes;
2727

libs/hooks/open-telemetry/src/lib/otel-hook.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { FlagMetadata, Logger } from '@openfeature/server-sdk';
2-
import { Attributes } from '@opentelemetry/api';
1+
import type { FlagMetadata, Logger } from '@openfeature/server-sdk';
2+
import type { Attributes } from '@opentelemetry/api';
33

44
export type AttributeMapper = (flagMetadata: FlagMetadata) => Attributes;
55

libs/hooks/open-telemetry/src/lib/traces/tracing-hook.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { EvaluationDetails, HookContext } from '@openfeature/server-sdk';
1+
import type { EvaluationDetails, HookContext } from '@openfeature/server-sdk';
22

33
const addEvent = jest.fn();
44
const recordException = jest.fn();

libs/hooks/open-telemetry/src/lib/traces/tracing-hook.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { Hook, HookContext, EvaluationDetails, FlagValue, Logger } from '@openfeature/server-sdk';
1+
import type { Hook, HookContext, EvaluationDetails, FlagValue, Logger } from '@openfeature/server-sdk';
22
import { trace } from '@opentelemetry/api';
33
import { FEATURE_FLAG, KEY_ATTR, PROVIDER_NAME_ATTR, VARIANT_ATTR } from '../conventions';
4-
import { OpenTelemetryHook, OpenTelemetryHookOptions } from '../otel-hook';
4+
import type { OpenTelemetryHookOptions } from '../otel-hook';
5+
import { OpenTelemetryHook } from '../otel-hook';
56

67
export type TracingHookOptions = OpenTelemetryHookOptions;
78

libs/providers/aws-ssm/src/integration/integration.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { OpenFeature } from '@openfeature/server-sdk';
22
import { AwsSsmProvider } from '../lib/aws-ssm-provider';
3-
import { GetParameterCommand, GetParameterCommandOutput, SSMClient } from '@aws-sdk/client-ssm';
3+
import type { GetParameterCommandOutput } from '@aws-sdk/client-ssm';
4+
import { GetParameterCommand, SSMClient } from '@aws-sdk/client-ssm';
45
import { mockClient } from 'aws-sdk-client-mock';
56

67
const ssmMock = mockClient(SSMClient);

libs/providers/aws-ssm/src/lib/aws-ssm-provider.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SSMClientConfig } from '@aws-sdk/client-ssm';
1+
import type { SSMClientConfig } from '@aws-sdk/client-ssm';
22
import { AwsSsmProvider } from './aws-ssm-provider';
33
import { ErrorCode, StandardResolutionReasons } from '@openfeature/core';
44

libs/providers/aws-ssm/src/lib/aws-ssm-provider.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
import {
2-
EvaluationContext,
3-
Provider,
4-
JsonValue,
5-
ResolutionDetails,
6-
StandardResolutionReasons,
7-
ErrorCode,
8-
} from '@openfeature/server-sdk';
1+
import type { EvaluationContext, Provider, JsonValue, ResolutionDetails } from '@openfeature/server-sdk';
2+
import { StandardResolutionReasons, ErrorCode } from '@openfeature/server-sdk';
93
import { InternalServerError } from '@aws-sdk/client-ssm';
10-
import { AwsSsmProviderConfig } from './types';
4+
import type { AwsSsmProviderConfig } from './types';
115
import { SSMService } from './ssm-service';
126
import { Cache } from './cache';
137

libs/providers/aws-ssm/src/lib/cache.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { ResolutionDetails } from '@openfeature/core';
2-
import { LRUCacheConfig } from './types';
1+
import type { ResolutionDetails } from '@openfeature/core';
2+
import type { LRUCacheConfig } from './types';
33
import { LRUCache } from 'lru-cache';
44

55
export class Cache {

libs/providers/aws-ssm/src/lib/ssm-service.ts

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
1-
import {
2-
GetParameterCommand,
3-
SSMClient,
4-
SSMClientConfig,
5-
GetParameterCommandInput,
6-
DescribeParametersCommand,
7-
} from '@aws-sdk/client-ssm';
8-
import { ResponseMetadata } from '@smithy/types';
9-
import {
10-
FlagNotFoundError,
11-
TypeMismatchError,
12-
JsonValue,
13-
ParseError,
14-
ResolutionDetails,
15-
StandardResolutionReasons,
16-
} from '@openfeature/core';
1+
import type { SSMClientConfig, GetParameterCommandInput } from '@aws-sdk/client-ssm';
2+
import { GetParameterCommand, SSMClient, DescribeParametersCommand } from '@aws-sdk/client-ssm';
3+
import type { ResponseMetadata } from '@smithy/types';
4+
import type { JsonValue, ResolutionDetails } from '@openfeature/core';
5+
import { FlagNotFoundError, TypeMismatchError, ParseError, StandardResolutionReasons } from '@openfeature/core';
176

187
export class SSMService {
198
client: SSMClient;

libs/providers/aws-ssm/src/lib/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SSMClientConfig } from '@aws-sdk/client-ssm';
1+
import type { SSMClientConfig } from '@aws-sdk/client-ssm';
22

33
export type AwsSsmProviderConfig = {
44
ssmClientConfig: SSMClientConfig;

libs/providers/config-cat-web/src/lib/config-cat-web-provider.spec.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
import { ConfigCatWebProvider } from './config-cat-web-provider';
2-
import {
3-
createConsoleLogger,
4-
createFlagOverridesFromMap,
5-
HookEvents,
6-
IConfigCatCache,
7-
ISettingUnion,
8-
LogLevel,
9-
OverrideBehaviour,
10-
} from 'configcat-js-ssr';
11-
import { EventEmitter } from 'events';
2+
import type { HookEvents, IConfigCatCache, ISettingUnion } from 'configcat-js-ssr';
3+
import { createConsoleLogger, createFlagOverridesFromMap, LogLevel, OverrideBehaviour } from 'configcat-js-ssr';
4+
import type { EventEmitter } from 'events';
125
import { ProviderEvents, ParseError, FlagNotFoundError, TypeMismatchError } from '@openfeature/web-sdk';
136

147
describe('ConfigCatWebProvider', () => {

libs/providers/config-cat-web/src/lib/config-cat-web-provider.ts

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,15 @@
1+
import type { EvaluationContext, JsonValue, Paradigm, Provider, ResolutionDetails } from '@openfeature/web-sdk';
12
import {
2-
EvaluationContext,
3-
JsonValue,
43
OpenFeatureEventEmitter,
5-
Paradigm,
64
ParseError,
7-
Provider,
85
ProviderEvents,
96
ProviderNotReadyError,
10-
ResolutionDetails,
117
TypeMismatchError,
128
} from '@openfeature/web-sdk';
13-
import {
14-
isType,
15-
parseError,
16-
PrimitiveType,
17-
PrimitiveTypeName,
18-
toResolutionDetails,
19-
transformContext,
20-
} from '@openfeature/config-cat-core';
21-
import {
22-
ClientCacheState,
23-
getClient,
24-
IConfig,
25-
IConfigCatClient,
26-
OptionsForPollingMode,
27-
PollingMode,
28-
SettingValue,
29-
} from 'configcat-js-ssr';
9+
import type { PrimitiveType, PrimitiveTypeName } from '@openfeature/config-cat-core';
10+
import { isType, parseError, toResolutionDetails, transformContext } from '@openfeature/config-cat-core';
11+
import type { IConfig, IConfigCatClient, OptionsForPollingMode, SettingValue } from 'configcat-js-ssr';
12+
import { ClientCacheState, getClient, PollingMode } from 'configcat-js-ssr';
3013

3114
export class ConfigCatWebProvider implements Provider {
3215
public readonly events = new OpenFeatureEventEmitter();

libs/providers/config-cat/src/lib/config-cat-provider.spec.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import { ConfigCatProvider } from './config-cat-provider';
22
import { ProviderEvents, ParseError, FlagNotFoundError, TypeMismatchError } from '@openfeature/web-sdk';
3+
import type { HookEvents, IConfigCatCache, ISettingUnion } from 'configcat-js-ssr';
34
import {
45
createConsoleLogger,
56
createFlagOverridesFromMap,
6-
HookEvents,
7-
IConfigCatCache,
8-
ISettingUnion,
97
LogLevel,
108
OverrideBehaviour,
119
PollingMode,
1210
} from 'configcat-js-ssr';
13-
import { EventEmitter } from 'events';
11+
import type { EventEmitter } from 'events';
1412

1513
describe('ConfigCatProvider', () => {
1614
const targetingKey = 'abc';

libs/providers/config-cat/src/lib/config-cat-provider.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
1+
import type { EvaluationContext, JsonValue, Provider, ResolutionDetails, Paradigm } from '@openfeature/server-sdk';
12
import {
2-
EvaluationContext,
3-
JsonValue,
43
OpenFeatureEventEmitter,
5-
Provider,
64
ProviderEvents,
7-
ResolutionDetails,
8-
Paradigm,
95
ProviderNotReadyError,
106
TypeMismatchError,
117
ParseError,
128
} from '@openfeature/server-sdk';
13-
import {
14-
isType,
15-
parseError,
16-
PrimitiveType,
17-
PrimitiveTypeName,
18-
toResolutionDetails,
19-
transformContext,
20-
} from '@openfeature/config-cat-core';
21-
import { ClientCacheState, PollingMode, SettingValue } from 'configcat-common';
22-
import { IConfigCatClient, getClient, IConfig, OptionsForPollingMode } from 'configcat-node';
9+
import type { PrimitiveType, PrimitiveTypeName } from '@openfeature/config-cat-core';
10+
import { isType, parseError, toResolutionDetails, transformContext } from '@openfeature/config-cat-core';
11+
import type { SettingValue } from 'configcat-common';
12+
import { ClientCacheState, PollingMode } from 'configcat-common';
13+
import type { IConfigCatClient, IConfig, OptionsForPollingMode } from 'configcat-node';
14+
import { getClient } from 'configcat-node';
2315

2416
export class ConfigCatProvider implements Provider {
2517
public readonly events = new OpenFeatureEventEmitter();

libs/providers/env-var/src/lib/env-var-provider.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
1-
import {
2-
FlagNotFoundError,
3-
JsonValue,
4-
ParseError,
5-
Provider,
6-
ResolutionDetails,
7-
StandardResolutionReasons,
8-
} from '@openfeature/server-sdk';
1+
import type { JsonValue, Provider, ResolutionDetails } from '@openfeature/server-sdk';
2+
import { FlagNotFoundError, ParseError, StandardResolutionReasons } from '@openfeature/server-sdk';
93
import { constantCase } from './constant-case';
104

115
export type Config = {

libs/providers/flagd-web/src/e2e/step-definitions/flag.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
import { StepDefinitions } from 'jest-cucumber';
2-
import {
3-
EvaluationDetails,
4-
FlagValue,
5-
JsonObject,
6-
OpenFeature,
7-
ProviderEvents,
8-
StandardResolutionReasons,
9-
} from '@openfeature/web-sdk';
1+
import type { StepDefinitions } from 'jest-cucumber';
2+
import type { EvaluationDetails, FlagValue, JsonObject } from '@openfeature/web-sdk';
3+
import { OpenFeature, ProviderEvents, StandardResolutionReasons } from '@openfeature/web-sdk';
104
import { E2E_CLIENT_NAME } from '@openfeature/flagd-core';
115

126
export const flagStepDefinitions: StepDefinitions = ({ given, and, when, then }) => {

libs/providers/flagd-web/src/e2e/tests/provider.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import assert from 'assert';
22
import { OpenFeature } from '@openfeature/web-sdk';
3-
import { GenericContainer, StartedTestContainer } from 'testcontainers';
3+
import type { StartedTestContainer } from 'testcontainers';
4+
import { GenericContainer } from 'testcontainers';
45
import { FlagdWebProvider } from '../../lib/flagd-web-provider';
56
import { autoBindSteps, loadFeature } from 'jest-cucumber';
67
import { FLAGD_NAME, GHERKIN_EVALUATION_FEATURE } from '../constants';

libs/providers/flagd-web/src/lib/flagd-web-provider.spec.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
1-
import { CallbackClient, Code, ConnectError, PromiseClient } from '@connectrpc/connect';
1+
import type { CallbackClient, ConnectError, PromiseClient } from '@connectrpc/connect';
2+
import { Code } from '@connectrpc/connect';
23
import { Struct } from '@bufbuild/protobuf';
3-
import {
4-
Client,
5-
ErrorCode,
6-
JsonValue,
7-
OpenFeature,
8-
ProviderEvents,
9-
StandardResolutionReasons,
10-
} from '@openfeature/web-sdk';
4+
import type { Client, JsonValue } from '@openfeature/web-sdk';
5+
import { ErrorCode, OpenFeature, ProviderEvents, StandardResolutionReasons } from '@openfeature/web-sdk';
116
import fetchMock from 'jest-fetch-mock';
12-
import { Service } from '../proto/ts/flagd/evaluation/v1/evaluation_connect';
13-
import { AnyFlag, EventStreamResponse, ResolveAllResponse } from '../proto/ts/flagd/evaluation/v1/evaluation_pb';
7+
import type { Service } from '../proto/ts/flagd/evaluation/v1/evaluation_connect';
8+
import type { AnyFlag, EventStreamResponse, ResolveAllResponse } from '../proto/ts/flagd/evaluation/v1/evaluation_pb';
149
import { FlagdWebProvider } from './flagd-web-provider';
1510

1611
const EVENT_CONFIGURATION_CHANGE = 'configuration_change';

libs/providers/flagd-web/src/lib/flagd-web-provider.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
1-
import { CallbackClient, createCallbackClient, createPromiseClient, PromiseClient } from '@connectrpc/connect';
1+
import type { CallbackClient, PromiseClient } from '@connectrpc/connect';
2+
import { createCallbackClient, createPromiseClient } from '@connectrpc/connect';
23
import { createConnectTransport } from '@connectrpc/connect-web';
34
import { Struct } from '@bufbuild/protobuf';
4-
import {
5+
import type {
56
EvaluationContext,
6-
FlagNotFoundError,
77
FlagValue,
88
JsonValue,
99
Logger,
10+
Provider,
11+
ResolutionDetails,
12+
} from '@openfeature/web-sdk';
13+
import {
14+
FlagNotFoundError,
1015
OpenFeature,
1116
OpenFeatureEventEmitter,
12-
Provider,
1317
ProviderEvents,
14-
ResolutionDetails,
1518
StandardResolutionReasons,
1619
TypeMismatchError,
1720
} from '@openfeature/web-sdk';
1821
import { Service } from '../proto/ts/flagd/evaluation/v1/evaluation_connect';
19-
import { AnyFlag } from '../proto/ts/flagd/evaluation/v1/evaluation_pb';
20-
import { FlagdProviderOptions, getOptions } from './options';
22+
import type { AnyFlag } from '../proto/ts/flagd/evaluation/v1/evaluation_pb';
23+
import type { FlagdProviderOptions } from './options';
24+
import { getOptions } from './options';
2125

2226
export const ERROR_DISABLED = 'DISABLED';
2327

libs/providers/flagd/src/e2e/step-definitions/flag.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,6 @@
1-
import { StepDefinitions } from 'jest-cucumber';
2-
import {
3-
EvaluationContext,
4-
EvaluationDetails,
5-
FlagValue,
6-
JsonObject,
7-
OpenFeature,
8-
ProviderEvents,
9-
StandardResolutionReasons,
10-
} from '@openfeature/server-sdk';
1+
import type { StepDefinitions } from 'jest-cucumber';
2+
import type { EvaluationContext, EvaluationDetails, FlagValue, JsonObject } from '@openfeature/server-sdk';
3+
import { OpenFeature, ProviderEvents, StandardResolutionReasons } from '@openfeature/server-sdk';
114
import { E2E_CLIENT_NAME } from '@openfeature/flagd-core';
125

136
export const flagStepDefinitions: StepDefinitions = ({ given, and, when, then }) => {

libs/providers/flagd/src/e2e/step-definitions/reconnect.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { StepDefinitions } from 'jest-cucumber';
1+
import type { StepDefinitions } from 'jest-cucumber';
22
import { OpenFeature, ProviderEvents } from '@openfeature/server-sdk';
33
import { UNAVAILABLE_CLIENT_NAME, UNSTABLE_CLIENT_NAME } from '../constants';
44

0 commit comments

Comments
 (0)