chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { prefixToObjectMap } from '@bpinternal/const'
|
||||
import * as uuid from 'uuid'
|
||||
|
||||
const ULID_LENGTH = 26 // Reference: https://github.com/ulid/spec#canonical-string-representation
|
||||
|
||||
export function isValidID(id: string) {
|
||||
// Note: UUIDs were used first and then prefixed ULIDs were introduced.
|
||||
return isPrefixedULID(id) || uuid.validate(id)
|
||||
}
|
||||
|
||||
export function isPrefixedULID(id: string) {
|
||||
const [prefix, identifier] = id.split('_')
|
||||
|
||||
if (!(prefix && identifier)) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (!Object.keys(prefixToObjectMap).includes(prefix)) {
|
||||
return false
|
||||
}
|
||||
|
||||
if (identifier.length < ULID_LENGTH) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user