{"version":3,"sources":["jsdelivr-header.js","/npm/@codeplace/cli@1.4.8/index.ts"],"names":[],"mappings":"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","file":"/npm/@codeplace/cli@1.4.8/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@codeplace/cli@1.4.8/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\nimport program = require('commander');\nimport { exec, execSync } from 'child_process';\nimport fs = require('fs');\nimport { packageJson, tsconfigJson, apiConfig, list, cliConfigTemplate, \n    globalVars, environmentHelper, currentEnvironmentContent, localEnvironmentContent, \n    bootstrapFile, helpersDirectoryIndex \n} from './source/config';\nimport { Instances, CreateRoutesFiles, ControllerTemplate, LoadControllersScriptTemplate } from '@codeplace/express-extensions';\nimport * as path from 'path';\nconst cliConfigsFileName = 'app.config.json';\n\ninterface CLIConfigs {\n    controllersDirectory: string;\n    routesDirectory: string;\n    loadControllersScript: string;\n}\n\nprogram\n  .command('create <type> <name> <package-name>')\n  .option('-p, --list <items>', 'Packages to includes in creation', list)\n  .action(function (type, packageRootFolder, packageName, cmd) {\n\n        type = type.toLowerCase();\n        const directoryExists = fs.existsSync(`./${packageRootFolder}`);\n        const packages: string[] = cmd.list ? cmd.list : [];\n\n        if(!directoryExists) {\n\n            // In commmon\n            fs.mkdirSync(`./${packageRootFolder}`);\n            console.log('Directory created.');\n            fs.mkdirSync(`./${packageRootFolder}/source`);\n            console.log('Source dir created.');\n            fs.writeFileSync(`./${packageRootFolder}/package.json`, packageJson(type, packageName));\n            console.log('package.json created.');\n            fs.writeFileSync(`./${packageRootFolder}/tsconfig.json`, tsconfigJson());\n            console.log('tsconfig.json created.');\n            const buffer = execSync(`cd ./${packageRootFolder} && npm install typescript --save-dev`);\n            process.stdout.write(buffer);\n\n            // Install packages\n            packages.forEach((pack) => { \n                const buffer = execSync(`cd ./${packageRootFolder} && npm install ${pack} --save`) \n                process.stdout.write(buffer);\n            });\n        \n            // Actions to specified command\n            switch(type) {\n                case 'api':     \n                    exec(`cd ./${packageRootFolder} && npm install @codeplace/express-extensions --save`).stdout.pipe(process.stdout);\n\n                    // Root\n                    fs.writeFileSync(`./${packageRootFolder}/index.ts`, `require('./source/server')`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/server.ts`, `${apiConfig()}`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/globalVars.ts`, `${globalVars()}`);\n\n                    // Controllers\n                    fs.mkdirSync(`./${packageRootFolder}/source/controllers`);\n\n                    // Config\n                    fs.mkdirSync(`./${packageRootFolder}/source/config`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/config/loadControllers.ts`, `${LoadControllersScriptTemplate()}`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/config/bootstrap.ts`, `${bootstrapFile()}`);\n\n                    //Routes\n                    fs.mkdirSync(`./${packageRootFolder}/source/routes`);\n\n                    // Models\n                    fs.mkdirSync(`./${packageRootFolder}/source/models`);\n\n                    // Helpers\n                    fs.mkdirSync(`./${packageRootFolder}/source/helpers`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/helpers/Environment.ts`, `${environmentHelper()}`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/helpers/index.ts`, `${helpersDirectoryIndex()}`);\n\n                    // Environments\n                    fs.mkdirSync(`./${packageRootFolder}/source/environments`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/environments/current.env.json`, `${currentEnvironmentContent()}`);\n                    fs.writeFileSync(`./${packageRootFolder}/source/environments/local.env.json`, `${localEnvironmentContent()}`);\n\n\n                    fs.writeFileSync(path.resolve(process.cwd(), packageRootFolder, cliConfigsFileName), cliConfigTemplate());\n                    break;\n\n                case 'lib':\n                    fs.writeFileSync(`./${packageRootFolder}/index.ts`, `export * from './source'`);\n                    break;\n            }\n        } else {\n            console.log('A Directory with the specified name already exists')\n        }\n  });\n\nprogram\n    .command('controller <name> <prefix> <version>')\n    .action(function (name, prefix, version, cmd) {\n    \n        const cliConfigs = getCLIConfigs();\n        const versionDirectory = `./${cliConfigs.controllersDirectory}/v${version}`;\n        console.log(`Controller destination directory: ${versionDirectory}`);\n\n        const directoryExists = fs.existsSync(versionDirectory);\n        if(!directoryExists) fs.mkdirSync(versionDirectory);\n\n        const controllerName = `${name}Controller.ts`;\n        const controllerPath = path.resolve(versionDirectory, controllerName);\n        if(fs.existsSync(controllerPath)) return console.log(`${name}Controller already exists!`) ;\n\n        // Create controller\n        fs.writeFileSync(controllerPath, ControllerTemplate(name, version, prefix));\n\n        // Create routes // wait typescript compile js\n        setTimeout(() => {\n            runRoutesFilesCreator();\n        }, 800);\n    });\n\nprogram\n    .command('routes')\n    .action(function (cmd) {\n        runRoutesFilesCreator();\n    });\n\nprogram.parse(process.argv);\n\nfunction runRoutesFilesCreator() {\n    const cliConfigs = getCLIConfigs();\n    const loadControllersScript = getLoadControllersScript(cliConfigs);\n    const destinationDirectory = getRoutesDestinationDirectory(cliConfigs);\n    callRoutesFilesCreator(destinationDirectory, loadControllersScript);\n}\n\nfunction getRoutesDestinationDirectory(cliConfigs: CLIConfigs) {\n    const rootDirectory = process.cwd();\n    const destinationDirectory = path.resolve(rootDirectory, cliConfigs.routesDirectory);\n    console.log(`Routes destination directory: ${destinationDirectory}`);\n    return destinationDirectory;\n}\n\nfunction getLoadControllersScript(cliConfigs: CLIConfigs) {\n    const rootDirectory = process.cwd();\n    const loadControllersScript = path.resolve(rootDirectory, cliConfigs.loadControllersScript)\n    console.log(`Load controllers script: ${loadControllersScript}`);\n    \n    return loadControllersScript;\n}\n\nfunction callRoutesFilesCreator(destinationDirectory: string, loadControllersScript: string) {\n\n    try {\n        \n        const instances: Instances = require(loadControllersScript);\n        console.log(`Available controllers: ${Object.getOwnPropertyNames(instances)}`);\n        \n        CreateRoutesFiles(instances, destinationDirectory);\n        console.log(`Routes created!`);\n    } catch (error) {\n        console.error(error.message);\n    }\n}\n\nfunction getCLIConfigs() { \n\n    const rootDirectory = process.cwd(); \n    const cliConfigsPath = path.resolve(rootDirectory, cliConfigsFileName);\n    if(!fs.existsSync(cliConfigsPath)) {\n        console.log('CLI configs not found!'); \n        process.exit(); \n    }\n\n    const cliConfigs = require(cliConfigsPath) as CLIConfigs;\n    console.log('CLI configs loaded!');\n    return cliConfigs;\n}"]}