Skip to content

Commit

Permalink
fix(core): rename public types without prefix
Browse files Browse the repository at this point in the history
  • Loading branch information
francoischalifour committed Sep 17, 2020
1 parent e463933 commit 77487a6
Show file tree
Hide file tree
Showing 12 changed files with 56 additions and 47 deletions.
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/createAutocomplete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ import { getDefaultProps } from './getDefaultProps';
import { getPropGetters } from './getPropGetters';
import { onInput } from './onInput';
import { stateReducer } from './stateReducer';
import { AutocompleteApi, PublicAutocompleteOptions } from './types';
import { AutocompleteApi, AutocompleteOptions } from './types';

export function createAutocomplete<
TItem extends {},
TEvent = Event,
TMouseEvent = MouseEvent,
TKeyboardEvent = KeyboardEvent
>(
options: PublicAutocompleteOptions<TItem>
options: AutocompleteOptions<TItem>
): AutocompleteApi<TItem, TEvent, TMouseEvent, TKeyboardEvent> {
const props = getDefaultProps(options);
const store = createStore(stateReducer, props);
Expand Down
6 changes: 3 additions & 3 deletions packages/autocomplete-core/src/createStore.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { getCompletion } from './getCompletion';
import {
AutocompleteOptions,
InternalAutocompleteOptions,
AutocompleteState,
AutocompleteStore,
Reducer,
} from './types';

export function createStore<TItem>(
reducer: Reducer,
props: AutocompleteOptions<TItem>
props: InternalAutocompleteOptions<TItem>
): AutocompleteStore<TItem> {
return {
state: props.initialState,
Expand All @@ -28,7 +28,7 @@ export function createStore<TItem>(

function withCompletion<TItem>(
state: AutocompleteState<TItem>,
props: AutocompleteOptions<TItem>
props: InternalAutocompleteOptions<TItem>
) {
return {
...state,
Expand Down
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/getCompletion.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { AutocompleteOptions, AutocompleteState } from './types';
import { InternalAutocompleteOptions, AutocompleteState } from './types';
import { getHighlightedItem } from './utils';

interface GetCompletionProps<TItem> {
state: AutocompleteState<TItem>;
props: AutocompleteOptions<TItem>;
props: InternalAutocompleteOptions<TItem>;
}

export function getCompletion<TItem>({
Expand Down
6 changes: 3 additions & 3 deletions packages/autocomplete-core/src/getDefaultProps.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AutocompleteOptions, PublicAutocompleteOptions } from './types';
import { InternalAutocompleteOptions, AutocompleteOptions } from './types';
import {
generateAutocompleteId,
getItemsCount,
Expand All @@ -7,8 +7,8 @@ import {
} from './utils';

export function getDefaultProps<TItem>(
props: PublicAutocompleteOptions<TItem>
): AutocompleteOptions<TItem> {
props: AutocompleteOptions<TItem>
): InternalAutocompleteOptions<TItem> {
const environment: typeof window = (typeof window !== 'undefined'
? window
: {}) as typeof window;
Expand Down
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/getPropGetters.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { onInput } from './onInput';
import { onKeyDown } from './onKeyDown';
import {
AutocompleteOptions,
InternalAutocompleteOptions,
AutocompleteSetters,
AutocompleteStore,
GetDropdownProps,
Expand All @@ -17,7 +17,7 @@ import { getHighlightedItem, isOrContainsNode, isSpecialClick } from './utils';

interface GetPropGettersOptions<TItem> extends AutocompleteSetters<TItem> {
store: AutocompleteStore<TItem>;
props: AutocompleteOptions<TItem>;
props: InternalAutocompleteOptions<TItem>;
}

export function getPropGetters<TItem, TEvent, TMouseEvent, TKeyboardEvent>({
Expand Down
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/onInput.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {
AutocompleteOptions,
InternalAutocompleteOptions,
AutocompleteSetters,
AutocompleteState,
AutocompleteStore,
Expand All @@ -12,7 +12,7 @@ interface OnInputParams<TItem> extends AutocompleteSetters<TItem> {
query: string;
event: any;
store: AutocompleteStore<TItem>;
props: AutocompleteOptions<TItem>;
props: InternalAutocompleteOptions<TItem>;
/**
* The next partial state to apply after the function is called.
*
Expand Down
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/onKeyDown.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { getCompletion } from './getCompletion';
import { onInput } from './onInput';
import {
AutocompleteOptions,
InternalAutocompleteOptions,
AutocompleteSetters,
AutocompleteStore,
} from './types';
Expand All @@ -10,7 +10,7 @@ import { getHighlightedItem } from './utils';
interface OnKeyDownOptions<TItem> extends AutocompleteSetters<TItem> {
event: KeyboardEvent;
store: AutocompleteStore<TItem>;
props: AutocompleteOptions<TItem>;
props: InternalAutocompleteOptions<TItem>;
}

export function onKeyDown<TItem>({
Expand Down
29 changes: 17 additions & 12 deletions packages/autocomplete-core/src/types/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export interface AutocompleteApi<
}

export interface AutocompleteSuggestion<TItem> {
source: AutocompleteSource<TItem>;
source: InternalAutocompleteSource<TItem>;
items: TItem[];
}

Expand All @@ -32,9 +32,13 @@ export interface GetSourcesParams<TItem> extends AutocompleteSetters<TItem> {

interface ItemParams<TItem> {
suggestion: TItem;
suggestionValue: ReturnType<AutocompleteSource<TItem>['getInputValue']>;
suggestionUrl: ReturnType<AutocompleteSource<TItem>['getSuggestionUrl']>;
source: AutocompleteSource<TItem>;
suggestionValue: ReturnType<
InternalAutocompleteSource<TItem>['getInputValue']
>;
suggestionUrl: ReturnType<
InternalAutocompleteSource<TItem>['getSuggestionUrl']
>;
source: InternalAutocompleteSource<TItem>;
}

interface OnSelectParams<TItem>
Expand All @@ -56,7 +60,7 @@ interface OnInputParams<TItem> extends AutocompleteSetters<TItem> {
state: AutocompleteState<TItem>;
}

export interface PublicAutocompleteSource<TItem> {
export interface AutocompleteSource<TItem> {
// This allows flavors to pass other keys to their source.
// Example: `templates` in the JavaScript API
[key: string]: unknown;
Expand Down Expand Up @@ -98,15 +102,15 @@ export interface PublicAutocompleteSource<TItem> {
onHighlight?(params: OnHighlightParams<TItem>): void;
}

export type AutocompleteSource<TItem> = {
[KParam in keyof PublicAutocompleteSource<TItem>]-?: PublicAutocompleteSource<
export type InternalAutocompleteSource<TItem> = {
[KParam in keyof AutocompleteSource<TItem>]-?: AutocompleteSource<
TItem
>[KParam];
};

export type GetSources<TItem> = (
params: GetSourcesParams<TItem>
) => Promise<Array<AutocompleteSource<TItem>>>;
) => Promise<Array<InternalAutocompleteSource<TItem>>>;

export type Environment =
| Window
Expand Down Expand Up @@ -149,7 +153,7 @@ interface Navigator<TItem> {
}): void;
}

export interface PublicAutocompleteOptions<TItem> {
export interface AutocompleteOptions<TItem> {
/**
* Whether to consider the experience in debug mode.
*
Expand Down Expand Up @@ -214,8 +218,8 @@ export interface PublicAutocompleteOptions<TItem> {
getSources(
params: GetSourcesParams<TItem>
):
| Array<PublicAutocompleteSource<TItem>>
| Promise<Array<PublicAutocompleteSource<TItem>>>;
| Array<AutocompleteSource<TItem>>
| Promise<Array<AutocompleteSource<TItem>>>;
/**
* The environment from where your JavaScript is running.
* Useful if you're using autocomplete in a different context than
Expand Down Expand Up @@ -246,7 +250,8 @@ export interface PublicAutocompleteOptions<TItem> {
}

// Props manipulated internally with default values.
export interface AutocompleteOptions<TItem> {
export interface InternalAutocompleteOptions<TItem>
extends AutocompleteOptions<TItem> {
debug: boolean;
id: string;
onStateChange<TItem>(props: { state: AutocompleteState<TItem> }): void;
Expand Down
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/types/getters.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AutocompleteSource } from './api';
import { InternalAutocompleteSource } from './api';

export interface AutocompleteAccessibilityGetters<
TItem,
Expand Down Expand Up @@ -107,7 +107,7 @@ export type GetMenuProps = (props?: {
export type GetItemProps<TItem, TMouseEvent = MouseEvent> = (props: {
[key: string]: unknown;
item: TItem;
source: AutocompleteSource<TItem>;
source: InternalAutocompleteSource<TItem>;
}) => {
id: string;
role: string;
Expand Down
4 changes: 2 additions & 2 deletions packages/autocomplete-core/src/types/store.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AutocompleteOptions } from './api';
import { InternalAutocompleteOptions } from './api';
import { AutocompleteState } from './state';

export interface AutocompleteStore<TItem> {
Expand All @@ -10,7 +10,7 @@ export interface AutocompleteStore<TItem> {
export type Reducer = <TItem>(
action: Action,
state: AutocompleteState<TItem>,
props: AutocompleteOptions<TItem>
props: InternalAutocompleteOptions<TItem>
) => AutocompleteState<TItem>;

type Action = {
Expand Down
18 changes: 10 additions & 8 deletions packages/autocomplete-core/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import {
AutocompleteOptions,
AutocompleteSource,
InternalAutocompleteOptions,
InternalAutocompleteSource,
AutocompleteState,
AutocompleteSuggestion,
GetSources,
PublicAutocompleteOptions,
PublicAutocompleteSource,
AutocompleteOptions,
AutocompleteSource,
} from './types';

export const noop = () => {};
Expand Down Expand Up @@ -40,8 +40,8 @@ export function isSpecialClick(event: MouseEvent): boolean {
}

function normalizeSource<TItem>(
source: PublicAutocompleteSource<TItem>
): AutocompleteSource<TItem> {
source: AutocompleteSource<TItem>
): InternalAutocompleteSource<TItem> {
return {
getInputValue({ state }) {
return state.query;
Expand All @@ -58,7 +58,7 @@ function normalizeSource<TItem>(
}

export function normalizeGetSources<TItem>(
getSources: PublicAutocompleteOptions<TItem>['getSources']
getSources: AutocompleteOptions<TItem>['getSources']
): GetSources<TItem> {
return (options) => {
return Promise.resolve(getSources(options)).then((sources) =>
Expand All @@ -75,7 +75,9 @@ export function getNextHighlightedIndex<TItem>(
moveAmount: number,
baseIndex: number | null,
itemCount: number,
defaultHighlightedIndex: AutocompleteOptions<TItem>['defaultHighlightedIndex']
defaultHighlightedIndex: InternalAutocompleteOptions<
TItem
>['defaultHighlightedIndex']
): number | null {
// We allow circular keyboard navigation from the base index.
// The base index can either be `null` (nothing is highlighted) or `0`
Expand Down
16 changes: 9 additions & 7 deletions packages/autocomplete-js/src/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import {
GetSourcesParams,
AutocompleteSetters as AutocompleteCoreSetters,
AutocompleteSource as AutocompleteCoreSource,
InternalAutocompleteSource as InternalAutocompleteCoreSource,
AutocompleteState as AutocompleteCoreState,
PublicAutocompleteOptions as PublicAutocompleteCoreOptions,
PublicAutocompleteSource as PublicAutocompleteCoreSource,
AutocompleteOptions as AutocompleteCoreOptions,
AutocompleteSource as AutocompleteCoreSource,
} from '@algolia/autocomplete-core';

type Template<TParams> = (params: TParams) => string | void;

export type AutocompleteSource<TItem> = AutocompleteCoreSource<TItem> & {
export type AutocompleteSource<TItem> = InternalAutocompleteCoreSource<
TItem
> & {
/**
* Templates to display in the autocomplete dropdown.
*
Expand Down Expand Up @@ -44,11 +46,11 @@ export type AutocompleteSource<TItem> = AutocompleteCoreSource<TItem> & {
type GetSources<TItem> = (
params: GetSourcesParams<TItem>
) =>
| Array<PublicAutocompleteCoreSource<TItem>>
| Promise<Array<PublicAutocompleteCoreSource<TItem>>>;
| Array<AutocompleteCoreSource<TItem>>
| Promise<Array<AutocompleteCoreSource<TItem>>>;

export interface AutocompleteOptions<TItem>
extends PublicAutocompleteCoreOptions<TItem> {
extends AutocompleteCoreOptions<TItem> {
/**
* The container for the autocomplete search box.
*
Expand Down

0 comments on commit 77487a6

Please sign in to comment.