@tpluscode/rdfine
Version:
RDF/JS idiomatic, native, effective
32 lines (31 loc) • 1.19 kB
TypeScript
import type DefaultEnv from '@zazuko/env/web.js';
import type { DerivedEnvironment } from '@zazuko/env';
import type { Environment } from '@rdfjs/environment/Environment.js';
import { Constructor, ResourceFactory } from './lib/ResourceFactory.js';
import type { Factory } from './factory.js';
import { ToLiteral, FromLiteral } from './lib/conversion.js';
type Name<T> = T extends `${infer Prefix}Mixin` ? Prefix : never;
export type Vocabulary<T> = {
[p in keyof T as Name<p>]: T[p] extends (...args: any) => any ? ReturnType<T[p]> extends Constructor<infer I> ? Factory<I> : never : never;
};
export interface Rdfine {
(): {
createEntity: ResourceFactory['createEntity'];
factory: ResourceFactory;
convert: {
toLiteral: ToLiteral;
fromLiteral: FromLiteral;
};
};
Resource: Constructor;
}
export interface RdfineFactory {
rdfine: Rdfine;
}
export declare class RdfineFactory {
init(this: any): void;
static get exports(): string[];
_initVocabulary(vocabulary: Record<string, any>): any;
}
export type RdfineEnvironment = DerivedEnvironment<typeof DefaultEnv, Environment<RdfineFactory>>;
export {};