forked from Maheshkumar-Kakade/number-to-text
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
35 lines (33 loc) · 1.14 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const Converter = require('./lib/Converter')
const container = {}
class NumberToText {
/**
* convert number to text
* @param {string or number} num
* @param {object } options { language : "en-us" ,separator :"," ,case : "titleCase" } current support languages en-us, en-in annd de and cases are "titleCase" , "lowerCase" , "upperCase". default is { language : "en-us" ,separator :"," ,case : "titleCase" }
*/
constructor () {
this.Converter = Converter
}
convertToText (num, options) {
options = options || {}
const language = (options.language || 'en-us').toLowerCase()
if (container.hasOwnProperty(language)) {
return container[language].convertToText(num, options)
} else {
throw new Error('converter for language "' + language + '" not found.')
}
}
addConverter (language, langConverter) {
if (!container.hasOwnProperty(language)) {
if (langConverter instanceof Converter) {
container[language] = langConverter
} else {
throw new Error('language converter is not instance of converter')
}
} else {
return false
}
}
}
module.exports = new NumberToText()