diff options
| author | Joe Carstairs <jcarstairs@scottlogic.com> | 2023-08-07 18:18:22 +0100 |
|---|---|---|
| committer | Joe Carstairs <jcarstairs@scottlogic.com> | 2023-08-07 18:19:06 +0100 |
| commit | 2fcbccfbd49c6eaf433272749e32589a6f490200 (patch) | |
| tree | f8fc429709d66ce96d1f0e8c3812f24c13bf9d18 /src/types | |
| parent | d494739e4823424bb54d81e21b57e4725544eb07 (diff) | |
| parent | 27a25bfdeb07007e06bd4a608cd9953be04271ec (diff) | |
Merge branch 'master' of https://github.com/jcarstairs-scottlogic/lallans-wabsteid-astro
Diffstat (limited to 'src/types')
| -rw-r--r-- | src/types/Date.d.ts | 10 | ||||
| -rw-r--r-- | src/types/Digit.d.ts | 3 | ||||
| -rw-r--r-- | src/types/LallansIssue.d.ts | 23 | ||||
| -rw-r--r-- | src/types/LallansIssueNumber.d.ts | 12 | ||||
| -rw-r--r-- | src/types/Locale.ts | 2 | ||||
| -rw-r--r-- | src/types/Price.d.ts | 5 | ||||
| -rw-r--r-- | src/types/Scotsoun.d.ts | 20 | ||||
| -rw-r--r-- | src/types/TranslationsDictionary.d.ts | 6 |
8 files changed, 81 insertions, 0 deletions
diff --git a/src/types/Date.d.ts b/src/types/Date.d.ts new file mode 100644 index 0000000..5e1df66 --- /dev/null +++ b/src/types/Date.d.ts @@ -0,0 +1,10 @@ +type Year = `${19 | 20}${Digit}${Digit}`; +type Month = '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | '10' | '11' | '12'; +type Day = + '01' | '02' | '03' | '04' | '05' | '06' | '07' | '08' | '09' | + '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | + '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | + '30' | '31'; +type Date = `${Year}-${Month}-${Day}`; + +export default Date;
\ No newline at end of file diff --git a/src/types/Digit.d.ts b/src/types/Digit.d.ts new file mode 100644 index 0000000..11c252a --- /dev/null +++ b/src/types/Digit.d.ts @@ -0,0 +1,3 @@ +type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; + +export default Digit; diff --git a/src/types/LallansIssue.d.ts b/src/types/LallansIssue.d.ts new file mode 100644 index 0000000..2f6355d --- /dev/null +++ b/src/types/LallansIssue.d.ts @@ -0,0 +1,23 @@ +import type LallansIssueNumber from './LallansIssueNumber'; +import type Price from './Price'; + +type LallansIssue = { + issueNumber: LallansIssueNumber, + issueName: string, + price: Price, + description: { + sco: string, + 'en-GB': string, + }, + coverArtist?: string, + trackList?: string[], +} & ( + { contributors: Contributor[] } | + { contributions: Contribution[] } | + Record<string, never> +); + +type Contributor = string; +type Contribution = { author?: string, title: string }; + +export default LallansIssue;
\ No newline at end of file diff --git a/src/types/LallansIssueNumber.d.ts b/src/types/LallansIssueNumber.d.ts new file mode 100644 index 0000000..10d068e --- /dev/null +++ b/src/types/LallansIssueNumber.d.ts @@ -0,0 +1,12 @@ +type LallansIssueNumber = + 21 | 22 | 23 | 24 | 25 | 27 | 29 | + 30 | 33 | 35 | 36 | 38 | 39 | + 41 | 42 | 43 | 45 | 46 | 47 | 48 | 49 | + 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 59 | + 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | + 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | + 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | + 90 | 91 | 92 | 93 | 96 | 97 | 98 | 99 | + 100 | 101; + +export default LallansIssueNumber; diff --git a/src/types/Locale.ts b/src/types/Locale.ts new file mode 100644 index 0000000..2964117 --- /dev/null +++ b/src/types/Locale.ts @@ -0,0 +1,2 @@ +type Locale = 'sco' | 'en-GB' +export default Locale
\ No newline at end of file diff --git a/src/types/Price.d.ts b/src/types/Price.d.ts new file mode 100644 index 0000000..fc9d9fb --- /dev/null +++ b/src/types/Price.d.ts @@ -0,0 +1,5 @@ +import type Digit from "./Digit"; + +type Price = `${bigint | ''}.${Digit}${Digit}`; + +export default Price; diff --git a/src/types/Scotsoun.d.ts b/src/types/Scotsoun.d.ts new file mode 100644 index 0000000..f31a9b5 --- /dev/null +++ b/src/types/Scotsoun.d.ts @@ -0,0 +1,20 @@ +import type { defaultLocale } from '../i18n/locales'; +import type Date from './Date'; +import type Locale from './Locale'; +import type Price from './Price'; + +type Scotsoun = { + 'title': string, + 'subtitle'?: string, + 'long-name': string, + 'author'?: string, + 'cd-count': number, + 'price': Price, + 'scotsoun-id': string, + 'description'?: { [key in Locale]?: string } & { [key in typeof defaultLocale]: string }, + 'cover-artist'?: string, + 'track-list'?: string[], + 'release-date'?: Date, +}; + +export default Scotsoun;
\ No newline at end of file diff --git a/src/types/TranslationsDictionary.d.ts b/src/types/TranslationsDictionary.d.ts new file mode 100644 index 0000000..7ebb952 --- /dev/null +++ b/src/types/TranslationsDictionary.d.ts @@ -0,0 +1,6 @@ +import type { defaultLocale } from "../i18n/locales"; +import type Locale from "./Locale"; + +type TranslationsDictionary<Keys> = { + [key in Keys]: { [key in Locale]?: string } & { [key in typeof defaultLocale]: string } +};
\ No newline at end of file |
