UNPKG

ngrx-uml

Version:
46 lines (45 loc) 2.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreateActionCallExpConverter = void 0; const chalk_1 = __importDefault(require("chalk")); const loglevel_1 = __importDefault(require("loglevel")); const typescript_1 = __importDefault(require("typescript")); const node_converter_1 = require("../../../core/converters/node.converter"); const tsutils_1 = require("../../../utils/tsutils"); const action_model_1 = require("../../models/action.model"); const createActionName = 'createAction'; class CreateActionCallExpConverter extends node_converter_1.NodeConverter { convert(context, node) { if (this.isCreateAction(node)) { const [nameArg, ...args] = node.arguments; let action; if (typescript_1.default.isStringLiteral(nameArg)) { action = new action_model_1.Action(nameArg.text, node.getSourceFile().fileName, node.getStart(), node.getEnd()); action.createActionArgs = this.extractCreateActionArgs(context, args); loglevel_1.default.debug(`Found ${action.kindText}: ${chalk_1.default.yellow(action.name)} in ${chalk_1.default.gray(action.filePath)}`); return action; } } return; } isCreateAction(callExpression) { return tsutils_1.getCallExpressionName(callExpression) === createActionName; } extractCreateActionArgs(context, args) { if (!args) { return; } const convertedArgs = []; for (const arg of args) { const convertedArg = context.converter.convertNode(context, arg, true); if (convertedArg) { convertedArgs.push(convertedArg); } } return convertedArgs.length > 0 ? convertedArgs : undefined; } } exports.CreateActionCallExpConverter = CreateActionCallExpConverter;