(parameter: AST)
| 1933 | let symbolKeys: ReadonlyArray<symbol> | undefined |
| 1934 | |
| 1935 | function go(parameter: AST): ReadonlyArray<PropertyKey> { |
| 1936 | switch (parameter._tag) { |
| 1937 | case "String": |
| 1938 | case "TemplateLiteral": |
| 1939 | return (stringKeys ??= Object.keys(input)).filter((k) => parameter.matchPart(k, options) !== undefined) |
| 1940 | case "Number": |
| 1941 | return (stringKeys ??= Object.keys(input)).filter((k) => parameter.matchKey(k, options) !== undefined) |
| 1942 | case "Symbol": |
| 1943 | return (symbolKeys ??= Object.getOwnPropertySymbols(input)).filter((k) => |
| 1944 | parameter.matchKey(k, options) !== undefined |
| 1945 | ) |
| 1946 | case "Union": |
| 1947 | return [...new Set(parameter.types.flatMap(go))] |
| 1948 | default: |
| 1949 | return [] |
| 1950 | } |
| 1951 | } |
| 1952 | return go(parameterFromPropertyKey(toEncoded(parameter))) |
| 1953 | } |
| 1954 |
no test coverage detected