UNPKG

@assylman/riverpod-cli

Version:

nodejs cli for creating well structured flutter riverpod folders and files needed to work with Riverpod plugin

57 lines (56 loc) 2.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateManager = generateManager; const fs_1 = __importDefault(require("fs")); const utils_1 = require("../utils"); const features_1 = require("../features"); const managerDart = '_manager.dart'; const indexDart = 'managers.dart'; function generateManager(name, options) { const target = options.target; const libDir = target != null ? '.' + target : './lib/features'; const featureDirectory = libDir + '/' + name; const managerDirectory = featureDirectory + '/managers'; const managerFileName = managerDirectory + '/' + name + managerDart; const managerIndexFileName = managerDirectory + '/' + indexDart; const dirs = managerDirectory.split('/').filter(n => n && n != 'lib'); var fullDirs; for (const dir of dirs) { if (!fullDirs) { fullDirs = './lib/' + dir; } else { fullDirs += '/' + dir; } if (!fs_1.default.existsSync(fullDirs)) { try { fs_1.default.mkdirSync(fullDirs, { recursive: true }); } catch (err) { console.error(err); } } } fs_1.default.writeFileSync(managerFileName, generateManagerFile(name), { flag: "w" }); if (options.i) { fs_1.default.writeFileSync(managerIndexFileName, generateIndexBarrelFile(name), { flag: "w" }); (0, features_1.generateFeatureIndexFile)(name, utils_1.Commands.manager, featureDirectory); } } function generateManagerFile(name) { const managerName = (0, utils_1.toPascalCase)(name) + 'Manager'; return [ `class ${managerName} {`, ` const ${managerName}();`, `}`, ].join('\n'); } function generateIndexBarrelFile(name) { const content = [ `export './${name}_manager.dart';`, ]; return content.join('\n'); }