šŸŽ© You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP →
Sign In

create-codetie

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

create-codetie - npm Package Compare versions

Comparing version
1.0.2
to
1.0.3
+3
-3
dist/index.mjs

@@ -1,5 +0,5 @@

import i from"fs-extra";import r from"path";import p from"minimist";import m from"prompts";import n from"chalk";import{fileURLToPath as d}from"url";const y=d(import.meta.url),u=r.dirname(y);async function g(){console.log(n.green(`Welcome to the codetie (Sync swift + xcode) Project Setup \u{1F680}
`));let e=p(process.argv.slice(2),{string:["_"]})._[0];const s=e||"codetie-project",t=await m([{type:e?null:"text",name:"projectName",message:"Project name:",initial:s,onState:a=>{e=a.value.trim()||s}},{type:"list",name:"setupType",message:"Select setup type:",choices:[{title:"Minimal",value:"minimal"},{title:"Advanced",value:"advanced"}],initial:0},{type:"text",name:"bundleIdPrefix",message:"Enter Bundle ID Prefix:",initial:"com.zunderai"},{type:"text",name:"deploymentTarget",message:"Enter Deployment Target iOS Version:",initial:"17.0"},{type:"text",name:"xcodeVersion",message:"Enter Xcode Version:",initial:"15.3"},{type:"text",name:"swiftVersion",message:"Enter Swift Version:",initial:"5.10.1"},{type:"text",name:"appVersion",message:"Enter App Version:",initial:"1.0.0"},{type:"text",name:"buildNumber",message:"Enter Build Number:",initial:"1"}]),o=r.join(process.cwd(),e);i.existsSync(o)?i.readdirSync(o).length===0?console.log(`Directory ${n.cyan(e)} is empty. Proceeding with project creation.`):(console.log(n.red(`Error: Directory ${e} is not empty. Please choose a different directory or empty it.`)),process.exit(1)):i.mkdirSync(o,{recursive:!0});const l=r.resolve(u,"../template");i.copySync(l,o);const c={project_name:e,setup_type:t.setupType,bundle_id_prefix:t.bundleIdPrefix,deployment_target:t.deploymentTarget,xcode_version:t.xcodeVersion,swift_version:t.swiftVersion,app_version:t.appVersion,build_number:t.buildNumber};i.writeFileSync(r.join(o,"codetie.yml"),JSON.stringify(c,null,2)),console.log(n.green(`
import t from"fs-extra";import n from"path";import S from"minimist";import j from"prompts";import l from"chalk";import{fileURLToPath as x}from"url";import b from"mustache";const v=x(import.meta.url),_=n.dirname(v),w={_gitignore:".gitignore"};async function P(){console.log(l.green(`Welcome to the codetie (Sync swift + xcode) Project Setup \u{1F680}
`));let e=S(process.argv.slice(2),{string:["_"]})._[0];const i=e||"codetie-project",o=await j([{type:e?null:"text",name:"projectName",message:"Project name:",initial:i,onState:r=>{e=r.value.trim()||i}}]),c=n.join(process.cwd(),e);t.existsSync(c)?t.readdirSync(c).length===0?console.log(`Directory ${l.cyan(e)} is empty. Proceeding with project creation.`):(console.log(l.red(`Error: Directory ${e} is not empty. Please choose a different directory or empty it.`)),process.exit(1)):t.mkdirSync(c,{recursive:!0});const s=n.resolve(_,"../template"),d=(r,p)=>{const m=n.join(c,w[r]??r);p?t.writeFileSync(m,p):y(n.join(s,r),m)},a=t.readdirSync(s);for(const r of a)d(r);const u={projectName:e,setupType:o.setupType,bundleIdPrefix:o.bundleIdPrefix,deploymentTarget:o.deploymentTarget,xcodeVersion:o.xcodeVersion,swiftVersion:o.swiftVersion,appVersion:o.appVersion,buildNumber:o.buildNumber},f=a.filter(r=>r.endsWith(".mustache"));for(const r of f){const p=t.readFileSync(n.join(s,r),"utf-8"),m=b.render(p,u);d(r.replace(".mustache",""),m),t.removeSync(n.join(c,r))}const g={project_name:e,setup_type:o.setupType,bundle_id_prefix:o.bundleIdPrefix,deployment_target:o.deploymentTarget,xcode_version:o.xcodeVersion,swift_version:o.swiftVersion,app_version:o.appVersion,build_number:o.buildNumber};t.writeFileSync(n.join(c,"codetie.yml"),JSON.stringify(g,null,2)),console.log(l.green(`
\u2705 Project setup complete! Happy coding! \u{1F388}
`)),console.log(`
Next steps:`),console.log(` cd ${e}`),console.log(" pnpm install"),console.log(" pnpm dev")}g().catch(e=>{console.error(n.red("Error:"),e),process.exit(1)});
Next steps:`),console.log(` cd ${e}`),console.log(" pnpm install"),console.log(" pnpm dev")}function y(e,i){t.statSync(e).isDirectory()?V(e,i):t.copyFileSync(e,i)}function V(e,i){t.mkdirSync(i,{recursive:!0});for(const o of t.readdirSync(e)){const c=n.resolve(e,o),s=n.resolve(i,o);y(c,s)}}P().catch(e=>{console.error(l.red("Error:"),e),process.exit(1)});
{
"name": "create-codetie",
"version": "1.0.2",
"version": "1.0.3",
"description": "CLI tool to set up codetie projects",

@@ -5,0 +5,0 @@ "homepage": "https://codetie.ai",

@@ -7,2 +7,3 @@ import fs from 'fs-extra';

import { fileURLToPath } from 'url';
import Mustache from 'mustache';

@@ -12,2 +13,6 @@ const __filename = fileURLToPath(import.meta.url);

const renameFiles: Record<string, string | undefined> = {
_gitignore: '.gitignore',
};
async function init() {

@@ -30,48 +35,3 @@ console.log(chalk.green('Welcome to the codetie (Sync swift + xcode) Project Setup šŸš€\n'));

},
{
type: 'list',
name: 'setupType',
message: 'Select setup type:',
choices: [
{ title: 'Minimal', value: 'minimal' },
{ title: 'Advanced', value: 'advanced' },
],
initial: 0,
},
{
type: 'text',
name: 'bundleIdPrefix',
message: 'Enter Bundle ID Prefix:',
initial: 'com.zunderai',
},
{
type: 'text',
name: 'deploymentTarget',
message: 'Enter Deployment Target iOS Version:',
initial: '17.0',
},
{
type: 'text',
name: 'xcodeVersion',
message: 'Enter Xcode Version:',
initial: '15.3',
},
{
type: 'text',
name: 'swiftVersion',
message: 'Enter Swift Version:',
initial: '5.10.1',
},
{
type: 'text',
name: 'appVersion',
message: 'Enter App Version:',
initial: '1.0.0',
},
{
type: 'text',
name: 'buildNumber',
message: 'Enter Build Number:',
initial: '1',
},
// ... (keep your other prompts)
]);

