aboutsummaryrefslogtreecommitdiff
path: root/src/definitions/hacker.ts
blob: 00aa3a40875bc41a7876737a60eb1bee2ff389da (plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
import { allOf } from './utils';

/**
 * The possible definitions related to computers.
 */
export interface HackerDefinitions {
  /**
   * Generic computer related abbreviations (e.g. `RAM`, `EXE`).
   */
  abbreviation: string[];
  /**
   * Some computer related adjectives or descriptors (e.g. `digital`, `bluetooth`)
   */
  adjective: string[];
  /**
   * Some computer related verbs for continuous actions (en: `ing` suffix; e.g. `hacking`).
   */
  ingverb: string[];
  /**
   * Some computer related nouns (e.g. `protocol`, `sensor`)
   */
  noun: string[];
  /**
   * Some phrases that will be injected with random hacker words.
   * May use any of the HackerDefinition keys wrapped in double braces.
   * (e.g. `I'm {{ingverb}} {{adjective}} {{noun}}` )
   *
   * @see Helpers.mustache()
   */
  phrase: string[];
  /**
   * Some computer related verbs (e.g. `hack`).
   */
  verb: string[];
}

/**
 * Internal: A list of all keys for the HackerDefinitions.
 */
export const HACKER = allOf<keyof HackerDefinitions>()(
  'abbreviation',
  'adjective',
  'ingverb',
  'noun',
  'phrase',
  'verb'
);