diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 000000000..c5c8eb329 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,153 @@ +/* eslint-disable max-classes-per-file, import/no-extraneous-dependencies */ + +declare module '@shabados/database' { + import { Model, QueryBuilder } from 'objection' + + export const knex: ReturnType + + type CommonBuilder = QueryBuilder & { + withTranslations: ( fn?: ( query: CommonBuilder ) => CommonBuilder ) => CommonBuilder, + withTransliterations: ( + fn?: ( query: CommonBuilder ) => CommonBuilder + ) => CommonBuilder, + } + + type LinesBuilder = QueryBuilder & { + withTranslations: ( fn?: ( query: LinesBuilder ) => LinesBuilder ) => LinesBuilder, + withTransliterations: ( fn?: ( query: LinesBuilder ) => LinesBuilder ) => LinesBuilder, + firstLetters: ( query: string ) => LinesBuilder, + fullWord: ( query: string ) => LinesBuilder, + } + + export class Translations extends Model { + lineId: string + translationSourceId: number + translation: string + additionalInformation: string + + translationSource?: TranslationSources + line?: Lines + } + + export class Transliterations extends Model { + lineId: string + languageId: number + transliteration: string + + language?: Lnaguages + line?: Lines + } + + export class Lines extends Model { + QueryBuilderType: LinesBuilder + + id: string + shabadId: string + sourcePage: number + sourceLine: number + firstLetters: string + vishraamFirstLetters: string + gurmukhi: string + pronunciation: string + pronunctiationInformation: string + typeId: number + orderId: number + + shabad?: Shabads + translations?: Translations[] + transliterations?: Transliterations[] + } + + export class Shabads extends Model { + QueryBuilderType: CommonBuilder + + id: string + sourceId: number + writerId: number + sectionId: number + subsectionId: number + sttmId: number + orderId: number + + writer?: Writers + section?: Sections + subsection?: Subsections + source?: Sources + lines?: Lines[] + } + + export class Languages extends Model { + QueryBuilderType: CommonBuilder + + id: number + nameGurmukhi: string + nameEnglish: string + nameInternational: string + + translationSources?: TranslationSources[] + } + + export class TranslationSources extends Model { + id: number + nameGurmukhi: string + nameEnglish: string + sourceId: number + languageId: number + + source?: Sources + language?: Languages + translations?: Translations[] + } + + export class Writers extends Model { + nameGurmukhi: string + nameEnglish: string + + shabads?: Shabads[] + } + + export class Subsections extends Model { + id: number + sectionId: number + nameGurmukhi: string + nameEnglish: string + startPage: number + endPage: number + + shabads?: Shabads[] + section?: Sections + } + + export class Sections extends Model { + id: number + sourceId: number + nameGurmukhi: string + nameEnglish: string + description: string + startPage: number + endPage: number + + shabads?: Shabads[] + source?: Sources + subsections?: Subsections[] + } + + export class Sources extends Model { + id: number + nameGurmukhi: string + nameEnglish: string + + shabads?: Shabads[] + translationSources?: TranslationSources[] + sections?: Sections[] + } + + export class Banis extends Model { + QueryBuilderType: CommonBuilder + + nameGurmukhi: string + nameEnglish: string + + lines?: Lines[] + } +} diff --git a/package.json b/package.json index f41c4fb2c..2363e8eeb 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "@shabados/database", "version": "4.8.0", "description": "The open gurbani database containing an evolving set of corrections. Used in Shabad OS software.", + "types": "index.d.ts", "scripts": { "import": "node lib/import.js", "benchmark": "node lib/benchmark.js",