ngrx-uml
Version:
NGRX to Plant UML diagram
46 lines (45 loc) • 2.03 kB
JavaScript
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;
;