@@ -93,4 +53,37 @@

const templateDir = path.resolve(__dirname, '../template');
fs.copySync(templateDir, root);
const write = (file: string, content?: string) => {
const targetPath = path.join(root, renameFiles[file] ?? file);
if (content) {
fs.writeFileSync(targetPath, content);
} else {
copy(path.join(templateDir, file), targetPath);
}
};
const files = fs.readdirSync(templateDir);
for (const file of files) {
write(file);
}
// Process mustache templates
const templateVariables = {
projectName: targetDir,
setupType: result.setupType,
bundleIdPrefix: result.bundleIdPrefix,
deploymentTarget: result.deploymentTarget,
xcodeVersion: result.xcodeVersion,
swiftVersion: result.swiftVersion,
appVersion: result.appVersion,
buildNumber: result.buildNumber,
};
const mustacheFiles = files.filter(file => file.endsWith('.mustache'));
for (const file of mustacheFiles) {
const content = fs.readFileSync(path.join(templateDir, file), 'utf-8');
const rendered = Mustache.render(content, templateVariables);
write(file.replace('.mustache', ''), rendered);
fs.removeSync(path.join(root, file)); // Remove the original .mustache file
}
// Generate codetie.yml

@@ -116,2 +109,20 @@ const codetieConfig = {

function copy(src: string, dest: string) {
const stat = fs.statSync(src);
if (stat.isDirectory()) {
copyDir(src, dest);
} else {
fs.copyFileSync(src, dest);
}
}
function copyDir(srcDir: string, destDir: string) {
fs.mkdirSync(destDir, { recursive: true });
for (const file of fs.readdirSync(srcDir)) {
const srcFile = path.resolve(srcDir, file);
const destFile = path.resolve(destDir, file);
copy(srcFile, destFile);
}
}
init().catch((e) => {

@@ -118,0 +129,0 @@ console.error(chalk.red('Error:'), e);