moca-plugin-generator
v1.0.0
Published
Generador para plugins Cordova en el ecosistema MOCA
Maintainers
Readme
generator-moca-plugin
Generador Yeoman para scaffolding de plugins Cordova con soporte multiplataforma (Android + iOS) y estructura estandarizada para el equipo.
🧠 Convenciones y generación automática
Este generador crea la estructura de un plugin Cordova utilizando buenas prácticas de naming y automatización.
🔤 Formato del pluginName
El valor de pluginName se solicita al usuario y puede contener mayúsculas, espacios o caracteres especiales. Este valor se utiliza como base para derivar otros campos automáticamente.
Ejemplo de entrada:
Mi Plugin Super Copado🪄 Generación automática de pluginId
El pluginId se genera automáticamente usando el siguiente formato:
moca.plugin.<nombre-del-plugin>El <nombre-del-plugin> se deriva del pluginName, aplicando:
- Conversión a minúsculas
- Eliminación de caracteres especiales
- Reemplazo de espacios por guiones
- Reemplazo de guiones por puntos
🔧 Ejemplo:
pluginName = "Mi Plugin Súper Copado"
// nombre intermedio: "mi-plugin-super-copado"
→ pluginId final = "moca.plugin.mi.plugin.super.copado"Este valor se inyecta automáticamente en el plugin.xml y otras partes del proyecto.
📦 Convención para nombres de paquetes (Kotlin)
Si necesitás construir un nombre de paquete para Kotlin (src/main/java/...), podés usar una transformación aún más estricta:
pluginName.toLowerCase()
.replace(/\s+/g, '') // elimina espacios
.replace(/[^a-z0-9]/g, '') // elimina caracteres no válidosEjemplo:
pluginName = "Image Capture"
→ "imagecapture"
→ Ruta final: src/main/java/moca/plugin/imagecapture/Example.kt🧰 Conversión útiles utilizadas internamente
// "Image Capture" → "imagecapture"
pluginName.toLowerCase().replace(/\s+/g, '');
// "Mi Plugin Copado" → "mi.plugin.copado"
pluginName.toLowerCase()
.replace(/\s+/g, '-') // "mi-plugin-copado"
.replace(/[^a-z0-9\-]/g, '') // limpia
.replace(/-/g, '.'); // "mi.plugin.copado"✅ Resultado final esperado
El plugin generado tendrá:
- Un
pluginIdcon formato homogéneo - Código fuente bajo
src/ - Bridge JS en
www/index.js - Estructura lista para Android e iOS
- App de pruebas integrada
cordova-plugin-mi-plugin/
├── src/
│ ├── android/
│ ├── ios/
│ ├── bridge/
│ └── tests/
├── www/
├── plugin.xml
├── package.json
├── README.md
├── tsconfig.json
├── tsconfig.types.json
└── webpack.config.js🚀 Uso
npm install -g yo
cd generator-moca-plugin
npm link
cd /path/to/test-folder --> Osea armar la carpeta del plugin
yo moca-plugin
cd /path/new-project
npm i --> Esto es para levantar las dependencias en el package.json🧹 Para eliminar el plugin generado
cordova plugin remove @moca/plugin-mi-plugin
rm -rf plugins/moca-plugin-mi-plugingenerator-moca-plugin
Generador de plugins Cordova para el ecosistema MOCA.
Uso rápido
Uso desde npm/npx
npx @moca/generator-moca-pluginUso local
npm install -g @moca/generator-moca-plugin
moca-plugin