1 | import ts from 'typescript';
|
2 | import { modifier } from './base';
|
3 | import * as class_ from './class_';
|
4 | import * as node_ from './node';
|
5 | import * as object_ from './object_';
|
6 | function findOtherProperty(node) {
|
7 | const parent = node_.getParent(node);
|
8 | const kind = node.kind === ts.SyntaxKind.GetAccessor ? ts.SyntaxKind.SetAccessor : ts.SyntaxKind.GetAccessor;
|
9 | const thisName = node_.getName(node);
|
10 | let properties;
|
11 | if (ts.isClassDeclaration(parent) || ts.isClassExpression(parent)) {
|
12 | properties = modifier.isStatic(node)
|
13 | ? class_.getConcreteStaticProperties(parent)
|
14 | : class_.getConcreteInstanceProperties(parent);
|
15 | }
|
16 | else {
|
17 | properties = object_.getProperties(parent);
|
18 | }
|
19 | for (const prop of properties) {
|
20 | if (prop.kind === kind && node_.getName(prop) === thisName) {
|
21 | return prop;
|
22 | }
|
23 | }
|
24 | return undefined;
|
25 | }
|
26 | export function getGetAccessor(node) {
|
27 | return findOtherProperty(node);
|
28 | }
|
29 | export function getSetAccessor(node) {
|
30 | return findOtherProperty(node);
|
31 | }
|
32 |
|
33 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFDO0FBQ25DLE9BQU8sS0FBSyxLQUFLLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sS0FBSyxPQUFPLE1BQU0sV0FBVyxDQUFDO0FBRXJDLFNBQVMsaUJBQWlCLENBQ3hCLElBQVU7SUFFVixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUF3RCxJQUFJLENBQUMsQ0FBQztJQUM1RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDN0csTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVyQyxJQUFJLFVBQVUsQ0FBQztJQUVmLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNqRSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUM7WUFDNUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNsRDtTQUFNO1FBQ0wsVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDNUM7SUFHRCxLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsRUFBRTtRQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBRTFELE9BQU8sSUFBVyxDQUFDO1NBQ3BCO0tBQ0Y7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUErQjtJQUM1RCxPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQStCO0lBQzVELE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXRzLXV0aWxzL3NyYy9hY2Nlc3Nvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IG1vZGlmaWVyIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCAqIGFzIGNsYXNzXyBmcm9tICcuL2NsYXNzXyc7XG5pbXBvcnQgKiBhcyBub2RlXyBmcm9tICcuL25vZGUnO1xuaW1wb3J0ICogYXMgb2JqZWN0XyBmcm9tICcuL29iamVjdF8nO1xuXG5mdW5jdGlvbiBmaW5kT3RoZXJQcm9wZXJ0eTxEZWNsIGV4dGVuZHMgdHMuR2V0QWNjZXNzb3JEZWNsYXJhdGlvbiB8IHRzLlNldEFjY2Vzc29yRGVjbGFyYXRpb24+KFxuICBub2RlOiBEZWNsLFxuKTogKERlY2wgZXh0ZW5kcyB0cy5HZXRBY2Nlc3NvckRlY2xhcmF0aW9uID8gdHMuU2V0QWNjZXNzb3JEZWNsYXJhdGlvbiA6IHRzLkdldEFjY2Vzc29yRGVjbGFyYXRpb24pIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyZW50ID0gbm9kZV8uZ2V0UGFyZW50PHRzLkdldEFjY2Vzc29yRGVjbGFyYXRpb24gfCB0cy5TZXRBY2Nlc3NvckRlY2xhcmF0aW9uPihub2RlKTtcbiAgY29uc3Qga2luZCA9IG5vZGUua2luZCA9PT0gdHMuU3ludGF4S2luZC5HZXRBY2Nlc3NvciA/IHRzLlN5bnRheEtpbmQuU2V0QWNjZXNzb3IgOiB0cy5TeW50YXhLaW5kLkdldEFjY2Vzc29yO1xuICBjb25zdCB0aGlzTmFtZSA9IG5vZGVfLmdldE5hbWUobm9kZSk7XG5cbiAgbGV0IHByb3BlcnRpZXM7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uZGl0aW9uYWwtZXhwcmVzc2lvblxuICBpZiAodHMuaXNDbGFzc0RlY2xhcmF0aW9uKHBhcmVudCkgfHwgdHMuaXNDbGFzc0V4cHJlc3Npb24ocGFyZW50KSkge1xuICAgIHByb3BlcnRpZXMgPSBtb2RpZmllci5pc1N0YXRpYyhub2RlKVxuICAgICAgPyBjbGFzc18uZ2V0Q29uY3JldGVTdGF0aWNQcm9wZXJ0aWVzKHBhcmVudClcbiAgICAgIDogY2xhc3NfLmdldENvbmNyZXRlSW5zdGFuY2VQcm9wZXJ0aWVzKHBhcmVudCk7XG4gIH0gZWxzZSB7XG4gICAgcHJvcGVydGllcyA9IG9iamVjdF8uZ2V0UHJvcGVydGllcyhwYXJlbnQpO1xuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3Atc3RhdGVtZW50XG4gIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgaWYgKHByb3Aua2luZCA9PT0ga2luZCAmJiBub2RlXy5nZXROYW1lKHByb3ApID09PSB0aGlzTmFtZSkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLWFueVxuICAgICAgcmV0dXJuIHByb3AgYXMgYW55O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZXRBY2Nlc3Nvcihub2RlOiB0cy5TZXRBY2Nlc3NvckRlY2xhcmF0aW9uKTogdHMuR2V0QWNjZXNzb3JEZWNsYXJhdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBmaW5kT3RoZXJQcm9wZXJ0eShub2RlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNldEFjY2Vzc29yKG5vZGU6IHRzLkdldEFjY2Vzc29yRGVjbGFyYXRpb24pOiB0cy5TZXRBY2Nlc3NvckRlY2xhcmF0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGZpbmRPdGhlclByb3BlcnR5KG5vZGUpO1xufVxuIl19
|