You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							828 B
						
					
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							828 B
						
					
					
				| 'use strict';
 | |
| 
 | |
| const Decimal128Type = require('../types/decimal128');
 | |
| const assert = require('assert');
 | |
| 
 | |
| module.exports = function castDecimal128(value) {
 | |
|   if (value == null) {
 | |
|     return value;
 | |
|   }
 | |
| 
 | |
|   if (typeof value === 'object' && typeof value.$numberDecimal === 'string') {
 | |
|     return Decimal128Type.fromString(value.$numberDecimal);
 | |
|   }
 | |
| 
 | |
|   if (value instanceof Decimal128Type) {
 | |
|     return value;
 | |
|   }
 | |
| 
 | |
|   if (typeof value === 'string') {
 | |
|     return Decimal128Type.fromString(value);
 | |
|   }
 | |
| 
 | |
|   if (Buffer.isBuffer(value)) {
 | |
|     return new Decimal128Type(value);
 | |
|   }
 | |
| 
 | |
|   if (typeof value === 'number') {
 | |
|     return Decimal128Type.fromString(String(value));
 | |
|   }
 | |
| 
 | |
|   if (typeof value.valueOf === 'function' && typeof value.valueOf() === 'string') {
 | |
|     return Decimal128Type.fromString(value.valueOf());
 | |
|   }
 | |
| 
 | |
|   assert.ok(false);
 | |
| }; |