getOptions.js
 1  'use strict';
 2  
 3  function getOptions(options) {
 4      options = {
 5          // Own options
 6          validator: undefined,
 7          retry: true,
 8          trim: true,
 9          default: undefined,
10          useDefaultOnTimeout: false,
11  
12          // `read` package options
13          silent: false,
14          replace: '',
15          input: process.stdin,
16          output: process.stdout,
17          timeout: 0,
18  
19          ...options,
20      };
21  
22      // Validate that default is a string
23      if (options.default !== undefined && typeof options.default !== 'string') {
24          throw new Error('The default option value must be a string');
25      }
26  
27      // Normalize validator to an array
28      if (!Array.isArray(options.validator)) {
29          options.validator = options.validator ? [options.validator] : [];
30      }
31  
32      return options;
33  }
34  
35  module.exports = getOptions;