Skip to content

Commit a3a53fb

Browse files
committed
feat(config-file): defineConfigFileMetadata => defineConfigFile
1 parent 0832c9f commit a3a53fb

3 files changed

Lines changed: 19 additions & 14 deletions

File tree

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import { TypeContainer } from '@angularity/core';
44
import { ConfigFileParser } from './parser';
55
import { ConfigFileValidator } from './validator';
66

7-
export const defineConfigFileMetadata = <T, Schema>(
8-
metadata: ConfigFileMetadata<T, Schema>,
9-
): typeof metadata => metadata;
10-
11-
export interface ConfigFileMetadata<T, Schema> {
7+
export interface ConfigFileDefinition<T, Schema> {
128
path: string;
139
type: TypeContainer<T>;
1410
parser: ProviderToken<ConfigFileParser>;
1511
validator: ProviderToken<ConfigFileValidator<Schema>>;
1612
schema: Schema;
1713
}
14+
15+
export const defineConfigFile = <T, Schema>(
16+
def: ConfigFileDefinition<T, Schema>,
17+
): typeof def => def;

packages/config-files/src/loader.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ import { forwardRef, inject, Injectable, Injector } from '@angular/core';
33
import { Exception } from '@angularity/core';
44
import { catchError, map, Observable } from 'rxjs';
55

6-
import { ConfigFileMetadata } from './metadata';
6+
import { ConfigFileDefinition } from './definition';
77

88
@Injectable({
99
providedIn: 'root',
1010
useExisting: forwardRef(() => HttpClientConfigFileLoader),
1111
})
1212
export abstract class ConfigFileLoader {
13-
abstract load<T, Schema>(meta: ConfigFileMetadata<T, Schema>): Observable<T>;
13+
abstract load<T, Schema>(def: ConfigFileDefinition<T, Schema>): Observable<T>;
1414
}
1515

1616
export class ConfigFileNotFoundException extends Exception {
@@ -24,18 +24,18 @@ export class HttpClientConfigFileLoader {
2424
protected httpClient = inject(HttpClient);
2525
protected injector = inject(Injector);
2626

27-
load<T, Schema>(meta: ConfigFileMetadata<T, Schema>): Observable<T> {
28-
const parser = this.injector.get(meta.parser);
29-
const validator = this.injector.get(meta.validator);
27+
load<T, Schema>(def: ConfigFileDefinition<T, Schema>): Observable<T> {
28+
const parser = this.injector.get(def.parser);
29+
const validator = this.injector.get(def.validator);
3030

31-
return this.fetch(meta.path).pipe(
31+
return this.fetch(def.path).pipe(
3232
map((res) => {
33-
if (!res) throw new ConfigFileNotFoundException(meta.path);
33+
if (!res) throw new ConfigFileNotFoundException(def.path);
3434
return res;
3535
}),
3636
map((raw) => {
3737
const parsed = parser.parse(raw);
38-
validator.validate(meta.schema, parsed);
38+
validator.validate(def.schema, parsed);
3939
return parsed as T;
4040
}),
4141
);
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1+
import { defineConfigFile } from './definition';
2+
3+
/**@deprecated */
4+
export const defineConfigFileMetadata = defineConfigFile;
5+
6+
export * from './definition';
17
export * from './loader';
2-
export * from './metadata';
38
export * from './parser';
49
export * from './validator';

0 commit comments

Comments
 (0)