aboutsummaryrefslogtreecommitdiff
path: root/src/definitions/system.ts
blob: 5c9039b43d12970fb924b51fdf7826fd6006eba4 (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
import { allOf } from './utils';

/**
 * The possible definitions related to files and the system.
 */
export interface SystemDefinitions {
  /**
   * Returns some common file paths.
   */
  directoryPaths: string[];
  /**
   * The mime type definitions with some additional information.
   */
  mimeTypes: { [mimeType: string]: SystemMimeTypeEntryDefinitions };
}

/**
 * The mime type entry details.
 */
export interface SystemMimeTypeEntryDefinitions {
  source?: string;
  extensions?: string[];
  compressible?: boolean;
  charset?: string;
}

/**
 * Internal: A list of all keys for the SystemDefinitions.
 */
export const SYSTEM = allOf<keyof SystemDefinitions>()(
  'directoryPaths',
  'mimeTypes'
);