{"version":3,"sources":["jsdelivr-header.js","/npm/xdbin-static-template@1.0.5/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACLA,MAAM,QAAU,QAAQ,aAClB,GAAK,QAAQ,MACb,KAAO,QAAQ,QAGf,SAAW,KAAK,KAAK,UAAW,UAEtC,IAAI,YAAc,wBACd,aAAe,aAEf,YAAc,KAAK,QAAQ,MAE/B,QACG,QAAQ,yBACR,YAAY,sBACZ,QAAQ,IACP,YAAc,EACd,aAAe,CAAI,IAGvB,QACG,QAAQ,QAAS,iBACjB,OAAO,qBAAsB,iBAC7B,OAAO,oBAAqB,gBAC5B,MAAM,QAAQ,MAGb,QAAQ,OACV,YAAc,KAAK,QAAQ,QAAQ,OAGjC,QAAQ,QACV,aAAe,QAAQ,OAGzB,aAAe,IAAI,cAEnB,QAAQ,IAAI,oBAAoB,iBAChC,QAAQ,IAAI,qBAAqB,kBACjC,QAAQ,IAAI,oBAAoB,iBAEhC,IAAI,KAAO,SAAU,EAAK,GAExB,GAAG,QAAQ,GAAK,SAAU,EAAK,GAC7B,GAAI,EACF,MAAM,EAGR,EAAM,SAAQ,SAAU,GACtB,IAAI,EAAO,EAAM,IAAM,EACrB,EAAO,EAAM,IAAM,EAErB,GAAG,KAAK,GAAM,SAAU,EAAK,GAC3B,GAAI,EACF,MAAM,EAGJ,EAAG,SAEL,GAAG,SAAS,EAAM,CAAE,KAAM,KAAM,SAAU,SAAU,CAAC,EAAK,KACpD,EACF,QAAQ,MAAM,IAIhB,GADA,EAAO,EAAK,QAAQ,kBAAmB,cAC3B,QAAQ,mBAAoB,cACxC,GAAG,UAAU,EAAM,GAAO,IACpB,GACF,QAAQ,MAAM,EAEhB,IACD,IAII,EAAG,eACV,OAAO,EAAM,EAAM,KAEvB,GACF,GACF,GACF,EAEI,OAAS,SAAU,EAAK,EAAK,GAC3B,GAAG,WAAW,GAChB,EAAS,EAAK,GAEd,GAAG,MAAM,GAAK,WACZ,EAAS,EAAK,EAChB,GAEJ,EAGA,OAAO,SAAU,YAAa,MAC9B,QAAQ,IAAI,kCACZ,QAAQ,IAAI,IACZ,QAAQ,IAAI,WAAW,eACvB,QAAQ,IAAI,oBACZ,QAAQ,IAAI,sBACZ,QAAQ,IAAI,IACZ,QAAQ,IAAI","file":"/npm/xdbin-static-template@1.0.5/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/xdbin-static-template@1.0.5/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\r\nconst program = require('commander');\r\nconst fs = require('fs');\r\nconst path = require('path');\r\n\r\n// 静态模板文件目录\r\nconst fromFile = path.join(__dirname, 'static')\r\n// 项目名称\r\nlet projectName = 'xdbin-static-template';\r\nlet projectTitle = 'helloworld';\r\n// 项目生成的路径\r\nlet projectPath = path.resolve('./');\r\n\r\nprogram\r\n  .command('create <project-name>')\r\n  .description('create new project')\r\n  .action((name) => {\r\n    projectName = name;\r\n    projectTitle = name;\r\n  });\r\n\r\nprogram\r\n  .version('1.0.5', '-v, --version')\r\n  .option('-t, --title [type]', 'project title')\r\n  .option('-p, --path [type]', 'project path')\r\n  .parse(process.argv);\r\n\r\n// 项目路径\r\nif (program.path) {\r\n  projectPath = path.resolve(program.path)\r\n}\r\n// 项目标题\r\nif (program.title) {\r\n  projectTitle = program.title\r\n}\r\n\r\nprojectPath += `/${projectName}`\r\n\r\nconsole.log(`Project name is [${projectName}].`)\r\nconsole.log(`Project title is [${projectTitle}].`)\r\nconsole.log(`Project path is [${projectPath}].`)\r\n\r\nvar copy = function (src, dst) {\r\n  // 读取目录中的所有文件/目录\r\n  fs.readdir(src, function (err, paths) {\r\n    if (err) {\r\n      throw err;\r\n    }\r\n\r\n    paths.forEach(function (path) {\r\n      var _src = src + '/' + path,\r\n        _dst = dst + '/' + path;\r\n\r\n      fs.stat(_src, function (err, st) {\r\n        if (err) {\r\n          throw err;\r\n        }\r\n        // 判断是否为文件\r\n        if (st.isFile()) {\r\n          // 创建读取流\r\n          fs.readFile(_src, { flag: 'r+', encoding: 'utf8' }, (err, data) => {\r\n            if (err) {\r\n              console.error(err);\r\n              return;\r\n            }\r\n            data = data.replace(/%project_name%/g, projectName)\r\n            data = data.replace(/%project_title%/g, projectTitle)\r\n            fs.writeFile(_dst, data, (err) => {\r\n              if (err) {\r\n                console.error(err);\r\n                return;\r\n              }\r\n            })\r\n          })\r\n        }\r\n        // 如果是目录则递归调用自身\r\n        else if (st.isDirectory()) {\r\n          exists(_src, _dst, copy);\r\n        }\r\n      });\r\n    });\r\n  });\r\n};\r\n// 在复制目录前需要判断该目录是否存在，不存在需要先创建目录\r\nvar exists = function (src, dst, callback) {\r\n  if (fs.existsSync(dst)) {\r\n    callback(src, dst);\r\n  } else {\r\n    fs.mkdir(dst, function () {\r\n      callback(src, dst);\r\n    });\r\n  }\r\n};\r\n\r\n// 复制目录\r\nexists(fromFile, projectPath, copy);\r\nconsole.log('Success to create new project:')\r\nconsole.log('')\r\nconsole.log(`  1. cd ${projectName}`)\r\nconsole.log('  2. npm install')\r\nconsole.log('  3. npm run start')\r\nconsole.log('')\r\nconsole.log('Open http://localhost:3000')\r\n"]}