We’re happy to share our progress on two very awaited features: TypeScript support and the Dark Mode. Both features are available in the beta version of v4.2.0
Please note that both features are a work in progress and the beta version should not be used in production. We’re sharing them with you to have feedback on an early stage
Hey there, I am really excited about the typescript support!
Is there an updated documentation, though, showing some simple customization e.g. how to customize a single controller with typescript?
I tried that out, but wasn’t able to replace just the find function for example of a collection type controller, because:
The factories.d.ts definition of the createCoreController function requires a complete Controller type input, meaning if I want to provide that input parameter, typescript requires me to define a complete set of the functions find, findOne, create, update, delete, transformResponse, sanitizeOutput, sanitizeInput. That should not be necessary, though, as the actual implementation of the createCoreController function is checking which functions are provided and will overwrite just those. Shouldn’t the type definition use Partial<> or something here to allow only a subgroup of the functions as input?
Also the input does not accept a function, but just the Controller type directly. Means, I cannot inject the strapi object into my controller functions. Again, the actual implementation of createCoreController has a check (typeof cfg === 'function'), but the type definition does not allow me a function as parameter.
Hi @rom, happy that you are excited about TypeScript support!
The Documentation team is working closely with developers to add more documentation about TypeScript support in Strapi soon. We will keep you posted
Hello there! I’m also very happy about Typescript support on Strapi.
Just in addition to @rom’s comment, this also happens with createCoreRouter.
We can just go and add everything manually but it is a little bit tedious just for adding a config-option or any other parameter. The Partial<> approach or similar looks like a good solution for this.
Is there any way to follow the progress on the Typescript implementation? I’m trying to migrate a v3 Strapi written in Typescript (custom implementation) to the new v4.2.0, but I can see there is still a lot of work in progress.
Thus far Strapi v4.2.0 beta.0 and beta.1 throw errors when running npm start.
❯ npm start
╰─ npm start ─╯
> my-project@0.1.0 start /Users/user/org/my_project
> strapi start
[2022-04-25 20:25:13.210] debug: ⛔️ Server wasn't able to start properly.
[2022-04-25 20:25:13.212] error: Unknown dialect undefined
Error: Unknown dialect undefined
at getDialectClass (/Users/user/org/my_project/node_modules/@strapi/database/lib/dialects/index.js:12:13)
at getDialect (/Users/user/org/my_project/node_modules/@strapi/database/lib/dialects/index.js:19:23)
at new Database (/Users/user/org/my_project/node_modules/@strapi/database/lib/index.js:27:20)
at Function.Database.init (/Users/user/org/my_project/node_modules/@strapi/database/lib/index.js:73:33)
at Strapi.bootstrap (/Users/user/org/my_project/node_modules/@strapi/strapi/lib/Strapi.js:385:30)
at Strapi.load (/Users/user/org/my_project/node_modules/@strapi/strapi/lib/Strapi.js:448:16)
at async Strapi.start (/Users/user/org/my_project/node_modules/@strapi/strapi/lib/Strapi.js:196:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my-project@0.1.0 start: `strapi start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-project@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
When trying to add plugins for s3, ran into this :
[2022-06-07 16:20:19.181] debug: ⛔️ Server wasn't able to start properly.
[2022-06-07 16:20:19.182] error: provider.init is not a function
TypeError: provider.init is not a function