Open asanzo opened 2 weeks ago
Creo que el problema no es el caracter especial -
si no que arranca con un numero.
Probe esto y funciono
wollok init Juego2024-TP-1 -g -n Juego2024-TP-1
No estoy seguro, pero parece un problema del parser a la hora de interpretar el import
Buen dato!!
De todas formas, el name termina estando en nombres de archivos y en imports:
wollok init -g -n falopa
tira:
Entonces,
Cada una de esas cosas tiene requisitos distintos.
Por ejemplo, un filename válido puede empezar con número, o tener un punto, pero como vos decís un módulo no.
Y no sé si un módulo admite caracteres como /
, ?
y otros, que podrían valer para un módulo, pero seguro no valen para un filename.
Entonces, no tengo que poder crear un proyecto con un name que no respete ambas restricciones (y no sé cuáles más)
Me imagino algo así como:
const exampleName = sanitize(name ?? 'example')
/** Sanitizes project name to allow it to be used as a filename and as a module name.
* If it doesn't start with a lowercase letter or a '_', it adds '_' at the beggining.
* Replaces every symbol not allowed with a '_'.
*/
const sanitize = name => name[0].replace(/([^a-z_])/g,'_$1') + name.slice(1).replace(/[^a-zA-z1-9_-]/g, '_')
Sii, tuve en cuenta eso en la implementación del pr que subi hace un rato. Lo único que no sanitiza, solo hace un camel case, no estaría mal agregar una sanitización como la que propones para dejarlo mas robusto
@asanzo Cuando tengas un ratito fijate que te parece la implementación https://github.com/uqbar-project/wollok-ts-cli/pull/193 que le agregue algo muy parecido a lo que proponias como fn de sanitización
Jajajaja essssaa!!!! ¿Falra chequear longitud mínima quizás? De 1 caracter.... No?
Del resto, me gustaría chusmearlo mejor en la pc
Luego de hacer
Me encuentro con código que no anda:
Debería: