@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
33 lines (32 loc) • 1.12 kB
TypeScript
import 'reflect-metadata';
import { List } from './List';
import { Optional } from './Types';
import { Entry } from './Object';
type MetaParseOptions = {
initial?: any;
skipUndefined?: boolean;
};
declare class ClassMeta {
readonly subject: any;
private readonly data;
constructor(subject: any, data?: any);
get: <T>(key: string) => T;
set: <T>(key: string, value: T) => T;
entries: <T = unknown>() => List<Entry<T>>;
parse: <Out, Value>(f: (v: Value) => Out, options?: MetaParseOptions) => Record<string, Out>;
properties: (key?: string) => List<PropertyMeta>;
keys: <T = any>(key: string) => List<T>;
values: <T = unknown>() => List<T>;
property: (property: string | symbol) => PropertyMeta;
}
declare class PropertyMeta {
readonly subject: any;
readonly property: string | symbol;
private readonly data;
constructor(subject: any, property: string | symbol, data?: any);
get value(): any;
get: <T>(key: string) => Optional<T>;
set: <T>(key: string, value: T) => T;
}
export declare const meta: (subject: unknown) => ClassMeta;
export {};