receiptline / receiptio

A print application for receipt printers, simple and easy with markdown, printer status support.
Apache License 2.0
67 stars 10 forks source link

Add TypeScript types #1

Open ryall opened 2 years ago

ryall commented 2 years ago

Looks like a great library, but missing TypeScript typings.

receiptline commented 2 years ago

Thanks for using ReceiptIO! As with receiptline we would like to add TypeScript typings.

ryall commented 2 years ago

Here's a rough template for the ReceiptIO types:

declare module 'receiptio' {
  import { Transform } from 'node:stream';

  export type Printer =
    | 'escpos'
    | 'sii'
    | 'citizen'
    | 'fit'
    | 'impact'
    | 'impactb'
    | 'star'
    | 'starline'
    | 'emustarline'
    | 'stargraphic'
    | 'svg'
    | 'png';

  export type Language =
    | 'en'
    | 'fr'
    | 'de'
    | 'es'
    | 'po'
    | 'it'
    | 'ru'
    | 'ja'
    | 'ko'
    | 'zh-hans'
    | 'zh-hant'
    | string; // Not all are listed, so allow arbitrary for now

  export type PrintStatus =
    | 'success'
    | 'online'
    | 'coveropen'
    | 'paperempty'
    | 'error'
    | 'offline'
    | 'disconnect'
    | 'timeout';

  export function print(receiptmd: string, options?: string): PrintStatus;
  export function print(receiptmd: string, options?: string): string;

  export function createPrint(options?: string): Transform;
}

Not much I can do with the specific types as the options are passed as a string.

Any chance options could also be passed as an object? I will update the types for that.

onurbamaro commented 1 year ago

It is a really great library. It was hard to find something in js that worked well for printing.

It would be really lovely if it had types.

Awesome job anyway!