diff options
author | Mats Larsen <me@supergrecko.com> | 2022-04-18 15:48:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-18 16:48:00 +0200 |
commit | ef8f36df4cb2f6234291255c20f5c389add54954 (patch) | |
tree | 5e30665712d0a314c53099bcd45e39945db48906 /lib/sources/index.ts | |
parent | 1d81b5e7fe4ccc834d54896e3b7ae77b1cb89eaf (diff) | |
download | compiler-explorer-ef8f36df4cb2f6234291255c20f5c389add54954.tar.gz compiler-explorer-ef8f36df4cb2f6234291255c20f5c389add54954.zip |
Convert lib/sources to TypeScript (#3526)gh-2409
Diffstat (limited to 'lib/sources/index.ts')
-rw-r--r-- | lib/sources/index.ts | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/sources/index.ts b/lib/sources/index.ts new file mode 100644 index 000000000..92ff5a447 --- /dev/null +++ b/lib/sources/index.ts @@ -0,0 +1,51 @@ +// Copyright (c) 2020, Compiler Explorer Authors +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + +import { browser } from './browser'; +import { builtin } from './builtin'; + +export interface SourceEntry { + /** The file name of the source file */ + file: string; + /** The programming language the source file is written in */ + lang: string; + /** The "nice" name of the source file, replacing _ with spaces */ + name: string; + /** The path to the source file */ + path: string; +} + +export interface Source { + name: string; + urlpart: string; + list(): Promise<Omit<SourceEntry, 'path'>[]>; + load(language: string, filename: string): Promise<{file: string}>; + /** Appears to be unused? */ + save: unknown; +} + +export const sources = [ + browser, + builtin, +]; |