UNPKG

meta-capi-param-builder-clientjs

Version:

Conversions API parameter builder for Client-side JavaScript

109 lines (103 loc) 1.52 kB
/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under the license found in the * LICENSE file in the root directory of this source tree. */ import { looksLikeHashed, trim } from './piiUtil.js'; const MALE_SET = new Set([ 'man', 'male', 'boy', 'gentleman', 'guy', 'sir', 'mister', 'mr', 'son', 'father', 'dad', 'daddy', 'papa', 'uncle', 'nephew', 'brother', 'husband', 'boyfriend', 'groom', 'widower', 'king', 'prince', 'duke', 'count', 'emperor', 'god', 'lord', 'lad', 'fellow', 'chap', 'bloke', 'dude', 'he', 'him', 'his', 'himself', 'm', ]); const FEMALE_SET = new Set([ 'woman', 'female', 'girl', 'lady', 'miss', 'ms', 'mrs', 'madam', "ma'am", 'daughter', 'mother', 'mom', 'mama', 'mommy', 'aunt', 'niece', 'sister', 'wife', 'girlfriend', 'bride', 'widow', 'queen', 'princess', 'duchess', 'countess', 'empress', 'goddess', 'maiden', 'lass', 'gal', 'chick', 'dame', 'belle', 'she', 'her', 'hers', 'herself', 'f', ]); const MALE = 'm'; const FEMALE = 'f'; function getNormalizedGender(gender) { if (looksLikeHashed(gender)) { return gender; } const normalizedGender = trim(gender.toLowerCase()); if (MALE_SET.has(normalizedGender)) { return MALE; } else if (FEMALE_SET.has(normalizedGender)) { return FEMALE; } else { return null; } } export { getNormalizedGender };