(prefix: Prefix, descending: boolean, given?: string)
| 23 | } |
| 24 | |
| 25 | function generateID(prefix: Prefix, descending: boolean, given?: string): string { |
| 26 | if (!given) { |
| 27 | return create(prefix, descending) |
| 28 | } |
| 29 | |
| 30 | if (!given.startsWith(prefixes[prefix])) { |
| 31 | throw new Error(`ID ${given} does not start with ${prefixes[prefix]}`) |
| 32 | } |
| 33 | |
| 34 | return given |
| 35 | } |
| 36 | |
| 37 | function create(prefix: Prefix, descending: boolean, timestamp?: number): string { |
| 38 | const currentTimestamp = timestamp ?? Date.now() |
no test coverage detected