
Importations
Les scripts utilisant l’extension .mjs
peuvent utiliser des importations statiques ou dynamiques comme tout autre fichier module. Vous pouvez renommer n’importe quel fichier .genai.js
en .genai.mjs
pour activer les importations de modules.
Importations de modules
Section intitulée « Importations de modules »Vous pouvez importer des packages Node installés dans votre projet avec l’extension .mjs
ou .mts
.
import { parse } from "ini"
// static importconst res = parse("x = 1\ny = 2")console.log(res)
// dynamic import with top-level awaitconst { stringify } = await import("ini")console.log(stringify(res))
Importations JavaScript
Section intitulée « Importations JavaScript »Vous pouvez également importer d’autres fichiers modules JavaScript locaux (en utilisant des importations statiques ou dynamiques). Utilisez l’extension .mjs
pour les fichiers modules JavaScript.
export function summarize(files) { def("FILE", files) $`Summarize each file. Be concise.`}
- importation statique (
import ... from ...
)
import { summarize } from "./summarizer.mjs"summarize(env.generator, env.files)
- importation dynamique (
async import(...)
)
const { summarize } = await import("./summarizer.mjs")summarize(env.generator, env.files)
Importations TypeScript
Section intitulée « Importations TypeScript »Vous pouvez importer des fichiers modules TypeScript (.mts
). Utilisez l’extension .mts
pour les fichiers modules TypeScript.
export function summarize(files: string[]) { def("FILE", files) $`Summarize each file. Be concise.`}
- importation statique (
import ... from ...
)
import { summarize } from "./summarizer.mts"summarize(env.generator, env.files)
- importation dynamique (
async import(...)
)
const { summarize } = await import("./summarizer.mts")summarize(env.generator, env.files)
env.generator
Section intitulée « env.generator »Le env.generator
fait référence au contexte du générateur de prompt racine, les fonctions $
, def
de niveau supérieur… Il peut être utilisé pour créer une fonction utilisable avec ces fonctions ou également avec runPrompt
.
export function summarize(_, files) { _.def("FILE", files) _.$`Summarize each file. Be concise.`}
Modules JSON
Section intitulée « Modules JSON »Vous pouvez importer des fichiers JSON en utilisant l’instruction import
et obtenir une inférence de type automatique.
{ "name": "GenAIScript"}
Utilisez la syntaxe with { type: "json" }
pour importer des fichiers JSON dans des fichiers .mjs
ou .mts
. Le chemin du fichier est relatif au fichier source genaiscript.
import data from "./data.json" with { type: "json" }
console.log(data.name) // GenAIScript
Exportation de fonction par défaut
Section intitulée « Exportation de fonction par défaut »Si vous définissez une fonction comme exportation par défaut, GenAIScript l’appellera. La fonction peut être asynchrone.
script(...)export default async function() { $`Write a poem.`}
Type de package
Section intitulée « Type de package »Si vous avez un fichier package.json
dans votre projet, vous pouvez définir le champ type
sur module
pour activer les importations de modules dans tous les fichiers .js
.
{ "type": "module"}
Cela vous permettra d’utiliser des importations de modules dans tous les fichiers .js
de votre projet.
Fichier de script actuel
Section intitulée « Fichier de script actuel »Vous pouvez utiliser import.meta.url
pour obtenir l’URL du fichier de script actuel. Cela est utile pour obtenir le chemin du fichier de script actuel et l’utiliser dans votre script.
// convert file:// to absolute pathconst filename = path.resolveFileURL(import.meta.url)