|
1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import arvadosTypeName from 'arvados-type-name';
-
- const UUID_REGEX = /[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{15}/g;
- const PDH_REGEX = /[a-f0-9]{32}\+[0-9]+/g;
-
- class WBIdTools {
- static isIdentifier(value) {
- return ( this.isUuid(value) || this.isPDH(value) );
- }
-
- static isUuid(value) {
- const m = UUID_REGEX.exec(value);
- return (m && m[0] === value);
- }
-
- static isPDH(value) {
- const m = PDH_REGEX.exec(value);
- return (m && m[0] === value);
- }
-
- static startsWithIdentifier(value) {
- return ( this.startsWithUuid(value) || this.startsWithPDH(value) );
- }
-
- static startsWithUuid(value) {
- const m = UUID_REGEX.exec(value);
- return ( m && m.index === 0 );
- }
-
- static startsWithPDH(value) {
- const m = PDH_REGEX.exec(value);
- return ( m && m.index === 0 );
- }
-
- static typeName(value) {
- if (this.isPDH(value))
- return 'collection';
- if (this.isUuid(value))
- return arvadosTypeName(value);
- throw Error('Given value is neither an UUID nor a PDH: ' + value);
- }
- }
-
- export default WBIdTools;
|