1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | const ts_utils_1 = require("@neo-one/ts-utils");
|
5 | const typescript_1 = tslib_1.__importDefault(require("typescript"));
|
6 | const createContext_1 = require("./createContext");
|
7 | exports.scan = async (dir) => {
|
8 | const context = await createContext_1.createContextForDir(dir);
|
9 | const smartContract = ts_utils_1.tsUtils.symbol.getDeclarations(context.libs.SmartContract)[0];
|
10 | if (!typescript_1.default.isClassDeclaration(smartContract)) {
|
11 | throw new Error('Something went wrong!');
|
12 | }
|
13 | return ts_utils_1.tsUtils.class_.getDerivedClasses(context.program, context.languageService, smartContract).reduce((acc, derived) => {
|
14 | if (!ts_utils_1.tsUtils.modifier.isAbstract(derived)) {
|
15 | const file = ts_utils_1.tsUtils.file.getFilePath(ts_utils_1.tsUtils.node.getSourceFile(derived));
|
16 | const name = ts_utils_1.tsUtils.node.getNameOrThrow(derived);
|
17 | const files = acc[file];
|
18 | return Object.assign({}, acc, { [file]: files === undefined ? [name] : files.concat([name]) });
|
19 | }
|
20 | return acc;
|
21 | }, {});
|
22 | };
|
23 |
|
24 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjYW4udHMiXSwibmFtZXMiOlsic2NhbiIsImRpciIsImNvbnRleHQiLCJjcmVhdGVDb250ZXh0Rm9yRGlyIiwic21hcnRDb250cmFjdCIsInRzVXRpbHMiLCJzeW1ib2wiLCJnZXREZWNsYXJhdGlvbnMiLCJsaWJzIiwiU21hcnRDb250cmFjdCIsInRzIiwiaXNDbGFzc0RlY2xhcmF0aW9uIiwiRXJyb3IiLCJjbGFzc18iLCJnZXREZXJpdmVkQ2xhc3NlcyIsInByb2dyYW0iLCJsYW5ndWFnZVNlcnZpY2UiLCJyZWR1Y2UiLCJhY2MiLCJkZXJpdmVkIiwibW9kaWZpZXIiLCJpc0Fic3RyYWN0IiwiZmlsZSIsImdldEZpbGVQYXRoIiwibm9kZSIsImdldFNvdXJjZUZpbGUiLCJuYW1lIiwiZ2V0TmFtZU9yVGhyb3ciLCJmaWxlcyIsInVuZGVmaW5lZCIsImNvbmNhdCJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQUE7QUFDQSxvRUFBQTtBQUNBLG1EQUFBO0FBSWFBLFFBQUFBLElBQUksR0FBRyxLQUFBLEVBQU9DLEdBQVAsRUFBQSxFQUFBO0lBQ2xCLE1BQU1DLE9BQU8sR0FBRyxNQUFNQyxtQ0FBbUIsQ0FBQ0YsR0FBRCxDQUF6QyxDQUFBO0lBQ0EsTUFBTUcsYUFBYSxHQUFHQyxrQkFBTyxDQUFDQyxNQUFSLENBQWVDLGVBQWYsQ0FBK0JMLE9BQU8sQ0FBQ00sSUFBUixDQUFhQyxhQUE1QyxDQUFBLENBQTJELENBQTNELENBQXRCLENBQUE7SUFDQSxJQUFJLENBQUNDLG9CQUFFLENBQUNDLGtCQUFILENBQXNCUCxhQUF0QixDQUFMLEVBQTJDO1FBQ3pDLE1BQU0sSUFBSVEsS0FBSixDQUFVLHVCQUFWLENBQU4sQ0FBQTtLQUNEO0lBRUQsT0FBT1Asa0JBQU8sQ0FBQ1EsTUFBUixDQUNKQyxpQkFESSxDQUNjWixPQUFPLENBQUNhLE9BRHRCLEVBQytCYixPQUFPLENBQUNjLGVBRHZDLEVBQ3dEWixhQUR4RCxDQUFBLENBRUphLE1BQU0sQ0FBWSxDQUFDQyxHQUFELEVBQU1DLE9BQU4sRUFBQSxFQUFBO1FBQ2pCLElBQUksQ0FBQ2Qsa0JBQU8sQ0FBQ2UsUUFBUixDQUFpQkMsVUFBakIsQ0FBNEJGLE9BQTVCLENBQUwsRUFBMkM7WUFDekMsTUFBTUcsSUFBSSxHQUFHakIsa0JBQU8sQ0FBQ2lCLElBQVIsQ0FBYUMsV0FBYixDQUF5QmxCLGtCQUFPLENBQUNtQixJQUFSLENBQWFDLGFBQWIsQ0FBMkJOLE9BQTNCLENBQXpCLENBQWIsQ0FBQTtZQUNBLE1BQU1PLElBQUksR0FBR3JCLGtCQUFPLENBQUNtQixJQUFSLENBQWFHLGNBQWIsQ0FBNEJSLE9BQTVCLENBQWIsQ0FBQTtZQUNBLE1BQU1TLEtBQUssR0FBR1YsR0FBRyxDQUFDSSxJQUFELENBQWpCLENBQUE7WUFFQSx5QkFDS0osR0FERSxJQUVMLENBQUNJLElBQUQsQ0FBQSxFQUFRTSxLQUFLLEtBQUtDLFNBQVYsQ0FBQSxDQUFBLENBQXNCLENBQUNILElBQUQsQ0FBdEIsQ0FBQSxDQUFBLENBQStCRSxLQUFLLENBQUNFLE1BQU4sQ0FBYSxDQUFDSixJQUFELENBQWIsQ0FBQSxJQUZ6QztTQUlEO1FBRUQsT0FBT1IsR0FBUCxDQUFBO0lBQ0QsQ0FmSSxFQWVGLEVBZkUsQ0FBUCxDQUFBO0FBZ0JELENBdkJNLENBQUEiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvc2Nhbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRzVXRpbHMgfSBmcm9tICdAbmVvLW9uZS90cy11dGlscyc7XG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0Rm9yRGlyIH0gZnJvbSAnLi9jcmVhdGVDb250ZXh0JztcblxuZXhwb3J0IHR5cGUgQ29udHJhY3RzID0geyBbSyBpbiBzdHJpbmddPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+IH07XG5cbmV4cG9ydCBjb25zdCBzY2FuID0gYXN5bmMgKGRpcjogc3RyaW5nKTogUHJvbWlzZTxDb250cmFjdHM+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IGF3YWl0IGNyZWF0ZUNvbnRleHRGb3JEaXIoZGlyKTtcbiAgY29uc3Qgc21hcnRDb250cmFjdCA9IHRzVXRpbHMuc3ltYm9sLmdldERlY2xhcmF0aW9ucyhjb250ZXh0LmxpYnMuU21hcnRDb250cmFjdClbMF07XG4gIGlmICghdHMuaXNDbGFzc0RlY2xhcmF0aW9uKHNtYXJ0Q29udHJhY3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTb21ldGhpbmcgd2VudCB3cm9uZyEnKTtcbiAgfVxuXG4gIHJldHVybiB0c1V0aWxzLmNsYXNzX1xuICAgIC5nZXREZXJpdmVkQ2xhc3Nlcyhjb250ZXh0LnByb2dyYW0sIGNvbnRleHQubGFuZ3VhZ2VTZXJ2aWNlLCBzbWFydENvbnRyYWN0KVxuICAgIC5yZWR1Y2U8Q29udHJhY3RzPigoYWNjLCBkZXJpdmVkKSA9PiB7XG4gICAgICBpZiAoIXRzVXRpbHMubW9kaWZpZXIuaXNBYnN0cmFjdChkZXJpdmVkKSkge1xuICAgICAgICBjb25zdCBmaWxlID0gdHNVdGlscy5maWxlLmdldEZpbGVQYXRoKHRzVXRpbHMubm9kZS5nZXRTb3VyY2VGaWxlKGRlcml2ZWQpKTtcbiAgICAgICAgY29uc3QgbmFtZSA9IHRzVXRpbHMubm9kZS5nZXROYW1lT3JUaHJvdyhkZXJpdmVkKTtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBhY2NbZmlsZV07XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgW2ZpbGVdOiBmaWxlcyA9PT0gdW5kZWZpbmVkID8gW25hbWVdIDogZmlsZXMuY29uY2F0KFtuYW1lXSksXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xufTtcbiJdfQ==
|