Bonjour,
Je cherche à créer un endpoint custom. Pour ce faire je me réfère à la doc officielle : Creating Extensions | Directus Docs
Donc :
-
dans un nouveau dossier : Je choisis « endpoint » et « typescript » et je nomme mon extension « init »
-
Dans le dossier init j’initialise avec « npm run dev »
-
le copie le contenu du dist\ dans le dossier « extension\endpoints » de directus en le renommant en « init »
-
Je relance Directus
Le package.json est donc :
{
"name": "directus-extension-init",
"description": "Please enter a description for your extension",
"icon": "extension",
"version": "1.0.0",
"keywords": [
"directus",
"directus-extension",
"directus-custom-endpoint"
],
"type": "module",
"directus:extension": {
"type": "endpoint",
"path": "dist/index.js",
"source": "src/index.ts",
"host": "^10.4.2"
},
"scripts": {
"build": "directus-extension build",
"dev": "directus-extension build -w --no-minify",
"link": "directus-extension link"
},
"devDependencies": {
"@directus/extensions-sdk": "10.4.2",
"@types/node": "^20.3.3",
"typescript": "^5.1.6"
}
}
Mais lorsque je relance Directus, je tombe toujours sur :
(node:30012) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
[13:01:43.693] WARN: Couldn't register endpoint "init"
[13:01:43.693] WARN: Unexpected token 'export'
err: {
"type": "SyntaxError",
"message": "Unexpected token 'export'",
"stack":
localURL\extensions\endpoints\init\index.js:1
var e=e=>{e.get("/init",((e,l)=>l.send("Hello, World!")))};export{e as default};
^^^^^^
SyntaxError: Unexpected token 'export'
at internalCompileFunction (node:internal/vm:73:18)
at wrapSafe (node:internal/modules/cjs/loader:1176:20)
at Module._compile (node:internal/modules/cjs/loader:1218:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:169:29)
at ModuleJob.run (node:internal/modules/esm/module_job:194:25)
}
Comme je n’ai rien touché à l’extension je m’attendais à ce qu’elle fonctionne toute seule, mais non, rien à faire…
Quelqu’un a déjà manipulé les extensions ?
Ps : j’ai déjà posté et échangé avec Directus sur Discord, ils ne m’ont pas fourni plus d’infos…
Merci !