Add types for djv (#35136)

This commit is contained in:
Florian Keller 2019-05-01 19:37:09 +02:00 committed by Wesley Wigham
parent e6f841f2f9
commit bea39a0360
4 changed files with 92 additions and 0 deletions

12
types/djv/djv-tests.ts Normal file
View File

@ -0,0 +1,12 @@
import djv = require('djv');
const env = djv({
version: 'draft-06',
formats: {},
errorHandler: () => {},
});
new djv({ version: 'draft-04' });
env.addSchema('test');
env.addFormat('uri-reference', () => true);

56
types/djv/index.d.ts vendored Normal file
View File

@ -0,0 +1,56 @@
// Type definitions for djv 2.1
// Project: https://github.com/korzio/djv#readme
// Definitions by: Florian Keller <https://github.com/ffflorian>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
interface DjvStatic {
(options?: DjvStatic.DjvConfig): DjvStatic.djv;
new (options?: DjvStatic.DjvConfig): DjvStatic.djv;
expression(strings: string[], ...keys: string[]): (...values: string[]) => string;
}
declare namespace DjvStatic {
interface DjvConfig {
/** a handler to use for generating custom error messages */
errorHandler?: () => void;
/** an object containing list of formatters to add for environment */
formats?: Record<string, (...values: string[]) => string>;
/**
* generating object should be considered as inner
*
* Default value is `false`/`undefined`. If `true`, then it avoid creating variables in a
* generated function body, however without proper wrapper function approach will not work.
*/
inner?: boolean;
/** defines which version of json-schema draft to use, draft-04 by default */
version?: string;
/** handler to apply for environment version */
versionConfigure?: (object: object) => void;
}
interface Resolved {
schema: object;
fn: (...args: any[]) => any;
}
interface djv {
resolved: Resolved;
addFormat(name: string, formatter: string | ((schema: object, tpl: any) => void)): void;
addSchema(nameOrSchema: string | object, schema?: object): Resolved;
export(name?: string): string;
import(config: object): void;
removeSchema(name: string): void;
resolve(name: string | object): Resolved;
setErrorHandler(errorHandler: (errorType: string, property: any) => string): void;
useVersion(version: string, configure?: any): void;
validate(name: string, object: object): string | undefined;
}
}
declare const DjvStatic: DjvStatic;
export = DjvStatic;

23
types/djv/tsconfig.json Normal file
View File

@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"djv-tests.ts"
]
}

1
types/djv/tslint.json Normal file
View File

@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }