Open chriscarrillo opened 4 years ago
I think the real issue is that the .js
extension is hardcoded. I tried to run the lib/index.js
command with ts-node
and node -r ts-node/register
so TypeScript files can be imported, but the hardcoding is messing things up.
Hello @chriscarrillo this scenario is probably poorly documented but it should work like this: 1) create typescript migration 2) run transpilation 3) run migration
As you can see in the boilerplate there is tsc
command before running migration.
This behavior is there so you can write the migrations in any language (for example coffescript).
Let me know if you have more questions about running typescript migrations.
Ah that makes sense. Thank you!
We have to update documentation for kontent-cli that will explain how this tool works, at least typescript/javascript usage.
It would be preferred as an option to use a json schema to drive the migrations where no deep processing is needed. For simple migrations we shouldn't need to deal with any programming language as a dependency to do the job. just a suggestion...
Bug Description
There is a way to create both JavaScript and TypeScript migrations but I can only run JavaScript migrations. When I try to run my new TypeScript migration, it says
Couldn't import the migration script from C:\CFAS\KenticoKontentCli\Migrations\test.ts.js due to an error: "Cannot find module C:\CFAS\KenticoKontentCli\Migrations\test.ts.js"
.It looks like it is looking for a JavaScript file by default. It assumes the migration is JavaScript.
Repro Steps
kontent migration add --name test --template-type "typescript"
.kontent migration run --name test --environment DEV
.Expected Behavior
It should run the TypeScript migration file.
Additional Context
I attempted to run the TypeScript migration file provided by the boilerplate. I deleted the JavaScript file and left the TypeScript file alone to see what it would do. It gave me an error because it is looking for a JavaScript file.
I was looking at the code for
run
and I have a feeling this might have something to do with it.Perhaps there could be a flag to specify if the migration is JavaScript or TypeScript. If not, have run determine it automatically. If it cannot find the
.js
file, then look for a.ts
file.Screenshots
Please let me know if I can provide any further details. Thank you! :)