1 | import ts from 'typescript';
|
2 | import * as utils from '../utils';
|
3 | import { getSyntaxKindName } from './syntaxKind';
|
4 | export function getHeritageClauses(node) {
|
5 | const heritageClauses = utils.getValueOrUndefined(node.heritageClauses);
|
6 | if (heritageClauses === undefined) {
|
7 | return [];
|
8 | }
|
9 | return heritageClauses;
|
10 | }
|
11 | export function getHeritageClauseByKind(node, kind) {
|
12 | return getHeritageClauses(node).find((clause) => clause.token === kind);
|
13 | }
|
14 | export function getHeritageClauseByKindOrThrow(node, kind) {
|
15 | return utils.throwIfNullOrUndefined(getHeritageClauseByKind(node, kind), `heritage clause of kind ${getSyntaxKindName(kind)}`);
|
16 | }
|
17 | export function getTypeNodes(node) {
|
18 | const types = utils.getValueOrUndefined(node.types);
|
19 | return types === undefined ? [] : types;
|
20 | }
|
21 | export function getToken(node) {
|
22 | return node.token;
|
23 | }
|
24 | export function isExtends(node) {
|
25 | return getToken(node) === ts.SyntaxKind.ExtendsKeyword;
|
26 | }
|
27 | export function isImplements(node) {
|
28 | return getToken(node) === ts.SyntaxKind.ImplementsKeyword;
|
29 | }
|
30 |
|
31 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlcml0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEtBQUssS0FBSyxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJakQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQTJCO0lBQzVELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEUsSUFBSSxlQUFlLEtBQUssU0FBUyxFQUFFO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUEyQixFQUMzQixJQUFvRTtJQUVwRSxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLDhCQUE4QixDQUM1QyxJQUEyQixFQUMzQixJQUFvRTtJQUVwRSxPQUFPLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUNuQywyQkFBMkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDckQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQXVCO0lBQ2xELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFcEQsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUF1QjtJQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBdUI7SUFDL0MsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBdUI7SUFDbEQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztBQUM1RCxDQUFDIiwiZmlsZSI6Im5lby1vbmUtdHMtdXRpbHMvc3JjL2Jhc2UvaGVyaXRhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBnZXRTeW50YXhLaW5kTmFtZSB9IGZyb20gJy4vc3ludGF4S2luZCc7XG5cbnR5cGUgSGVyaXRhZ2VDbGF1c2FibGVOb2RlID0gdHMuTm9kZSAmIHsgcmVhZG9ubHkgaGVyaXRhZ2VDbGF1c2VzPzogdHMuTm9kZUFycmF5PHRzLkhlcml0YWdlQ2xhdXNlPiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGVyaXRhZ2VDbGF1c2VzKG5vZGU6IEhlcml0YWdlQ2xhdXNhYmxlTm9kZSk6IHJlYWRvbmx5IHRzLkhlcml0YWdlQ2xhdXNlW10ge1xuICBjb25zdCBoZXJpdGFnZUNsYXVzZXMgPSB1dGlscy5nZXRWYWx1ZU9yVW5kZWZpbmVkKG5vZGUuaGVyaXRhZ2VDbGF1c2VzKTtcbiAgaWYgKGhlcml0YWdlQ2xhdXNlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIGhlcml0YWdlQ2xhdXNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlcml0YWdlQ2xhdXNlQnlLaW5kKFxuICBub2RlOiBIZXJpdGFnZUNsYXVzYWJsZU5vZGUsXG4gIGtpbmQ6IHRzLlN5bnRheEtpbmQuRXh0ZW5kc0tleXdvcmQgfCB0cy5TeW50YXhLaW5kLkltcGxlbWVudHNLZXl3b3JkLFxuKTogdHMuSGVyaXRhZ2VDbGF1c2UgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0SGVyaXRhZ2VDbGF1c2VzKG5vZGUpLmZpbmQoKGNsYXVzZSkgPT4gY2xhdXNlLnRva2VuID09PSBraW5kKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlcml0YWdlQ2xhdXNlQnlLaW5kT3JUaHJvdyhcbiAgbm9kZTogSGVyaXRhZ2VDbGF1c2FibGVOb2RlLFxuICBraW5kOiB0cy5TeW50YXhLaW5kLkV4dGVuZHNLZXl3b3JkIHwgdHMuU3ludGF4S2luZC5JbXBsZW1lbnRzS2V5d29yZCxcbik6IHRzLkhlcml0YWdlQ2xhdXNlIHtcbiAgcmV0dXJuIHV0aWxzLnRocm93SWZOdWxsT3JVbmRlZmluZWQoXG4gICAgZ2V0SGVyaXRhZ2VDbGF1c2VCeUtpbmQobm9kZSwga2luZCksXG4gICAgYGhlcml0YWdlIGNsYXVzZSBvZiBraW5kICR7Z2V0U3ludGF4S2luZE5hbWUoa2luZCl9YCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVOb2Rlcyhub2RlOiB0cy5IZXJpdGFnZUNsYXVzZSk6IHJlYWRvbmx5IHRzLkV4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50c1tdIHtcbiAgY29uc3QgdHlwZXMgPSB1dGlscy5nZXRWYWx1ZU9yVW5kZWZpbmVkKG5vZGUudHlwZXMpO1xuXG4gIHJldHVybiB0eXBlcyA9PT0gdW5kZWZpbmVkID8gW10gOiB0eXBlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuKG5vZGU6IHRzLkhlcml0YWdlQ2xhdXNlKTogdHMuU3ludGF4S2luZC5FeHRlbmRzS2V5d29yZCB8IHRzLlN5bnRheEtpbmQuSW1wbGVtZW50c0tleXdvcmQge1xuICByZXR1cm4gbm9kZS50b2tlbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXh0ZW5kcyhub2RlOiB0cy5IZXJpdGFnZUNsYXVzZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0VG9rZW4obm9kZSkgPT09IHRzLlN5bnRheEtpbmQuRXh0ZW5kc0tleXdvcmQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ltcGxlbWVudHMobm9kZTogdHMuSGVyaXRhZ2VDbGF1c2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFRva2VuKG5vZGUpID09PSB0cy5TeW50YXhLaW5kLkltcGxlbWVudHNLZXl3b3JkO1xufVxuIl19
|