3 // see https://www.census.gov/topics/population/genealogy/data/1990_census/1990_census_namefiles.html
5 import assert from 'assert'
6 import fsPromises from 'fs/promises'
7 import Domain from 'domaingistry'
9 let lines = async file => {
10 let result = (await fsPromises.readFile(file)).toString('utf-8').split('\n')
11 if (result[result.length -1].length === 0)
12 result = result.slice(0, -1)
16 let capitalize = line => {
17 let i = line.indexOf(' ')
19 let result = line.slice(0, 1).toUpperCase() + line.slice(1, i).toLowerCase()
20 if (result.slice(0, 2) === 'Mc')
22 result.slice(0, 2) + result.slice(2, 3).toUpperCase() + result.slice(3)
27 (await lines('dist.all.last')).slice(0, 500).map(capitalize)
32 (await lines('dist.male.first')).slice(0, 250)
34 (await lines('dist.female.first')).slice(0, 250)
38 let separators = ['', '.', '-', '_']
43 (new Domain('email', 'common')).generate()
45 (new Domain('email', 'suffix')).generate()
47 (new Domain('mail', 'common')).generate()
49 (new Domain('mail', 'prefix')).generate()
51 (new Domain('mail', 'suffix')).generate()
55 let names = {family_names, given_names, separators, domain_names}
56 process.stdout.write(JSON.stringify(names, null, 2) + '\n')