Création d'une extension endpoint

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 !

Comme d’habitude, poster c’est trouver la réponse… => il faut copier également les package.json et les nodes modules

1 « J'aime »