mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
add types see https://github.com/jsreport/jsreport-core/pull/26
This commit is contained in:
parent
425ca63a9e
commit
dfee6fc675
140
types/jsreport-core/index.d.ts
vendored
140
types/jsreport-core/index.d.ts
vendored
@ -5,92 +5,104 @@
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
/// <reference types="node" />
|
||||
import { Buffer } from 'buffer';
|
||||
import { Readable } from 'stream';
|
||||
|
||||
declare namespace JsReport {
|
||||
type helpers = string | { [fun: string]: (...args: any[]) => any };
|
||||
type Helpers = string | { [fun: string]: (...args: any[]) => any };
|
||||
|
||||
interface RenderOptions {
|
||||
template: {
|
||||
content: string;
|
||||
engine: 'jsrender' | 'handlebars' | 'ejs' | 'jade' | string;
|
||||
helpers?: helpers;
|
||||
recipe: 'phantom-pdf' | 'electron-pdf' | 'text' | 'xlsx' | 'html-to-xlsx' | 'phantom-image' | 'html-to-text' | 'fop-pdf' | 'client-html' | 'wrapped-html' | 'wkhtmltopdf' | string;
|
||||
};
|
||||
data?: any;
|
||||
type Engine = "none";
|
||||
|
||||
type Recipe = "html";
|
||||
|
||||
interface Template {
|
||||
content: string;
|
||||
engine: Engine | string;
|
||||
helpers: Helpers;
|
||||
recipe: Recipe | string;
|
||||
}
|
||||
|
||||
interface Report {
|
||||
interface Request {
|
||||
template: Partial<Template>;
|
||||
options: object;
|
||||
data: any;
|
||||
}
|
||||
|
||||
interface Response {
|
||||
content: Buffer;
|
||||
stream: Readable;
|
||||
stream: NodeJS.ReadableStream;
|
||||
headers: {
|
||||
[header: string]: string | number | boolean;
|
||||
};
|
||||
}
|
||||
|
||||
interface Request {
|
||||
template: {
|
||||
content: string;
|
||||
};
|
||||
}
|
||||
|
||||
// interface Response {
|
||||
// // todo
|
||||
// }
|
||||
|
||||
type Response = any;
|
||||
|
||||
interface Listener {
|
||||
add(type: string, callback: (req: Request, res: Response, err: any) => void): void;
|
||||
}
|
||||
|
||||
interface Logger {
|
||||
add(logger: any, options?: {
|
||||
level: 'debug' | 'info' | 'log' | 'warn' | 'error';
|
||||
}): void;
|
||||
interface ListenerCollection {
|
||||
add(
|
||||
type: string,
|
||||
callback: (req: Request, res: Response, err?: any) => Promise<any> | void
|
||||
): void;
|
||||
}
|
||||
|
||||
interface Collection {
|
||||
find(query: {
|
||||
[field: string]: any;
|
||||
}): Promise<any>;
|
||||
find(query: { [field: string]: any }): Promise<object[]>;
|
||||
update(query: { [field: string]: any }, update: object, options?: object): Promise<any>;
|
||||
remove(query: { [field: string]: any }): Promise<any>;
|
||||
insert(obj: object): Promise<object>;
|
||||
}
|
||||
|
||||
interface DocumentStore {
|
||||
collection(options: string): Collection;
|
||||
collection(name: string): Collection;
|
||||
}
|
||||
|
||||
interface JsReporter {
|
||||
afterRenderListeners: Listener;
|
||||
afterTemplatingEnginesExecutedListeners: Listener;
|
||||
beforeRenderListeners: Listener;
|
||||
type Extension = (reporter: Reporter, definition: object) => void;
|
||||
|
||||
interface ExtensionDefinition {
|
||||
options: any;
|
||||
main: any;
|
||||
directory: string;
|
||||
}
|
||||
|
||||
interface Reporter {
|
||||
use(extension: Extension | ExtensionDefinition): Reporter;
|
||||
}
|
||||
|
||||
interface Reporter {
|
||||
afterRenderListeners: ListenerCollection;
|
||||
afterTemplatingEnginesExecutedListeners: ListenerCollection;
|
||||
beforeRenderListeners: ListenerCollection;
|
||||
documentStore: DocumentStore;
|
||||
initializeListeners: Listener;
|
||||
logger: Logger;
|
||||
validateRenderListeners: Listener;
|
||||
init(): Promise<void>;
|
||||
render(options: RenderOptions): Promise<Report>;
|
||||
use(extension: any): any;
|
||||
initializeListeners: ListenerCollection;
|
||||
// it would be nice to add winston.LoggerInstance here
|
||||
// however adding import winston = require('winston') breaks exported enums
|
||||
logger: any;
|
||||
validateRenderListeners: ListenerCollection;
|
||||
version: string;
|
||||
init(): Promise<Reporter>;
|
||||
render(options: Partial<Request>): Promise<Response>;
|
||||
discover(): Reporter;
|
||||
createListenerCollection(): ListenerCollection;
|
||||
}
|
||||
|
||||
interface Configuration {
|
||||
autoTempCleanup: boolean;
|
||||
dataDirectory: string;
|
||||
extensionsLocationCache: boolean;
|
||||
loadConfig: boolean;
|
||||
logger: {
|
||||
silent: boolean;
|
||||
};
|
||||
rootDirectory: string;
|
||||
scripts: {
|
||||
allowedModules: string[];
|
||||
};
|
||||
tasks: Partial<{
|
||||
allowedModules: string[] | string;
|
||||
strategy: "dedicated-process" | "http-server" | "in-process" | string;
|
||||
}>;
|
||||
tempDirectory: string;
|
||||
}
|
||||
}
|
||||
|
||||
declare function JsReport(options?: Partial<{
|
||||
autoTempCleanup: boolean;
|
||||
dataDirectory: string;
|
||||
extensionsLocationCache: boolean;
|
||||
loadConfig: boolean;
|
||||
logger: {
|
||||
silent: boolean;
|
||||
};
|
||||
rootDirectory: string;
|
||||
scripts: {
|
||||
allowedModules: string[];
|
||||
};
|
||||
tasks: {
|
||||
[task: string]: any;
|
||||
};
|
||||
tempDirectory: string;
|
||||
}>): JsReport.JsReporter;
|
||||
declare function JsReport(
|
||||
config?: Partial<JsReport.Configuration>
|
||||
): JsReport.Reporter;
|
||||
|
||||
export = JsReport;
|
||||
|
||||
24
types/jsreport-html-to-xlsx/index.d.ts
vendored
Normal file
24
types/jsreport-html-to-xlsx/index.d.ts
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
// Type definitions for jsreport-html-to-xlsx 1.4
|
||||
// Project: https://github.com/jsreport/jsreport-html-to-xlsx
|
||||
// Definitions by: My Self <https://github.com/me>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
import { ExtensionDefinition } from 'jsreport-core';
|
||||
import { Options as BaseOptions } from 'jsreport-xlsx';
|
||||
|
||||
declare module 'jsreport-core' {
|
||||
interface Template {
|
||||
recipe: 'html-to-xlsx' | string;
|
||||
}
|
||||
}
|
||||
|
||||
declare namespace JsReportHtml2Xlsx {
|
||||
interface Options extends BaseOptions {
|
||||
strategy: string;
|
||||
}
|
||||
}
|
||||
|
||||
declare function JsReportHtml2Xlsx(options?: Partial<JsReportHtml2Xlsx.Options>): ExtensionDefinition;
|
||||
|
||||
export = JsReportHtml2Xlsx;
|
||||
19
types/jsreport-html-to-xlsx/jsreport-html-to-xlsx-tests.ts
Normal file
19
types/jsreport-html-to-xlsx/jsreport-html-to-xlsx-tests.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import JsReport = require('jsreport-core');
|
||||
import JsreportHtml2Xlsx = require('jsreport-html-to-xlsx');
|
||||
import JsreportXlsx = require('jsreport-xlsx');
|
||||
|
||||
const jsreport = JsReport();
|
||||
jsreport.use(JsreportXlsx());
|
||||
jsreport.use(JsreportHtml2Xlsx());
|
||||
|
||||
(async () => {
|
||||
const content = `<table><tr><td>test</td></tr></table>`;
|
||||
await jsreport.init();
|
||||
const resp = await jsreport.render({
|
||||
template: {
|
||||
content,
|
||||
engine: 'none',
|
||||
recipe: 'xlsx'
|
||||
}
|
||||
});
|
||||
})();
|
||||
23
types/jsreport-html-to-xlsx/tsconfig.json
Normal file
23
types/jsreport-html-to-xlsx/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"esnext"
|
||||
],
|
||||
"strictFunctionTypes": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"jsreport-html-to-xlsx-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/jsreport-html-to-xlsx/tslint.json
Normal file
1
types/jsreport-html-to-xlsx/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
17
types/jsreport-jsrender/index.d.ts
vendored
Normal file
17
types/jsreport-jsrender/index.d.ts
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
// Type definitions for jsreport-jsrender 1.0
|
||||
// Project: https://github.com/jsreport/jsreport-jsrender
|
||||
// Definitions by: taoqf <https://github.com/taoqf>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
import { ExtensionDefinition } from 'jsreport-core';
|
||||
|
||||
declare module 'jsreport-core' {
|
||||
interface Template {
|
||||
engine: 'jsrender' | string;
|
||||
}
|
||||
}
|
||||
|
||||
declare function JsReportJsrender(): ExtensionDefinition;
|
||||
|
||||
export = JsReportJsrender;
|
||||
37
types/jsreport-jsrender/jsreport-jsrender-tests.ts
Normal file
37
types/jsreport-jsrender/jsreport-jsrender-tests.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import JsReport = require("jsreport-core");
|
||||
import JsReportPhantomPdf = require("jsreport-phantom-pdf");
|
||||
import JsRender = require("jsreport-jsrender");
|
||||
import fs = require('fs');
|
||||
|
||||
const jsreport = JsReport({
|
||||
tasks: {
|
||||
strategy: "http-server"
|
||||
}
|
||||
});
|
||||
|
||||
jsreport.beforeRenderListeners.add('test', (req, res) => {
|
||||
console.log('input', req.template.content);
|
||||
});
|
||||
|
||||
jsreport.use(JsReportPhantomPdf());
|
||||
jsreport.use(JsRender());
|
||||
|
||||
(async () => {
|
||||
await jsreport.init();
|
||||
await jsreport.documentStore.collection('settings').update({}, { $set: { foo: 1 } });
|
||||
const res = await jsreport.render({
|
||||
template: {
|
||||
content: "<h1>{{:foo}}</h1>",
|
||||
engine: 'jsrender',
|
||||
recipe: 'phantom-pdf',
|
||||
phantom: {
|
||||
header: 'header',
|
||||
headerHeight: '5cm',
|
||||
orientation: 'landscape'
|
||||
}
|
||||
},
|
||||
data: { foo: "hello2" }
|
||||
});
|
||||
fs.writeFileSync('./types/test/test.pdf', res.content);
|
||||
process.exit(0);
|
||||
})();
|
||||
23
types/jsreport-jsrender/tsconfig.json
Normal file
23
types/jsreport-jsrender/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"esnext"
|
||||
],
|
||||
"strictFunctionTypes": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"jsreport-jsrender-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/jsreport-jsrender/tslint.json
Normal file
1
types/jsreport-jsrender/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
62
types/jsreport-phantom-pdf/index.d.ts
vendored
Normal file
62
types/jsreport-phantom-pdf/index.d.ts
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
// Type definitions for jsreport-phantom-pdf 1.4
|
||||
// Project: https://github.com/jsreport/jsreport-phantom-pdf
|
||||
// Definitions by: taoqf <https://github.com/taoqf>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
import { ExtensionDefinition } from 'jsreport-core';
|
||||
|
||||
declare module 'jsreport-core' {
|
||||
interface Template {
|
||||
phantom?: Partial<JsReportPhantomPdf.Phantom>;
|
||||
recipe: 'phantom-pdf' | string;
|
||||
}
|
||||
}
|
||||
|
||||
declare namespace JsReportPhantomPdf {
|
||||
interface Margin {
|
||||
left: number | string;
|
||||
right: number | string;
|
||||
top: number | string;
|
||||
bottom: number | string;
|
||||
}
|
||||
|
||||
interface Phantom {
|
||||
margin: string | Margin;
|
||||
header: string;
|
||||
footer: string;
|
||||
width: string;
|
||||
height: string;
|
||||
headerHeight: string;
|
||||
footerHeight: string;
|
||||
format: string;
|
||||
orientation: 'portrait' | 'landscape';
|
||||
blockJavaScript: boolean;
|
||||
resourceTimeout: number;
|
||||
waitForJS: boolean;
|
||||
fitToPage: boolean;
|
||||
customPhantomJS: boolean;
|
||||
phantomjsVersion: string;
|
||||
}
|
||||
|
||||
// const enum PhantomStrategy {
|
||||
// dedicatedProcess = 'dedicated-process',
|
||||
// phantomServer = 'phantom-server'
|
||||
// }
|
||||
|
||||
interface Options {
|
||||
allowLocalFilesAccess: boolean;
|
||||
// appDirectory: string;
|
||||
defaultPhantomjsVersion: string;
|
||||
strategy: 'dedicated-process' | 'phantom-server';
|
||||
timeout: number;
|
||||
}
|
||||
|
||||
// without exporting enum, it doesn't include the require('jsreport-core') in the test.js for some reason
|
||||
// help welcome
|
||||
// export enum Foo { }
|
||||
}
|
||||
|
||||
declare function JsReportPhantomPdf(options?: Partial<JsReportPhantomPdf.Options>): ExtensionDefinition;
|
||||
|
||||
export = JsReportPhantomPdf;
|
||||
37
types/jsreport-phantom-pdf/jsreport-phantom-pdf-tests.ts
Normal file
37
types/jsreport-phantom-pdf/jsreport-phantom-pdf-tests.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import JsReport = require("jsreport-core");
|
||||
import JsReportPhantomPdf = require("jsreport-phantom-pdf");
|
||||
import JsRender = require("jsreport-jsrender");
|
||||
import fs = require('fs');
|
||||
|
||||
const jsreport = JsReport({
|
||||
tasks: {
|
||||
strategy: "http-server"
|
||||
}
|
||||
});
|
||||
|
||||
jsreport.beforeRenderListeners.add('test', (req, res) => {
|
||||
console.log('input', req.template.content);
|
||||
});
|
||||
|
||||
jsreport.use(JsReportPhantomPdf());
|
||||
jsreport.use(JsRender());
|
||||
|
||||
(async () => {
|
||||
await jsreport.init();
|
||||
await jsreport.documentStore.collection('settings').update({}, { $set: { foo: 1 } });
|
||||
const res = await jsreport.render({
|
||||
template: {
|
||||
content: "<h1>{{:foo}}</h1>",
|
||||
engine: 'jsrender',
|
||||
recipe: 'phantom-pdf',
|
||||
phantom: {
|
||||
header: 'header',
|
||||
headerHeight: '5cm',
|
||||
orientation: 'landscape'
|
||||
}
|
||||
},
|
||||
data: { foo: "hello2" }
|
||||
});
|
||||
fs.writeFileSync('./types/test/test.pdf', res.content);
|
||||
process.exit(0);
|
||||
})();
|
||||
23
types/jsreport-phantom-pdf/tsconfig.json
Normal file
23
types/jsreport-phantom-pdf/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"esnext"
|
||||
],
|
||||
"strictFunctionTypes": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"jsreport-phantom-pdf-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/jsreport-phantom-pdf/tslint.json
Normal file
1
types/jsreport-phantom-pdf/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
29
types/jsreport-xlsx/index.d.ts
vendored
Normal file
29
types/jsreport-xlsx/index.d.ts
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
// Type definitions for jsreport-xlsx 1.4
|
||||
// Project: https://github.com/jsreport/jsreport-xlsx
|
||||
// Definitions by: taoqf <https://github.com/taoqf>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.3
|
||||
|
||||
import { ExtensionDefinition } from 'jsreport-core';
|
||||
|
||||
declare module 'jsreport-core' {
|
||||
interface Template {
|
||||
recipe: 'xlsx' | string;
|
||||
}
|
||||
}
|
||||
|
||||
declare namespace JsReportXlsx {
|
||||
interface Xlsx {
|
||||
shortid: string;
|
||||
}
|
||||
|
||||
interface Options {
|
||||
addBufferSize: number;
|
||||
escapeAmp: boolean;
|
||||
numberOfParsedAddIterations: number;
|
||||
}
|
||||
}
|
||||
|
||||
declare function JsReportXlsx(options?: Partial<JsReportXlsx.Options>): ExtensionDefinition;
|
||||
|
||||
export = JsReportXlsx;
|
||||
19
types/jsreport-xlsx/jsreport-xlsx-tests.ts
Normal file
19
types/jsreport-xlsx/jsreport-xlsx-tests.ts
Normal file
@ -0,0 +1,19 @@
|
||||
import JsReport = require('jsreport-core');
|
||||
import JsreportHtml2Xlsx = require('jsreport-html-to-xlsx');
|
||||
import JsreportXlsx = require('jsreport-xlsx');
|
||||
|
||||
const jsreport = JsReport();
|
||||
jsreport.use(JsreportXlsx());
|
||||
jsreport.use(JsreportHtml2Xlsx());
|
||||
|
||||
(async () => {
|
||||
const content = `<table><tr><td>test</td></tr></table>`;
|
||||
await jsreport.init();
|
||||
const resp = await jsreport.render({
|
||||
template: {
|
||||
content,
|
||||
engine: 'none',
|
||||
recipe: 'xlsx'
|
||||
}
|
||||
});
|
||||
})();
|
||||
23
types/jsreport-xlsx/tsconfig.json
Normal file
23
types/jsreport-xlsx/tsconfig.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"esnext"
|
||||
],
|
||||
"strictFunctionTypes": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"jsreport-xlsx-tests.ts"
|
||||
]
|
||||
}
|
||||
1
types/jsreport-xlsx/tslint.json
Normal file
1
types/jsreport-xlsx/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Loading…
Reference in New Issue
Block a user