carbone-1.2 typings (#42645)

This commit is contained in:
Artur Nerkowski
2020-02-26 20:52:53 +01:00
committed by GitHub
parent ea796eec56
commit d0f343ecd2
4 changed files with 244 additions and 0 deletions

View File

@@ -0,0 +1,127 @@
import carbone = require('carbone');
const buffer = Buffer.alloc(1024);
const convertTo = 'pdf';
const currencySource = 'EUR';
const currencyTarget = 'PLN';
const extension = 'odt';
const lang = 'pl';
const tempPath = '/tmp';
const templatePath = './templates';
const emptyCurrencyRates = {};
const currencyRates = {
...emptyCurrencyRates,
EUR: 1,
PLN: 0.25,
};
const emptyFormatters: carbone.Formatters = {};
const formatters: carbone.Formatters = {
...emptyFormatters,
json: data => JSON.stringify(data),
};
const emptyTranslations: carbone.Translations = {};
const translations: carbone.Translations = {
...emptyTranslations,
en: {
Hello: 'Hello',
Goodbye: 'Goodbye',
},
pl: {
Hello: 'Witaj',
Goodbye: 'Do widzenia',
},
};
const emptyData = {};
const data = {
...emptyData,
b: true,
n: 100,
s: 'carbone',
o: {
field: 'value',
},
};
const emptyEnums: carbone.Enums = {};
const enums: carbone.Enums = {
...emptyEnums,
ARRAY: ['some', 'values'],
MAP: {
yes: 'true',
no: 'false',
},
};
const emptyOptions: carbone.Options = {};
const options: carbone.Options = {
...emptyOptions,
tempPath,
templatePath,
lang,
translations,
currencySource,
currencyTarget,
currencyRates,
};
const emptyRenderOptions: carbone.RenderOptions = {};
const renderOptions: carbone.RenderOptions = {
...emptyRenderOptions,
complement: data,
convertTo,
currencyRates,
currencySource,
currencyTarget,
enum: enums,
lang,
translations,
variableStr: '',
};
const variables: carbone.Variable[] = [
{
code: 'code1',
name: 'name1',
regex: /^/,
},
{
code: 'code2',
name: 'name2',
regex: /$/,
},
];
const emptyRenderXMLOptions: carbone.RenderXMLOptions = {};
const renderXMLOptions: carbone.RenderXMLOptions = {
...emptyRenderXMLOptions,
complement: data,
formatters,
lang,
translations,
existingVariables: variables,
extension,
};
carbone.set(emptyOptions);
carbone.set(options);
carbone.reset();
carbone.addFormatters(formatters);
carbone.addTemplate('xml', '<xml>', err => {});
carbone.removeTemplate('xml', err => {});
const conversionFormats: carbone.ConversionFormat[] = carbone.listConversionFormats('document');
carbone.render('./template.odf', data, renderOptions, (err, result: Buffer | string, reportName: string) => {});
carbone.render('./template.odf', data, (err, result: Buffer | string, reportName: string) => {});
carbone.renderXML('<xml>', data, renderXMLOptions, (err, result: Buffer | string) => {});
carbone.renderXML('<xml>', data, (err, result: Buffer | string) => {});
carbone.convert(buffer, 'pdf', {}, (err, result: Buffer) => {});
carbone.convert(buffer, 'pdf', (err, result: Buffer) => {});

93
types/carbone/index.d.ts vendored Normal file
View File

@@ -0,0 +1,93 @@
// Type definitions for carbone 1.2
// Project: https://carbone.io
// Definitions by: Artur Nerkowski <https://github.com/apatryda>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="node" />
export interface ConversionFormat {
id: string;
extension: string;
desc: string;
format: string;
}
export interface CurrencyRates {
[currency: string]: number;
}
export type DocumentType = 'document' | 'web' | 'graphics' | 'spreadsheet' | 'presentation';
export interface Enums {
[type: string]: string[] | { [key: string]: string };
}
export interface FormatterContext {
currency: {
rates: CurrencyRates;
source: string;
target: string;
};
enum: Enums;
extension: string;
lang: string;
stopPropagation: boolean;
}
export type Formatter = (this: FormatterContext, data: any, ...params: any[]) => void;
export interface Formatters {
[name: string]: Formatter;
}
export interface Translations {
[lang: string]: {
[key: string]: string;
};
}
export interface Variable {
name: string;
code: string;
regex: RegExp;
}
export type VoidCallback = (err: NodeJS.ErrnoException | null) => void;
export interface Options {
tempPath?: string;
templatePath?: string;
lang?: string;
translations?: Translations;
currencySource?: string;
currencyTarget?: string;
currencyRates?: CurrencyRates;
}
export function set(options: Options): void;
export function reset(): void;
export function addFormatters(customFormatters: Formatters): void;
export function addTemplate(fileId: string, data: string | Buffer, callback: VoidCallback): void;
export function removeTemplate(fileId: string, callback: VoidCallback): void;
export function listConversionFormats(documentType: DocumentType): ConversionFormat[];
export interface RenderXMLOptions {
complement?: object;
formatters?: Formatters;
lang?: string;
translations?: Translations;
existingVariables?: Variable[];
extension?: string;
}
export type RenderXMLCallback = (err: NodeJS.ErrnoException | null, xmlResult: string) => void;
export function renderXML(xml: string, data: object, options: RenderXMLOptions, callback: RenderXMLCallback): void;
export function renderXML(xml: string, data: object, callback: RenderXMLCallback): void;
export interface RenderOptions {
complement?: object;
convertTo?: string | object;
variableStr?: string;
lang?: string;
translations?: Translations;
enum?: Enums;
currencySource?: string;
currencyTarget?: string;
currencyRates?: CurrencyRates;
}
export type RenderCallback = (err: NodeJS.ErrnoException | null, result: Buffer | string, reportName: string) => void;
export function render(templatePath: string, data: object, options: RenderOptions, callback: RenderCallback): void;
export function render(templatePath: string, data: object, callback: RenderCallback): void;
export type ConvertCallback = (err: NodeJS.ErrnoException | null, result: Buffer) => void;
export function convert(data: Buffer, convertTo: string, options: object, callback: ConvertCallback): void;
export function convert(data: Buffer, convertTo: string, callback: ConvertCallback): void;

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",
"carbone-tests.ts"
]
}

View File

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