Files
freeCodeCamp/utils/index.ts
Oliver Eyton-Williams 4ff00922da refactor: fix hidden eslint errors (#49365)
* refactor: explicit types for validate

* refactor: explicit return types for ui-components

* refactor: use exec instead of match

* refactor: add lots more boundary types

* refactor: more eslint warnings

* refactor: more explicit exports

* refactor: more explicit types

* refactor: even more explicit types

* fix: relax type contrainsts for superblock-order

* refactor: final boundaries

* refactor: avoid using 'object' type

* fix: use named import for captureException

This uses TypeScript (which works) instead of import/namespace
(which doesn't) to check if captureException exists in sentry/gatsby
(it does)
2023-02-13 07:13:50 -08:00

52 lines
2.0 KiB
TypeScript

import { dasherize } from './slugs';
const idToTitle = new Map(
Object.entries({
'561add10cb82ac38a17523bc': 'Back End Development and APIs',
'5a553ca864b52e1d8bceea14': 'Data Visualization',
'561acd10cb82ac38a17513bc': 'Front End Development Libraries',
'5e611829481575a52dc59c0e': 'Quality Assurance',
'5e6021435ac9d0ecd8b94b00': 'Information Security',
'561abd10cb81ac38a17513bc': 'JavaScript Algorithms and Data Structures',
'561add10cb82ac38a17513bc': 'Responsive Web Design',
'660add10cb82ac38a17513be': 'Legacy Back End',
'561add10cb82ac39a17513bc': 'Legacy Data Visualization',
'561add10cb82ac38a17513be': 'Legacy Front End',
'561add10cb82ac38a17213bc':
'Legacy Information Security and Quality Assurance',
'561add10cb82ac38a17213bd': 'Legacy Full Stack',
'5e44431b903586ffb414c951': 'Scientific Computing with Python',
'5e46fc95ac417301a38fb934': 'Data Analysis with Python',
'5e46fc95ac417301a38fb935': 'Machine Learning with Python'
})
);
const idToPath = new Map<string, string>();
// Keep the timeline slugs the same so
// we don't break existing links
const specialPaths: Record<string, string> = {
'Legacy Full Stack': 'Full Stack',
'Legacy Information Security and Quality Assurance':
'Information Security and Quality Assurance',
'Scientific Computing with Python': 'Scientific Computing with Python V7',
'Data Analysis with Python': 'Data Analysis with Python V7',
'Machine Learning with Python': 'Machine Learning with Python V7',
'Quality Assurance': 'Quality Assurance V7',
'Information Security': 'Information Security V7'
};
for (const [id, title] of idToTitle) {
if (specialPaths[title]) {
idToPath.set(id, dasherize(specialPaths[title]));
} else {
idToPath.set(id, dasherize(title));
}
}
export const getCertIds = (): IterableIterator<string> => idToPath.keys();
export const getPathFromID = (id: string): string | undefined =>
idToPath.get(id);
export const getTitleFromId = (id: string): string | undefined =>
idToTitle.get(id);