Skip to content

Commit

Permalink
Merge pull request #1356 from opencomponents/infer-storage-type
Browse files Browse the repository at this point in the history
infer storage type and export config type
  • Loading branch information
ricardo-devis-agullo authored Feb 3, 2024
2 parents 832b749 + 3fc668e commit 936bcdb
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export { default as cli } from './cli/programmatic-api';
export { default as Client } from 'oc-client';
export { default as Registry } from './registry';
export { default as Registry, RegistryOptions } from './registry';
5 changes: 3 additions & 2 deletions src/registry/domain/options-sanitiser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ import * as auth from './authentication';

const DEFAULT_NODE_KEEPALIVE_MS = 5000;

export interface Input extends Partial<Omit<Config, 'beforePublish'>> {
export interface RegistryOptions<T = any>
extends Partial<Omit<Config<T>, 'beforePublish'>> {
baseUrl: string;
compileClient?: boolean | { retryLimit?: number; retryInterval?: number };
}

export default function optionsSanitiser(input: Input): Config {
export default function optionsSanitiser(input: RegistryOptions): Config {
const options = { ...input };

if (!options.publishAuth) {
Expand Down
6 changes: 4 additions & 2 deletions src/registry/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ import * as middleware from './middleware';
import * as pluginsInitialiser from './domain/plugins-initialiser';
import Repository from './domain/repository';
import { create as createRouter } from './router';
import sanitiseOptions, { Input } from './domain/options-sanitiser';
import sanitiseOptions, { RegistryOptions } from './domain/options-sanitiser';
import * as validator from './domain/validators';
import { Plugin } from '../types';

export default function registry(inputOptions: Input) {
export { RegistryOptions };

export default function registry<T = any>(inputOptions: RegistryOptions<T>) {
const validationResult =
validator.validateRegistryConfiguration(inputOptions);
if (!validationResult.isValid) {
Expand Down
6 changes: 3 additions & 3 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ export type PublishAuthConfig =
}
| ({ type: string | Authentication } & Record<string, any>);

export interface Config {
export interface Config<T = any> {
baseUrl: string;
compiledClient?: { code: string; map: string; dev: string };
baseUrlFunc?: (opts: { host?: string; secure: boolean }) => string;
Expand Down Expand Up @@ -186,8 +186,8 @@ export interface Config {
componentsDir: string;
};
storage: {
adapter: (options: any) => StorageAdapter;
options: Record<string, any> & { componentsDir: string };
adapter: (options: T) => StorageAdapter;
options: T & { componentsDir: string };
};
tempDir: string;
templates: Template[];
Expand Down

0 comments on commit 936bcdb

Please sign in to comment.