apibara 2.1.0-beta.30 → 2.1.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/add.mjs +1 -0
- package/dist/chunks/add.mjs.map +1 -0
- package/dist/chunks/build.mjs +1 -0
- package/dist/chunks/build.mjs.map +1 -0
- package/dist/chunks/dev.mjs +14 -9
- package/dist/chunks/dev.mjs.map +1 -0
- package/dist/chunks/init.mjs +1 -0
- package/dist/chunks/init.mjs.map +1 -0
- package/dist/chunks/prepare.mjs +1 -0
- package/dist/chunks/prepare.mjs.map +1 -0
- package/dist/chunks/start.mjs +3 -8
- package/dist/chunks/start.mjs.map +1 -0
- package/dist/chunks/write-project-info.mjs +1 -0
- package/dist/chunks/write-project-info.mjs.map +1 -0
- package/dist/cli/index.mjs +1 -0
- package/dist/cli/index.mjs.map +1 -0
- package/dist/common/index.d.mts +28 -0
- package/dist/common/index.d.ts +28 -0
- package/dist/common/index.mjs +64 -0
- package/dist/common/index.mjs.map +1 -0
- package/dist/config/index.mjs +1 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/core/index.mjs +41 -6
- package/dist/core/index.mjs.map +1 -0
- package/dist/create/index.mjs +3 -4
- package/dist/create/index.mjs.map +1 -0
- package/dist/hooks/index.mjs +6 -1
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/indexer/index.d.ts +1 -0
- package/dist/indexer/index.mjs +1 -0
- package/dist/indexer/plugins.d.ts +1 -0
- package/dist/indexer/plugins.mjs +1 -0
- package/dist/indexer/testing.d.ts +1 -0
- package/dist/indexer/testing.mjs +1 -0
- package/dist/indexer/vcr.d.ts +1 -0
- package/dist/indexer/vcr.mjs +1 -0
- package/dist/rolldown/index.mjs +1 -38
- package/dist/rolldown/index.mjs.map +1 -0
- package/dist/runtime/dev.mjs +10 -7
- package/dist/runtime/internal/app.d.ts +11 -1
- package/dist/runtime/internal/app.mjs +12 -13
- package/dist/runtime/project-info.mjs +17 -3
- package/dist/runtime/start.mjs +10 -7
- package/dist/shared/apibara.63c9a277.mjs +1 -0
- package/dist/shared/apibara.63c9a277.mjs.map +1 -0
- package/dist/shared/apibara.730bb1e4.mjs +1 -0
- package/dist/shared/apibara.730bb1e4.mjs.map +1 -0
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.mjs +1 -0
- package/dist/types/index.mjs.map +1 -0
- package/package.json +24 -4
- package/src/cli/commands/dev.ts +10 -9
- package/src/cli/commands/start.ts +2 -8
- package/src/common/constants.ts +6 -0
- package/src/common/helper.ts +86 -0
- package/src/common/index.ts +2 -0
- package/src/core/apibara.ts +2 -2
- package/src/core/build/dev.ts +2 -0
- package/src/core/config/loader.ts +3 -1
- package/src/core/config/resolvers/runtime.resolver.ts +44 -0
- package/src/core/config/update.ts +6 -2
- package/src/create/constants.ts +0 -1
- package/src/create/templates.ts +2 -3
- package/src/hooks/useRuntimeConfig.ts +4 -1
- package/src/indexer/index.ts +1 -0
- package/src/indexer/plugins.ts +1 -0
- package/src/indexer/testing.ts +1 -0
- package/src/indexer/vcr.ts +1 -0
- package/src/rolldown/config.ts +0 -27
- package/src/runtime/dev.ts +10 -6
- package/src/runtime/internal/app.ts +19 -14
- package/src/runtime/project-info.ts +21 -3
- package/src/runtime/start.ts +10 -6
- package/src/types/config.ts +4 -1
- package/dist/runtime/internal/helper.d.ts +0 -12
- package/dist/runtime/internal/helper.mjs +0 -33
- package/src/core/config/resolvers/preset.resolver.ts +0 -12
- package/src/rolldown/plugins/config.ts +0 -17
- package/src/runtime/internal/helper.ts +0 -55
- package/src/types/virtual/config.d.ts +0 -6
package/dist/chunks/add.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.mjs","sources":["../../src/cli/commands/add.ts"],"sourcesContent":["import { addIndexer } from \"apibara/create\";\nimport { defineCommand } from \"citty\";\nimport { checkForUnknownArgs } from \"../common\";\n\nexport default defineCommand({\n meta: {\n name: \"add\",\n description:\n \"apibara add helps you add a new indexer to your project with sensible defaults.\",\n },\n args: {\n indexerId: {\n type: \"positional\",\n description: \"Indexer ID - must be in kebab-case\",\n required: false,\n },\n chain: {\n type: \"string\",\n description: \"Blockchain - ethereum, beaconchain, starknet\",\n },\n network: {\n type: \"string\",\n description: \"Network - mainnet, sepolia, other\",\n },\n storage: {\n type: \"string\",\n description: \"Storage - postgres, none\",\n },\n dnaUrl: {\n type: \"string\",\n description: \"DNA URL - https://custom-dna-url.apibara.org\",\n },\n dir: {\n type: \"string\",\n description:\n \"Root directory - apibara project root where apibara.config is located | default: current working directory\",\n },\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const { indexerId, chain, network, storage, dnaUrl, dir } = args;\n\n await addIndexer({\n argIndexerId: indexerId,\n argChain: chain,\n argNetwork: network,\n argStorage: storage,\n argDnaUrl: dnaUrl,\n argRootDir: dir,\n });\n },\n});\n"],"names":[],"mappings":";;;;;AAIA,YAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,KAAA;AAAA,IACN,WACE,EAAA,iFAAA;AAAA,GACJ;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,YAAA;AAAA,MACN,WAAa,EAAA,oCAAA;AAAA,MACb,QAAU,EAAA,KAAA;AAAA,KACZ;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,8CAAA;AAAA,KACf;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,mCAAA;AAAA,KACf;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,0BAAA;AAAA,KACf;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,8CAAA;AAAA,KACf;AAAA,IACA,GAAK,EAAA;AAAA,MACH,IAAM,EAAA,QAAA;AAAA,MACN,WACE,EAAA,4GAAA;AAAA,KACJ;AAAA,GACF;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,EAAE,SAAW,EAAA,KAAA,EAAO,SAAS,OAAS,EAAA,MAAA,EAAQ,KAAQ,GAAA,IAAA,CAAA;AAE5D,IAAA,MAAM,UAAW,CAAA;AAAA,MACf,YAAc,EAAA,SAAA;AAAA,MACd,QAAU,EAAA,KAAA;AAAA,MACV,UAAY,EAAA,OAAA;AAAA,MACZ,UAAY,EAAA,OAAA;AAAA,MACZ,SAAW,EAAA,MAAA;AAAA,MACX,UAAY,EAAA,GAAA;AAAA,KACb,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/build.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.mjs","sources":["../../src/cli/commands/build.ts"],"sourcesContent":["import { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport { defineCommand } from \"citty\";\nimport { join, resolve } from \"pathe\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\n\nexport default defineCommand({\n meta: {\n name: \"build\",\n description: \"Build indexer\",\n },\n args: {\n ...commonArgs,\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const rootDir = resolve((args.dir || args._dir || \".\") as string);\n\n const apibara = await createApibara({\n rootDir,\n });\n\n apibara.options.entry = join(runtimeDir, \"start.mjs\");\n\n await prepare(apibara);\n await writeTypes(apibara);\n await build(apibara);\n await apibara.close();\n },\n});\n"],"names":["build"],"mappings":";;;;;;;AAMA,cAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,eAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,GACL;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,UAAU,OAAS,CAAA,IAAA,CAAK,GAAO,IAAA,IAAA,CAAK,QAAQ,GAAc,CAAA,CAAA;AAEhE,IAAM,MAAA,OAAA,GAAU,MAAM,aAAc,CAAA;AAAA,MAClC,OAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,GAAQ,IAAK,CAAA,UAAA,EAAY,WAAW,CAAA,CAAA;AAEpD,IAAA,MAAM,QAAQ,OAAO,CAAA,CAAA;AACrB,IAAA,MAAM,WAAW,OAAO,CAAA,CAAA;AACxB,IAAA,MAAMA,QAAM,OAAO,CAAA,CAAA;AACnB,IAAA,MAAM,QAAQ,KAAM,EAAA,CAAA;AAAA,GACtB;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/dev.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import { c as commonArgs, a as checkForUnknownArgs } from '../shared/apibara.63c
|
|
|
9
9
|
import 'picocolors';
|
|
10
10
|
import 'consola';
|
|
11
11
|
|
|
12
|
-
const hmrKeyRe = /^runtimeConfig
|
|
12
|
+
const hmrKeyRe = /^(runtimeConfig\.|presets\.|preset$)/;
|
|
13
13
|
const dev = defineCommand({
|
|
14
14
|
meta: {
|
|
15
15
|
name: "dev",
|
|
@@ -64,16 +64,21 @@ const dev = defineCommand({
|
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
66
|
apibara.logger.info(
|
|
67
|
-
`Config updated:
|
|
68
|
-
|
|
67
|
+
`Config updated:
|
|
68
|
+
${diff.map((entry) => ` ${entry.toString()}`).join("\n")}`
|
|
69
69
|
);
|
|
70
|
-
await (diff.every((e) => hmrKeyRe.test(e.key)) ?
|
|
70
|
+
await (diff.every((e) => hmrKeyRe.test(e.key)) ? (
|
|
71
|
+
// in hot reload we only update the runtime values & restart indexers,no build step, apibara instance remains the same
|
|
72
|
+
apibara.updateConfig(newConfig.config || {})
|
|
73
|
+
) : reload());
|
|
71
74
|
}
|
|
72
75
|
}
|
|
73
76
|
},
|
|
74
77
|
true
|
|
75
78
|
);
|
|
76
|
-
apibara.hooks.hookOnce("restart",
|
|
79
|
+
apibara.hooks.hookOnce("restart", async () => {
|
|
80
|
+
await reload();
|
|
81
|
+
});
|
|
77
82
|
apibara.options.entry = join(runtimeDir, "dev.mjs");
|
|
78
83
|
await prepare(apibara);
|
|
79
84
|
await writeTypes(apibara);
|
|
@@ -87,9 +92,9 @@ const dev = defineCommand({
|
|
|
87
92
|
});
|
|
88
93
|
apibara.hooks.hook("dev:reload", async () => {
|
|
89
94
|
if (childProcess) {
|
|
90
|
-
apibara.logger.info("Restarting indexers");
|
|
91
95
|
await killProcess(childProcess);
|
|
92
96
|
childProcess = void 0;
|
|
97
|
+
apibara.logger.info("Restarting indexers");
|
|
93
98
|
} else {
|
|
94
99
|
apibara.logger.info("Starting indexers");
|
|
95
100
|
const indexersText = apibara.indexers.map(
|
|
@@ -100,8 +105,7 @@ const dev = defineCommand({
|
|
|
100
105
|
const childArgs = [
|
|
101
106
|
resolve(apibara.options.outputDir || "./.apibara/build", "dev.mjs"),
|
|
102
107
|
"start",
|
|
103
|
-
...args.indexers ? ["--indexers", args.indexers] : []
|
|
104
|
-
...args.preset ? ["--preset", args.preset] : []
|
|
108
|
+
...args.indexers ? ["--indexers", args.indexers] : []
|
|
105
109
|
];
|
|
106
110
|
childProcess = spawn("node", childArgs, {
|
|
107
111
|
stdio: "inherit"
|
|
@@ -109,7 +113,7 @@ const dev = defineCommand({
|
|
|
109
113
|
childProcess.on("close", (code, signal) => {
|
|
110
114
|
childProcess = void 0;
|
|
111
115
|
console.log();
|
|
112
|
-
apibara.logger.
|
|
116
|
+
apibara.logger.info(
|
|
113
117
|
`Indexers process exited${code !== null ? ` with code ${colors.red(code)}` : ""}`
|
|
114
118
|
);
|
|
115
119
|
});
|
|
@@ -128,3 +132,4 @@ async function killProcess(childProcess) {
|
|
|
128
132
|
}
|
|
129
133
|
|
|
130
134
|
export { dev as default };
|
|
135
|
+
//# sourceMappingURL=dev.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.mjs","sources":["../../src/cli/commands/dev.ts"],"sourcesContent":["import { type ChildProcess, spawn } from \"node:child_process\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport type { Apibara } from \"apibara/types\";\nimport { defineCommand } from \"citty\";\nimport { colors } from \"consola/utils\";\nimport { join, resolve } from \"pathe\";\nimport { blueBright, gray } from \"../../create/colors\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\n\n// Hot module reloading key regex\n// for only runtimeConfig.*, presets.* keys & preset key\nconst hmrKeyRe = /^(runtimeConfig\\.|presets\\.|preset$)/;\n\nexport default defineCommand({\n meta: {\n name: \"dev\",\n description: \"Start the development server\",\n },\n args: {\n ...commonArgs,\n indexers: {\n type: \"string\",\n description: \"Comma-separated list of indexers to run\",\n },\n preset: {\n type: \"string\",\n description: \"Preset to use\",\n },\n \"always-reindex\": {\n type: \"boolean\",\n default: false,\n description:\n \"Reindex the indexers from the starting block on every restart | default: `false`\",\n },\n },\n async run({ args, data, cmd, rawArgs }) {\n await checkForUnknownArgs(args, cmd);\n\n const rootDir = resolve((args.dir || args._dir || \".\") as string);\n\n if (args[\"always-reindex\"]) {\n process.env.APIBARA_ALWAYS_REINDEX = \"true\";\n }\n\n const selectedIndexers = new Set(\n args.indexers\n ?.split(\",\")\n .map((i) => i.trim())\n .sort() ?? [],\n );\n\n let apibara: Apibara;\n let childProcess: ChildProcess | undefined;\n\n const reload = async () => {\n if (apibara) {\n apibara.logger.info(\"Restarting dev server\");\n if (\"unwatch\" in apibara.options._c12) {\n await apibara.options._c12.unwatch();\n }\n\n await apibara.close();\n }\n\n apibara = await createApibara(\n {\n rootDir,\n preset: args.preset,\n },\n {\n watch: true,\n c12: {\n async onUpdate({ getDiff, newConfig }) {\n const diff = getDiff();\n\n if (diff.length === 0) {\n return; // No changes\n }\n\n apibara.logger.info(\n `Config updated: \\n${diff.map((entry) => ` ${entry.toString()}`).join(\"\\n\")}`,\n );\n\n await (diff.every((e) => hmrKeyRe.test(e.key))\n ? // in hot reload we only update the runtime values & restart indexers,no build step, apibara instance remains the same\n apibara.updateConfig(newConfig.config || {}) // Hot reload\n : reload()); // Full reload\n },\n },\n },\n true,\n );\n\n apibara.hooks.hookOnce(\"restart\", async () => {\n await reload();\n });\n\n apibara.options.entry = join(runtimeDir, \"dev.mjs\");\n\n await prepare(apibara);\n await writeTypes(apibara);\n await build(apibara);\n\n apibara.hooks.hook(\"dev:restart\", async () => {\n if (childProcess) {\n apibara.logger.info(\"Change detected, stopping indexers to restart\");\n await killProcess(childProcess);\n childProcess = undefined;\n }\n });\n\n apibara.hooks.hook(\"dev:reload\", async () => {\n if (childProcess) {\n await killProcess(childProcess);\n childProcess = undefined;\n apibara.logger.info(\"Restarting indexers\");\n } else {\n apibara.logger.info(\"Starting indexers\");\n\n const indexersText = apibara.indexers\n .map((i) =>\n selectedIndexers.has(i.name) || selectedIndexers.size === 0\n ? blueBright(i.name)\n : gray(i.name),\n )\n .join(\", \");\n apibara.logger.info(\"Indexers:\", indexersText);\n }\n\n const childArgs = [\n resolve(apibara.options.outputDir || \"./.apibara/build\", \"dev.mjs\"),\n \"start\",\n ...(args.indexers ? [\"--indexers\", args.indexers] : []),\n ];\n\n childProcess = spawn(\"node\", childArgs, {\n stdio: \"inherit\",\n });\n\n childProcess.on(\"close\", (code, signal) => {\n childProcess = undefined;\n console.log();\n apibara.logger.info(\n `Indexers process exited${\n code !== null ? ` with code ${colors.red(code)}` : \"\"\n }`,\n );\n });\n });\n };\n\n await reload();\n },\n});\n\nasync function killProcess(childProcess: ChildProcess | undefined) {\n if (childProcess) {\n await new Promise((resolve) => {\n childProcess.once(\"exit\", resolve);\n childProcess.kill();\n });\n }\n}\n"],"names":["resolve"],"mappings":"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"}
|
package/dist/chunks/init.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.mjs","sources":["../../src/cli/commands/init.ts"],"sourcesContent":["import { initializeProject } from \"apibara/create\";\nimport { defineCommand } from \"citty\";\nimport { checkForUnknownArgs } from \"../common\";\n\nexport default defineCommand({\n meta: {\n name: \"init\",\n description: \"Initialize a new Apibara project\",\n },\n args: {\n dir: {\n type: \"positional\",\n description: \"Target path to initialize the project\",\n required: true,\n },\n language: {\n type: \"string\",\n description:\n \"Language to use: typescript, ts or javascript, js | default: `ts`\",\n default: \"ts\",\n alias: \"l\",\n },\n \"create-indexer\": {\n type: \"boolean\",\n name: \"create-indexer\",\n default: true,\n description: \"TODO\",\n },\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const { dir: targetDir, \"create-indexer\": createIndexer, language } = args;\n\n await initializeProject({\n argTargetDir: targetDir,\n argLanguage: language,\n argNoCreateIndexer: !createIndexer,\n });\n },\n});\n"],"names":[],"mappings":";;;;;AAIA,aAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,WAAa,EAAA,kCAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAK,EAAA;AAAA,MACH,IAAM,EAAA,YAAA;AAAA,MACN,WAAa,EAAA,uCAAA;AAAA,MACb,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,QAAA;AAAA,MACN,WACE,EAAA,mEAAA;AAAA,MACF,OAAS,EAAA,IAAA;AAAA,MACT,KAAO,EAAA,GAAA;AAAA,KACT;AAAA,IACA,gBAAkB,EAAA;AAAA,MAChB,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA,gBAAA;AAAA,MACN,OAAS,EAAA,IAAA;AAAA,MACT,WAAa,EAAA,MAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,EAAE,GAAK,EAAA,SAAA,EAAW,gBAAkB,EAAA,aAAA,EAAe,UAAa,GAAA,IAAA,CAAA;AAEtE,IAAA,MAAM,iBAAkB,CAAA;AAAA,MACtB,YAAc,EAAA,SAAA;AAAA,MACd,WAAa,EAAA,QAAA;AAAA,MACb,oBAAoB,CAAC,aAAA;AAAA,KACtB,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/prepare.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare.mjs","sources":["../../src/cli/commands/prepare.ts"],"sourcesContent":["import { createApibara, writeTypes } from \"apibara/core\";\nimport {} from \"apibara/types\";\nimport { defineCommand } from \"citty\";\nimport { resolve } from \"pathe\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\n\nexport default defineCommand({\n meta: {\n name: \"prepare\",\n description: \"Generate types for the project\",\n },\n args: {\n ...commonArgs,\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n const rootDir = resolve((args.dir || \".\") as string);\n const apibara = await createApibara({ rootDir });\n await writeTypes(apibara);\n },\n});\n"],"names":[],"mappings":";;;;;;AAMA,gBAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,gCAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,GACL;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,MAAM,OAAU,GAAA,OAAA,CAAS,IAAK,CAAA,GAAA,IAAO,GAAc,CAAA,CAAA;AACnD,IAAA,MAAM,OAAU,GAAA,MAAM,aAAc,CAAA,EAAE,SAAS,CAAA,CAAA;AAC/C,IAAA,MAAM,WAAW,OAAO,CAAA,CAAA;AAAA,GAC1B;AACF,CAAC,CAAA;;;;"}
|
package/dist/chunks/start.mjs
CHANGED
|
@@ -44,19 +44,13 @@ const start = defineCommand({
|
|
|
44
44
|
return process.exit(1);
|
|
45
45
|
}
|
|
46
46
|
await apibara.close();
|
|
47
|
-
const childArgs = [
|
|
48
|
-
entry,
|
|
49
|
-
"start",
|
|
50
|
-
"--indexer",
|
|
51
|
-
indexer,
|
|
52
|
-
...preset ? ["--preset", preset] : []
|
|
53
|
-
];
|
|
47
|
+
const childArgs = [entry, "start", "--indexer", indexer];
|
|
54
48
|
const childProcess = spawn("node", childArgs, {
|
|
55
49
|
stdio: "inherit"
|
|
56
50
|
});
|
|
57
51
|
childProcess.on("close", (code, signal) => {
|
|
58
52
|
console.log();
|
|
59
|
-
apibara.logger.
|
|
53
|
+
apibara.logger.info(
|
|
60
54
|
`Indexers process exited${code !== null ? ` with code ${colors.red(code)}` : ""}`
|
|
61
55
|
);
|
|
62
56
|
});
|
|
@@ -64,3 +58,4 @@ const start = defineCommand({
|
|
|
64
58
|
});
|
|
65
59
|
|
|
66
60
|
export { start as default };
|
|
61
|
+
//# sourceMappingURL=start.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.mjs","sources":["../../src/cli/commands/start.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { createApibara } from \"apibara/core\";\nimport { defineCommand } from \"citty\";\nimport { colors } from \"consola/utils\";\nimport fse from \"fs-extra\";\nimport { resolve } from \"pathe\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\n\nexport default defineCommand({\n meta: {\n name: \"start\",\n description: \"Start one indexer\",\n },\n args: {\n ...commonArgs,\n indexer: {\n type: \"string\",\n description: \"The indexer to start\",\n required: true,\n },\n preset: {\n type: \"string\",\n description: \"The preset to use\",\n },\n },\n async run({ args, cmd }) {\n const { indexer, preset } = args;\n const rootDir = resolve((args.dir || args._dir || \".\") as string);\n\n await checkForUnknownArgs(args, cmd);\n\n const apibara = await createApibara({\n rootDir,\n preset,\n });\n\n apibara.logger.start(\n `Starting indexer ${indexer}${preset ? ` with preset ${preset}` : \"\"}`,\n );\n\n const outputDir = apibara.options.outputDir || \"./.apibara/build\";\n const entry = resolve(outputDir, \"start.mjs\");\n\n if (!fse.existsSync(entry)) {\n apibara.logger.error(\n `Output directory ${outputDir} does not exist. Try building the indexer with \"apibara build\" first.`,\n );\n return process.exit(1);\n }\n\n await apibara.close();\n\n const childArgs = [entry, \"start\", \"--indexer\", indexer];\n\n const childProcess = spawn(\"node\", childArgs, {\n stdio: \"inherit\",\n });\n\n childProcess.on(\"close\", (code, signal) => {\n console.log();\n apibara.logger.info(\n `Indexers process exited${\n code !== null ? ` with code ${colors.red(code)}` : \"\"\n }`,\n );\n });\n },\n});\n"],"names":[],"mappings":";;;;;;;;;AAQA,cAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,OAAA;AAAA,IACN,WAAa,EAAA,mBAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,IACH,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,sBAAA;AAAA,MACb,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,mBAAA;AAAA,KACf;AAAA,GACF;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,EAAE,OAAS,EAAA,MAAA,EAAW,GAAA,IAAA,CAAA;AAC5B,IAAA,MAAM,UAAU,OAAS,CAAA,IAAA,CAAK,GAAO,IAAA,IAAA,CAAK,QAAQ,GAAc,CAAA,CAAA;AAEhE,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAM,MAAA,OAAA,GAAU,MAAM,aAAc,CAAA;AAAA,MAClC,OAAA;AAAA,MACA,MAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAA,CAAQ,MAAO,CAAA,KAAA;AAAA,MACb,oBAAoB,OAAO,CAAA,EAAG,SAAS,CAAgB,aAAA,EAAA,MAAM,KAAK,EAAE,CAAA,CAAA;AAAA,KACtE,CAAA;AAEA,IAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,OAAA,CAAQ,SAAa,IAAA,kBAAA,CAAA;AAC/C,IAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,SAAA,EAAW,WAAW,CAAA,CAAA;AAE5C,IAAA,IAAI,CAAC,GAAA,CAAI,UAAW,CAAA,KAAK,CAAG,EAAA;AAC1B,MAAA,OAAA,CAAQ,MAAO,CAAA,KAAA;AAAA,QACb,oBAAoB,SAAS,CAAA,qEAAA,CAAA;AAAA,OAC/B,CAAA;AACA,MAAO,OAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KACvB;AAEA,IAAA,MAAM,QAAQ,KAAM,EAAA,CAAA;AAEpB,IAAA,MAAM,SAAY,GAAA,CAAC,KAAO,EAAA,OAAA,EAAS,aAAa,OAAO,CAAA,CAAA;AAEvD,IAAM,MAAA,YAAA,GAAe,KAAM,CAAA,MAAA,EAAQ,SAAW,EAAA;AAAA,MAC5C,KAAO,EAAA,SAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,YAAA,CAAa,EAAG,CAAA,OAAA,EAAS,CAAC,IAAA,EAAM,MAAW,KAAA;AACzC,MAAA,OAAA,CAAQ,GAAI,EAAA,CAAA;AACZ,MAAA,OAAA,CAAQ,MAAO,CAAA,IAAA;AAAA,QACb,CAAA,uBAAA,EACE,SAAS,IAAO,GAAA,CAAA,WAAA,EAAc,OAAO,GAAI,CAAA,IAAI,CAAC,CAAA,CAAA,GAAK,EACrD,CAAA,CAAA;AAAA,OACF,CAAA;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-project-info.mjs","sources":["../../src/cli/commands/write-project-info.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { join } from \"node:path\";\nimport { build, createApibara, prepare, writeTypes } from \"apibara/core\";\nimport { runtimeDir } from \"apibara/runtime/meta\";\nimport { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { resolve } from \"pathe\";\nimport { checkForUnknownArgs, commonArgs } from \"../common\";\n\nexport default defineCommand({\n meta: {\n name: \"write-project-info\",\n description: \"Write json-encoded information about the project.\",\n },\n args: {\n ...commonArgs,\n },\n async run({ args, cmd }) {\n await checkForUnknownArgs(args, cmd);\n\n consola.start(\"Generating `project-info.json`\");\n\n const rootDir = resolve((args.dir || \".\") as string);\n const apibara = await createApibara({ rootDir, disableLogs: true });\n\n apibara.options.entry = join(runtimeDir, \"project-info.mjs\");\n\n await prepare(apibara);\n await writeTypes(apibara);\n await build(apibara);\n\n const childArgs = [\n resolve(\n apibara.options.outputDir || \"./.apibara/build\",\n \"project-info.mjs\",\n ),\n \"start\",\n \"--build-dir\",\n apibara.options.buildDir,\n ];\n\n const child = spawn(\"node\", childArgs, {\n stdio: \"inherit\",\n });\n\n child.on(\"close\", (code) => {\n if (code === 0) {\n consola.success(\"Project info written to `.apibara/project-info.json`\");\n }\n });\n\n child.on(\"error\", (error) => {\n consola.error(`Failed to write project info: ${error.message}`, error);\n });\n },\n});\n"],"names":[],"mappings":";;;;;;;;;AASA,yBAAe,aAAc,CAAA;AAAA,EAC3B,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,oBAAA;AAAA,IACN,WAAa,EAAA,mDAAA;AAAA,GACf;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,GAAG,UAAA;AAAA,GACL;AAAA,EACA,MAAM,GAAA,CAAI,EAAE,IAAA,EAAM,KAAO,EAAA;AACvB,IAAM,MAAA,mBAAA,CAAoB,MAAM,GAAG,CAAA,CAAA;AAEnC,IAAA,OAAA,CAAQ,MAAM,gCAAgC,CAAA,CAAA;AAE9C,IAAA,MAAM,OAAU,GAAA,OAAA,CAAS,IAAK,CAAA,GAAA,IAAO,GAAc,CAAA,CAAA;AACnD,IAAA,MAAM,UAAU,MAAM,aAAA,CAAc,EAAE,OAAS,EAAA,WAAA,EAAa,MAAM,CAAA,CAAA;AAElE,IAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,GAAQ,IAAK,CAAA,UAAA,EAAY,kBAAkB,CAAA,CAAA;AAE3D,IAAA,MAAM,QAAQ,OAAO,CAAA,CAAA;AACrB,IAAA,MAAM,WAAW,OAAO,CAAA,CAAA;AACxB,IAAA,MAAM,MAAM,OAAO,CAAA,CAAA;AAEnB,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,OAAA;AAAA,QACE,OAAA,CAAQ,QAAQ,SAAa,IAAA,kBAAA;AAAA,QAC7B,kBAAA;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MACA,aAAA;AAAA,MACA,QAAQ,OAAQ,CAAA,QAAA;AAAA,KAClB,CAAA;AAEA,IAAM,MAAA,KAAA,GAAQ,KAAM,CAAA,MAAA,EAAQ,SAAW,EAAA;AAAA,MACrC,KAAO,EAAA,SAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,KAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,IAAS,KAAA;AAC1B,MAAA,IAAI,SAAS,CAAG,EAAA;AACd,QAAA,OAAA,CAAQ,QAAQ,sDAAsD,CAAA,CAAA;AAAA,OACxE;AAAA,KACD,CAAA,CAAA;AAED,IAAM,KAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,KAAU,KAAA;AAC3B,MAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,8BAAA,EAAiC,KAAM,CAAA,OAAO,IAAI,KAAK,CAAA,CAAA;AAAA,KACtE,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
|
package/dist/cli/index.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/cli/index.ts"],"sourcesContent":["import { defineCommand, runMain } from \"citty\";\n\nexport const mainCli = defineCommand({\n meta: {\n name: \"apibara\",\n description: \"Apibara CLI\",\n version: \"2.0.0\",\n },\n subCommands: {\n dev: () => import(\"./commands/dev\").then((r) => r.default),\n build: () => import(\"./commands/build\").then((r) => r.default),\n start: () => import(\"./commands/start\").then((r) => r.default),\n prepare: () => import(\"./commands/prepare\").then((r) => r.default),\n init: () => import(\"./commands/init\").then((r) => r.default),\n add: () => import(\"./commands/add\").then((r) => r.default),\n \"write-project-info\": () =>\n import(\"./commands/write-project-info\").then((r) => r.default),\n },\n});\n\nrunMain(mainCli);\n"],"names":[],"mappings":";;;AAEO,MAAM,UAAU,aAAc,CAAA;AAAA,EACnC,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,WAAa,EAAA,aAAA;AAAA,IACb,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,GAAA,EAAK,MAAM,OAAO,mBAAgB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACzD,KAAA,EAAO,MAAM,OAAO,qBAAkB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IAC7D,KAAA,EAAO,MAAM,OAAO,qBAAkB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IAC7D,OAAA,EAAS,MAAM,OAAO,uBAAoB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACjE,IAAA,EAAM,MAAM,OAAO,oBAAiB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IAC3D,GAAA,EAAK,MAAM,OAAO,mBAAgB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,IACzD,oBAAA,EAAsB,MACpB,OAAO,kCAA+B,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACjE;AACF,CAAC,EAAA;AAED,OAAA,CAAQ,OAAO,CAAA;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
|
|
2
|
+
declare const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
|
|
3
|
+
declare const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
|
|
4
|
+
declare const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME = "_APIBARA_PROCESSED_RUNTIME";
|
|
5
|
+
declare const USER_ENV_APIBARA_RUNTIME_CONFIG = "APIBARA_RUNTIME_CONFIG";
|
|
6
|
+
|
|
7
|
+
declare function getRuntimeDataFromEnv(): {
|
|
8
|
+
userEnvRuntimeConfig: Record<string, unknown> | undefined;
|
|
9
|
+
processedRuntimeConfig: Record<string, unknown>;
|
|
10
|
+
preset: string | undefined;
|
|
11
|
+
presets: Record<string, unknown> | undefined;
|
|
12
|
+
runtimeConfig: Record<string, unknown> | undefined;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Get the merged runtime config from the user env overrided runtime config, presets and defaults.
|
|
16
|
+
* Priority (Highest to lowest):
|
|
17
|
+
* 1. User env overrided runtime config
|
|
18
|
+
* 2. Preset
|
|
19
|
+
* 3. Defaults
|
|
20
|
+
*/
|
|
21
|
+
declare function getProcessedRuntimeConfig({ preset, presets, runtimeConfig, userEnvRuntimeConfig, }: {
|
|
22
|
+
preset?: string;
|
|
23
|
+
presets?: Record<string, unknown>;
|
|
24
|
+
runtimeConfig?: Record<string, unknown>;
|
|
25
|
+
userEnvRuntimeConfig?: Record<string, unknown>;
|
|
26
|
+
}): Record<string, unknown>;
|
|
27
|
+
|
|
28
|
+
export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
declare const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
|
|
2
|
+
declare const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
|
|
3
|
+
declare const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
|
|
4
|
+
declare const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME = "_APIBARA_PROCESSED_RUNTIME";
|
|
5
|
+
declare const USER_ENV_APIBARA_RUNTIME_CONFIG = "APIBARA_RUNTIME_CONFIG";
|
|
6
|
+
|
|
7
|
+
declare function getRuntimeDataFromEnv(): {
|
|
8
|
+
userEnvRuntimeConfig: Record<string, unknown> | undefined;
|
|
9
|
+
processedRuntimeConfig: Record<string, unknown>;
|
|
10
|
+
preset: string | undefined;
|
|
11
|
+
presets: Record<string, unknown> | undefined;
|
|
12
|
+
runtimeConfig: Record<string, unknown> | undefined;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Get the merged runtime config from the user env overrided runtime config, presets and defaults.
|
|
16
|
+
* Priority (Highest to lowest):
|
|
17
|
+
* 1. User env overrided runtime config
|
|
18
|
+
* 2. Preset
|
|
19
|
+
* 3. Defaults
|
|
20
|
+
*/
|
|
21
|
+
declare function getProcessedRuntimeConfig({ preset, presets, runtimeConfig, userEnvRuntimeConfig, }: {
|
|
22
|
+
preset?: string;
|
|
23
|
+
presets?: Record<string, unknown>;
|
|
24
|
+
runtimeConfig?: Record<string, unknown>;
|
|
25
|
+
userEnvRuntimeConfig?: Record<string, unknown>;
|
|
26
|
+
}): Record<string, unknown>;
|
|
27
|
+
|
|
28
|
+
export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import defu from 'defu';
|
|
2
|
+
|
|
3
|
+
const ENV_INTERNAL_APIBARA_RUNTIME = "_APIBARA_RUNTIME";
|
|
4
|
+
const ENV_INTERNAL_APIBARA_PRESET = "_APIBARA_PRESET";
|
|
5
|
+
const ENV_INTERNAL_APIBARA_PRESETS = "_APIBARA_PRESETS";
|
|
6
|
+
const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME = "_APIBARA_PROCESSED_RUNTIME";
|
|
7
|
+
const USER_ENV_APIBARA_RUNTIME_CONFIG = "APIBARA_RUNTIME_CONFIG";
|
|
8
|
+
|
|
9
|
+
function getRuntimeDataFromEnv() {
|
|
10
|
+
const processedRuntimeConfig = JSON.parse(
|
|
11
|
+
process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] ?? "{}"
|
|
12
|
+
);
|
|
13
|
+
const preset = process.env[ENV_INTERNAL_APIBARA_PRESET];
|
|
14
|
+
const presets = JSON.parse(
|
|
15
|
+
process.env[ENV_INTERNAL_APIBARA_PRESETS] ?? "{}"
|
|
16
|
+
);
|
|
17
|
+
const runtimeConfig = JSON.parse(
|
|
18
|
+
process.env[ENV_INTERNAL_APIBARA_RUNTIME] ?? "{}"
|
|
19
|
+
);
|
|
20
|
+
const userEnvRuntimeConfig = JSON.parse(
|
|
21
|
+
process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? "{}"
|
|
22
|
+
);
|
|
23
|
+
return {
|
|
24
|
+
userEnvRuntimeConfig,
|
|
25
|
+
processedRuntimeConfig,
|
|
26
|
+
preset,
|
|
27
|
+
presets,
|
|
28
|
+
runtimeConfig
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function getProcessedRuntimeConfig({
|
|
32
|
+
preset,
|
|
33
|
+
presets,
|
|
34
|
+
runtimeConfig,
|
|
35
|
+
userEnvRuntimeConfig
|
|
36
|
+
}) {
|
|
37
|
+
let _runtimeConfig = { ...runtimeConfig };
|
|
38
|
+
if (preset) {
|
|
39
|
+
if (presets === void 0) {
|
|
40
|
+
throw new Error(
|
|
41
|
+
`Specified preset "${preset}" but no presets were defined`
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
if (presets[preset] === void 0) {
|
|
45
|
+
throw new Error(`Specified preset "${preset}" but it was not defined`);
|
|
46
|
+
}
|
|
47
|
+
const presetValue = presets[preset];
|
|
48
|
+
_runtimeConfig = defu(presetValue.runtimeConfig, _runtimeConfig);
|
|
49
|
+
}
|
|
50
|
+
if (userEnvRuntimeConfig) {
|
|
51
|
+
try {
|
|
52
|
+
_runtimeConfig = defu(userEnvRuntimeConfig, _runtimeConfig);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
throw new Error(
|
|
55
|
+
"Failed to parse runtime config from process.env.APIBARA_RUNTIME_CONFIG. Please ensure it is a valid JSON string.",
|
|
56
|
+
{ cause: error }
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return _runtimeConfig;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, ENV_INTERNAL_APIBARA_RUNTIME, USER_ENV_APIBARA_RUNTIME_CONFIG, getProcessedRuntimeConfig, getRuntimeDataFromEnv };
|
|
64
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/common/constants.ts","../../src/common/helper.ts"],"sourcesContent":["export const ENV_INTERNAL_APIBARA_RUNTIME = \"_APIBARA_RUNTIME\";\nexport const ENV_INTERNAL_APIBARA_PRESET = \"_APIBARA_PRESET\";\nexport const ENV_INTERNAL_APIBARA_PRESETS = \"_APIBARA_PRESETS\";\nexport const ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME =\n \"_APIBARA_PROCESSED_RUNTIME\";\nexport const USER_ENV_APIBARA_RUNTIME_CONFIG = \"APIBARA_RUNTIME_CONFIG\";\n","import defu from \"defu\";\nimport {\n ENV_INTERNAL_APIBARA_PRESET,\n ENV_INTERNAL_APIBARA_PRESETS,\n ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME,\n ENV_INTERNAL_APIBARA_RUNTIME,\n USER_ENV_APIBARA_RUNTIME_CONFIG,\n} from \"./constants\";\n\nexport function getRuntimeDataFromEnv() {\n const processedRuntimeConfig: Record<string, unknown> = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] ?? \"{}\",\n );\n const preset: string | undefined = process.env[ENV_INTERNAL_APIBARA_PRESET];\n const presets: Record<string, unknown> | undefined = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_PRESETS] ?? \"{}\",\n );\n const runtimeConfig: Record<string, unknown> | undefined = JSON.parse(\n process.env[ENV_INTERNAL_APIBARA_RUNTIME] ?? \"{}\",\n );\n const userEnvRuntimeConfig: Record<string, unknown> | undefined = JSON.parse(\n process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? \"{}\",\n );\n\n return {\n userEnvRuntimeConfig,\n processedRuntimeConfig,\n preset,\n presets,\n runtimeConfig,\n };\n}\n\n/**\n * Get the merged runtime config from the user env overrided runtime config, presets and defaults.\n * Priority (Highest to lowest):\n * 1. User env overrided runtime config\n * 2. Preset\n * 3. Defaults\n */\nexport function getProcessedRuntimeConfig({\n preset,\n presets,\n runtimeConfig,\n userEnvRuntimeConfig,\n}: {\n preset?: string;\n presets?: Record<string, unknown>;\n runtimeConfig?: Record<string, unknown>;\n userEnvRuntimeConfig?: Record<string, unknown>;\n}) {\n let _runtimeConfig: Record<string, unknown> = { ...runtimeConfig };\n\n if (preset) {\n if (presets === undefined) {\n throw new Error(\n `Specified preset \"${preset}\" but no presets were defined`,\n );\n }\n\n if (presets[preset] === undefined) {\n throw new Error(`Specified preset \"${preset}\" but it was not defined`);\n }\n\n const presetValue = presets[preset] as {\n runtimeConfig: Record<string, unknown>;\n };\n\n // Preset applied\n _runtimeConfig = defu(presetValue.runtimeConfig, _runtimeConfig);\n }\n\n if (userEnvRuntimeConfig) {\n try {\n // Environment runtime config applied\n _runtimeConfig = defu(userEnvRuntimeConfig, _runtimeConfig);\n } catch (error) {\n throw new Error(\n \"Failed to parse runtime config from process.env.APIBARA_RUNTIME_CONFIG. Please ensure it is a valid JSON string.\",\n { cause: error },\n );\n }\n }\n\n return _runtimeConfig;\n}\n"],"names":[],"mappings":";;AAAO,MAAM,4BAA+B,GAAA,mBAAA;AACrC,MAAM,2BAA8B,GAAA,kBAAA;AACpC,MAAM,4BAA+B,GAAA,mBAAA;AACrC,MAAM,sCACX,GAAA,6BAAA;AACK,MAAM,+BAAkC,GAAA;;ACIxC,SAAS,qBAAwB,GAAA;AACtC,EAAA,MAAM,yBAAkD,IAAK,CAAA,KAAA;AAAA,IAC3D,OAAA,CAAQ,GAAI,CAAA,sCAAsC,CAAK,IAAA,IAAA;AAAA,GACzD,CAAA;AACA,EAAM,MAAA,MAAA,GAA6B,OAAQ,CAAA,GAAA,CAAI,2BAA2B,CAAA,CAAA;AAC1E,EAAA,MAAM,UAA+C,IAAK,CAAA,KAAA;AAAA,IACxD,OAAA,CAAQ,GAAI,CAAA,4BAA4B,CAAK,IAAA,IAAA;AAAA,GAC/C,CAAA;AACA,EAAA,MAAM,gBAAqD,IAAK,CAAA,KAAA;AAAA,IAC9D,OAAA,CAAQ,GAAI,CAAA,4BAA4B,CAAK,IAAA,IAAA;AAAA,GAC/C,CAAA;AACA,EAAA,MAAM,uBAA4D,IAAK,CAAA,KAAA;AAAA,IACrE,OAAA,CAAQ,GAAI,CAAA,+BAA+B,CAAK,IAAA,IAAA;AAAA,GAClD,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,oBAAA;AAAA,IACA,sBAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,GACF,CAAA;AACF,CAAA;AASO,SAAS,yBAA0B,CAAA;AAAA,EACxC,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AACF,CAKG,EAAA;AACD,EAAI,IAAA,cAAA,GAA0C,EAAE,GAAG,aAAc,EAAA,CAAA;AAEjE,EAAA,IAAI,MAAQ,EAAA;AACV,IAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACzB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,qBAAqB,MAAM,CAAA,6BAAA,CAAA;AAAA,OAC7B,CAAA;AAAA,KACF;AAEA,IAAI,IAAA,OAAA,CAAQ,MAAM,CAAA,KAAM,KAAW,CAAA,EAAA;AACjC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAqB,kBAAA,EAAA,MAAM,CAA0B,wBAAA,CAAA,CAAA,CAAA;AAAA,KACvE;AAEA,IAAM,MAAA,WAAA,GAAc,QAAQ,MAAM,CAAA,CAAA;AAKlC,IAAiB,cAAA,GAAA,IAAA,CAAK,WAAY,CAAA,aAAA,EAAe,cAAc,CAAA,CAAA;AAAA,GACjE;AAEA,EAAA,IAAI,oBAAsB,EAAA;AACxB,IAAI,IAAA;AAEF,MAAiB,cAAA,GAAA,IAAA,CAAK,sBAAsB,cAAc,CAAA,CAAA;AAAA,aACnD,KAAO,EAAA;AACd,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,kHAAA;AAAA,QACA,EAAE,OAAO,KAAM,EAAA;AAAA,OACjB,CAAA;AAAA,KACF;AAAA,GACF;AAEA,EAAO,OAAA,cAAA,CAAA;AACT;;;;"}
|
package/dist/config/index.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/config/index.ts"],"sourcesContent":["import type { ApibaraConfig, DeepPartial } from \"apibara/types\";\n\nexport function defineConfig<\n T extends Record<\n string,\n DeepPartial<Pick<ApibaraConfig<T, R>, \"runtimeConfig\">>\n > = Record<string, never>,\n R extends Record<string, unknown> = Record<string, never>,\n>(config: ApibaraConfig<T, R>): ApibaraConfig<T, R> {\n return config;\n}\n"],"names":[],"mappings":"AAEO,SAAS,aAMd,MAAkD,EAAA;AAClD,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
package/dist/core/index.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import { createHooks } from 'hookable';
|
|
|
3
3
|
import { watchConfig, loadConfig } from 'c12';
|
|
4
4
|
import { klona } from 'klona/full';
|
|
5
5
|
import { resolve, join, basename, isAbsolute, relative, dirname } from 'pathe';
|
|
6
|
+
import { ENV_INTERNAL_APIBARA_RUNTIME, ENV_INTERNAL_APIBARA_PRESET, ENV_INTERNAL_APIBARA_PRESETS, USER_ENV_APIBARA_RUNTIME_CONFIG, ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME, getProcessedRuntimeConfig } from 'apibara/common';
|
|
6
7
|
import fse from 'fs-extra';
|
|
7
8
|
import { getRolldownConfig } from 'apibara/rolldown';
|
|
8
9
|
import { colors } from 'consola/utils';
|
|
@@ -38,7 +39,37 @@ async function resolvePathOptions(options) {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
function runtimeConfigResolver(options) {
|
|
43
|
+
try {
|
|
44
|
+
const { runtimeConfig, preset, presets } = options;
|
|
45
|
+
if (runtimeConfig) {
|
|
46
|
+
process.env[ENV_INTERNAL_APIBARA_RUNTIME] = JSON.stringify(runtimeConfig);
|
|
47
|
+
}
|
|
48
|
+
if (preset) {
|
|
49
|
+
process.env[ENV_INTERNAL_APIBARA_PRESET] = preset;
|
|
50
|
+
}
|
|
51
|
+
if (presets) {
|
|
52
|
+
process.env[ENV_INTERNAL_APIBARA_PRESETS] = JSON.stringify(presets);
|
|
53
|
+
}
|
|
54
|
+
const userEnvRuntimeConfig = JSON.parse(
|
|
55
|
+
process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? "{}"
|
|
56
|
+
);
|
|
57
|
+
process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] = JSON.stringify(
|
|
58
|
+
getProcessedRuntimeConfig({
|
|
59
|
+
preset,
|
|
60
|
+
presets,
|
|
61
|
+
runtimeConfig,
|
|
62
|
+
userEnvRuntimeConfig
|
|
63
|
+
})
|
|
64
|
+
);
|
|
65
|
+
} catch (error) {
|
|
66
|
+
throw new Error("Failed to process & set runtime environment variables", {
|
|
67
|
+
cause: error
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const configResolvers = [resolvePathOptions, runtimeConfigResolver];
|
|
42
73
|
async function loadOptions(configOverrides = {}, opts = {}, dev = false) {
|
|
43
74
|
const options = await _loadUserConfig(configOverrides, opts, dev);
|
|
44
75
|
try {
|
|
@@ -75,9 +106,10 @@ async function _loadUserConfig(configOverrides = {}, opts = {}, dev = false) {
|
|
|
75
106
|
return options;
|
|
76
107
|
}
|
|
77
108
|
|
|
78
|
-
async function updateApibaraConfig(apibara,
|
|
79
|
-
|
|
109
|
+
async function updateApibaraConfig(apibara, newConfig) {
|
|
110
|
+
runtimeConfigResolver(newConfig);
|
|
80
111
|
apibara.logger.success("Apibara config hot reloaded!");
|
|
112
|
+
await apibara.hooks.callHook("dev:reload");
|
|
81
113
|
}
|
|
82
114
|
|
|
83
115
|
const INDEXER_EXTENSIONS = [".indexer.ts", ".indexer.js"];
|
|
@@ -119,8 +151,8 @@ async function createApibara(config = {}, opts = {}, dev = false) {
|
|
|
119
151
|
hooks: createHooks(),
|
|
120
152
|
close: () => apibara.hooks.callHook("close"),
|
|
121
153
|
logger: consola.withTag("apibara"),
|
|
122
|
-
async updateConfig(
|
|
123
|
-
updateApibaraConfig(apibara);
|
|
154
|
+
async updateConfig(newConfig) {
|
|
155
|
+
updateApibaraConfig(apibara, newConfig);
|
|
124
156
|
}
|
|
125
157
|
};
|
|
126
158
|
apibara.hooks.addHooks(apibara.options.hooks);
|
|
@@ -223,7 +255,9 @@ const getIgnorePatterns = (apibara) => [
|
|
|
223
255
|
"**/.DS_Store",
|
|
224
256
|
"**/node_modules/**",
|
|
225
257
|
"**/dist/**",
|
|
226
|
-
"**/.turbo/**"
|
|
258
|
+
"**/.turbo/**",
|
|
259
|
+
// changes to apibara.config is handled by c12 itself so we dont need rolldown to handle this
|
|
260
|
+
"**/apibara.config?(.ts|.js)"
|
|
227
261
|
];
|
|
228
262
|
|
|
229
263
|
async function buildProduction(apibara, rolldownConfig) {
|
|
@@ -337,3 +371,4 @@ declare module "apibara/types" {`,
|
|
|
337
371
|
}
|
|
338
372
|
|
|
339
373
|
export { build, createApibara, prepare, writeTypes };
|
|
374
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/core/config/defaults.ts","../../src/core/config/resolvers/paths.resolver.ts","../../src/core/config/resolvers/runtime.resolver.ts","../../src/core/config/loader.ts","../../src/core/config/update.ts","../../src/core/scan.ts","../../src/core/apibara.ts","../../src/core/build/error.ts","../../src/core/build/dev.ts","../../src/core/build/prod.ts","../../src/core/build/build.ts","../../src/core/path.ts","../../src/core/build/prepare.ts","../../src/core/build/types.ts"],"sourcesContent":["import type { ApibaraConfig } from \"apibara/types\";\n\nexport const ApibaraDefaults: ApibaraConfig = {\n rootDir: \".\",\n indexersDir: \"indexers\",\n\n runtimeConfig: {},\n hooks: {},\n\n buildDir: \".apibara\",\n\n typescript: {\n strict: false,\n generateRuntimeConfigTypes: true,\n internalPaths: false,\n },\n\n node: true,\n exportConditions: [\"node\"],\n};\n","import type { ApibaraOptions } from \"apibara/types\";\nimport { resolve } from \"pathe\";\n\nexport async function resolvePathOptions(options: ApibaraOptions) {\n options.rootDir = resolve(options.rootDir || \".\");\n\n for (const key of [\"buildDir\"] as const) {\n options[key] = resolve(options.rootDir, options[key]);\n }\n\n if (!options.outputDir) {\n options.outputDir = resolve(options.rootDir, \".apibara/build\");\n }\n}\n","import {\n ENV_INTERNAL_APIBARA_PRESET,\n ENV_INTERNAL_APIBARA_PRESETS,\n ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME,\n ENV_INTERNAL_APIBARA_RUNTIME,\n USER_ENV_APIBARA_RUNTIME_CONFIG,\n getProcessedRuntimeConfig,\n} from \"apibara/common\";\nimport type { ApibaraOptions } from \"apibara/types\";\n\nexport function runtimeConfigResolver(options: Partial<ApibaraOptions>) {\n try {\n const { runtimeConfig, preset, presets } = options;\n\n if (runtimeConfig) {\n process.env[ENV_INTERNAL_APIBARA_RUNTIME] = JSON.stringify(runtimeConfig);\n }\n if (preset) {\n process.env[ENV_INTERNAL_APIBARA_PRESET] = preset;\n }\n\n if (presets) {\n process.env[ENV_INTERNAL_APIBARA_PRESETS] = JSON.stringify(presets);\n }\n\n const userEnvRuntimeConfig = JSON.parse(\n process.env[USER_ENV_APIBARA_RUNTIME_CONFIG] ?? \"{}\",\n );\n\n // This is final processed runtime config that will be used by the indexer and useRuntimeConfig hook\n process.env[ENV_INTERNAL_APIBARA_PROCESSED_RUNTIME] = JSON.stringify(\n getProcessedRuntimeConfig({\n preset,\n presets,\n runtimeConfig,\n userEnvRuntimeConfig,\n }),\n );\n } catch (error) {\n throw new Error(\"Failed to process & set runtime environment variables\", {\n cause: error,\n });\n }\n}\n","import type {\n ApibaraConfig,\n ApibaraOptions,\n LoadConfigOptions,\n} from \"apibara/types\";\nimport { loadConfig, watchConfig } from \"c12\";\nimport { klona } from \"klona/full\";\nimport { ApibaraDefaults } from \"./defaults\";\nimport { resolvePathOptions } from \"./resolvers/paths.resolver\";\nimport { runtimeConfigResolver } from \"./resolvers/runtime.resolver\";\n\n// runtimeConfigResolver handles assigning runtime values to env\nconst configResolvers = [resolvePathOptions, runtimeConfigResolver] as const;\n\nexport async function loadOptions(\n configOverrides: ApibaraConfig = {},\n opts: LoadConfigOptions = {},\n dev = false,\n): Promise<ApibaraOptions> {\n const options = await _loadUserConfig(configOverrides, opts, dev);\n\n // Check if the runtimeConfig is serializable\n try {\n JSON.stringify(options.runtimeConfig);\n } catch (error) {\n throw new Error(\n \"Non-serializable runtimeConfig. Please ensure the config is serializable.\",\n { cause: error },\n );\n }\n\n for (const resolver of configResolvers) {\n await resolver(options);\n }\n\n return options;\n}\n\nasync function _loadUserConfig(\n configOverrides: ApibaraConfig = {},\n opts: LoadConfigOptions = {},\n dev = false,\n): Promise<ApibaraOptions> {\n // biome-ignore lint: noParameterAssign\n configOverrides = klona(configOverrides);\n\n const loadedConfig = await (opts.watch\n ? watchConfig<ApibaraConfig>\n : loadConfig<ApibaraConfig>)({\n name: \"apibara\",\n dotenv: dev,\n cwd: configOverrides.rootDir,\n overrides: {\n ...configOverrides,\n },\n defaults: { ...ApibaraDefaults },\n ...opts.c12,\n });\n\n const options = klona(loadedConfig.config) as ApibaraOptions;\n\n options._config = configOverrides;\n options._c12 = loadedConfig;\n\n if (dev) {\n options.dev = dev;\n }\n\n return options;\n}\n","import type { Apibara, ApibaraDynamicConfig } from \"apibara/types\";\nimport { runtimeConfigResolver } from \"./resolvers/runtime.resolver\";\n\nexport async function updateApibaraConfig(\n apibara: Apibara,\n newConfig: ApibaraDynamicConfig,\n) {\n // applies new config values to env again during hot reload\n runtimeConfigResolver(newConfig);\n apibara.logger.success(\"Apibara config hot reloaded!\");\n // we simply stop indexers and restart them with updated runtime values\n await apibara.hooks.callHook(\"dev:reload\");\n}\n","import type { Apibara } from \"apibara/types\";\nimport fse from \"fs-extra\";\nimport { basename, join } from \"pathe\";\n\nconst INDEXER_EXTENSIONS = [\".indexer.ts\", \".indexer.js\"];\n\nexport async function scanIndexers(apibara: Apibara) {\n apibara.logger.debug(\"Scanning indexers\");\n\n const indexersDir = join(\n apibara.options.rootDir,\n apibara.options.indexersDir,\n );\n\n if (!fse.existsSync(indexersDir)) {\n throw new Error(`Indexers directory not found: ${indexersDir}`);\n }\n\n apibara.indexers = [];\n\n for (const file of fse.readdirSync(indexersDir)) {\n const indexerName = indexerNameFromFile(file);\n if (indexerName) {\n apibara.indexers.push({\n name: indexerName,\n indexer: join(indexersDir, file),\n });\n }\n }\n\n apibara.logger.debug(`Found ${apibara.indexers.length} indexers`);\n}\n\nfunction indexerNameFromFile(file: string) {\n for (const extension of INDEXER_EXTENSIONS) {\n if (file.endsWith(extension)) {\n return basename(file, extension);\n }\n }\n}\n","import type {\n Apibara,\n ApibaraConfig,\n ApibaraDynamicConfig,\n LoadConfigOptions,\n} from \"apibara/types\";\nimport consola from \"consola\";\nimport { createHooks } from \"hookable\";\nimport { loadOptions } from \"./config/loader\";\nimport { updateApibaraConfig } from \"./config/update\";\nimport { scanIndexers } from \"./scan\";\n\nexport async function createApibara(\n config: ApibaraConfig = {},\n opts: LoadConfigOptions = {},\n dev = false,\n): Promise<Apibara> {\n const options = await loadOptions(config, opts, dev);\n\n // Enable source map support in Node\n process.env.NODE_OPTIONS = process.env.NODE_OPTIONS\n ? `${process.env.NODE_OPTIONS} --enable-source-maps`\n : \"--enable-source-maps\";\n\n const apibara: Apibara = {\n options,\n indexers: [],\n hooks: createHooks(),\n close: () => apibara.hooks.callHook(\"close\"),\n logger: consola.withTag(\"apibara\"),\n async updateConfig(newConfig: ApibaraDynamicConfig) {\n updateApibaraConfig(apibara, newConfig);\n },\n };\n\n apibara.hooks.addHooks(apibara.options.hooks);\n\n await scanIndexers(apibara);\n\n return apibara;\n}\n","import { isAbsolute, relative } from \"pathe\";\nimport type * as rolldown from \"rolldown\";\n\nexport function formatRolldownError(_error: rolldown.RollupError) {\n try {\n const logs: string[] = [_error.toString()];\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n const errors = (_error as any)?.errors || [_error as rolldown.RollupError];\n for (const error of errors) {\n const id = error.path || error.id || (_error as rolldown.RollupError).id;\n let path = isAbsolute(id) ? relative(process.cwd(), id) : id;\n const location = (error as rolldown.RollupError).loc;\n if (location) {\n path += `:${location.line}:${location.column}`;\n }\n const text = (error as rolldown.RollupError).frame;\n\n logs.push(\n `Rolldown error while processing \\`${path}\\`` + text\n ? \"\\n\\n\" + text\n : \"\",\n );\n }\n return logs.join(\"\\n\");\n } catch {\n return _error?.toString();\n }\n}\n","import type { Apibara } from \"apibara/types\";\nimport { watch } from \"chokidar\";\nimport defu from \"defu\";\nimport { join } from \"pathe\";\nimport { debounce } from \"perfect-debounce\";\nimport * as rolldown from \"rolldown\";\nimport { formatRolldownError } from \"./error\";\n\nexport async function watchDev(\n apibara: Apibara,\n rolldownConfig: rolldown.RolldownOptions,\n) {\n let rolldownWatcher: rolldown.RolldownWatcher;\n async function load() {\n apibara.logger.start(\"Setting up a dev server\");\n if (rolldownWatcher) {\n await rolldownWatcher.close();\n }\n rolldownWatcher = startRolldownWatcher(apibara, rolldownConfig);\n }\n const reload = debounce(async () => await load());\n\n const watchPatterns = getWatchPatterns(apibara);\n\n const watchReloadEvents = new Set([\"add\", \"addDir\", \"unlink\", \"unlinkDir\"]);\n const reloadWatcher = watch(watchPatterns, { ignoreInitial: true }).on(\n \"all\",\n async (event) => {\n if (watchReloadEvents.has(event)) {\n await reload();\n }\n },\n );\n\n apibara.hooks.hook(\"close\", () => {\n rolldownWatcher.close();\n reloadWatcher.close();\n });\n\n apibara.hooks.hook(\"rolldown:reload\", async () => await reload());\n\n await load();\n}\n\nfunction startRolldownWatcher(\n apibara: Apibara,\n rolldownConfig: rolldown.RolldownOptions,\n) {\n const ignorePatterns = getIgnorePatterns(apibara);\n const watcher = rolldown.watch(\n defu(rolldownConfig, {\n watch: {\n exclude: ignorePatterns,\n ...((apibara.options.watchOptions ?? {}) as rolldown.WatchOptions),\n },\n }),\n );\n let start: number;\n\n watcher.on(\"event\", async (event) => {\n switch (event.code) {\n // The watcher is (re)starting\n case \"START\": {\n await apibara.hooks.callHook(\"dev:restart\");\n return;\n }\n\n // Building an individual bundle\n case \"BUNDLE_START\": {\n start = Date.now();\n return;\n }\n\n // Finished building all bundles\n case \"END\": {\n apibara.hooks.callHook(\"compiled\", apibara);\n apibara.logger.success(\n \"Indexers built\",\n start ? `in ${Date.now() - start} ms` : \"\",\n );\n await apibara.hooks.callHook(\"dev:reload\");\n return;\n }\n\n // Encountered an error while bundling\n case \"ERROR\": {\n apibara.logger.error(formatRolldownError(event.error));\n }\n }\n });\n return watcher;\n}\n\nconst getWatchPatterns = (apibara: Apibara) => [\n join(apibara.options.rootDir, \"indexers\"),\n];\n\nconst getIgnorePatterns = (apibara: Apibara) => [\n \"**/.apibara/**\",\n \"**/.git/**\",\n \"**/.DS_Store\",\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/.turbo/**\",\n // changes to apibara.config is handled by c12 itself so we dont need rolldown to handle this\n \"**/apibara.config?(.ts|.js)\",\n];\n","import type { Apibara } from \"apibara/types\";\nimport { colors } from \"consola/utils\";\nimport * as rolldown from \"rolldown\";\n\nexport async function buildProduction(\n apibara: Apibara,\n rolldownConfig: rolldown.RolldownOptions,\n) {\n if (!apibara.options.disableLogs) {\n apibara.logger.start(\n `Building ${colors.cyan(apibara.indexers.length)} indexers`,\n );\n }\n\n const startTime = Date.now();\n\n try {\n const bundle = await rolldown.rolldown(rolldownConfig);\n\n if (Array.isArray(rolldownConfig.output)) {\n for (const outputOptions of rolldownConfig.output) {\n await bundle.write(outputOptions);\n }\n } else if (rolldownConfig.output) {\n await bundle.write(rolldownConfig.output as rolldown.OutputOptions);\n } else {\n throw new Error(\"No output options specified in Rolldown config\");\n }\n\n await bundle.close();\n\n const endTime = Date.now();\n const duration = endTime - startTime;\n\n if (!apibara.options.disableLogs) {\n apibara.logger.success(`Build succeeded in ${duration}ms`);\n apibara.logger.info(\n `You can start the indexers with ${colors.cyan(\"apibara start\")}`,\n );\n }\n } catch (error) {\n apibara.logger.error(\"Build failed\", error);\n throw error;\n }\n}\n","import { getRolldownConfig } from \"apibara/rolldown\";\nimport type { Apibara } from \"apibara/types\";\nimport { colors } from \"consola/utils\";\nimport { watchDev } from \"./dev\";\nimport { buildProduction } from \"./prod\";\n\nexport async function build(apibara: Apibara) {\n const rolldownConfig = getRolldownConfig(apibara);\n\n await apibara.hooks.callHook(\"rolldown:before\", apibara, rolldownConfig);\n\n if (apibara.options.rollupConfig) {\n apibara.logger.error(\n `\\n${colors.cyan(\"apibara.config:\")} rollupConfig is deprecated. Use rolldownConfig instead`,\n );\n process.exit(1);\n }\n\n return apibara.options.dev\n ? await watchDev(apibara, rolldownConfig)\n : await buildProduction(apibara, rolldownConfig);\n}\n","import { colors } from \"consola/utils\";\nimport { relative } from \"pathe\";\n\n/** Return a (possibly highlighted) path relative to the current working directory.\n *\n * From nitrojs/nitro.\n */\nexport function prettyPath(path: string, highlight = true) {\n const rel = relative(process.cwd(), path);\n return highlight ? colors.cyan(rel) : rel;\n}\n","import fsp from \"node:fs/promises\";\nimport type { Apibara } from \"apibara/types\";\nimport fse from \"fs-extra\";\nimport { prettyPath } from \"../path\";\n\nexport async function prepare(apibara: Apibara) {\n await prepareDir(apibara.options.buildDir);\n await prepareDir(apibara.options.outputDir);\n\n if (!apibara.options.disableLogs) {\n apibara.logger.success(\n `Output directory ${prettyPath(apibara.options.outputDir)} cleaned`,\n );\n }\n}\n\nasync function prepareDir(dir: string) {\n await fsp.mkdir(dir, { recursive: true });\n await fse.emptyDir(dir);\n}\n","import fsp from \"node:fs/promises\";\nimport type { Apibara } from \"apibara/types\";\nimport { dirname, join, resolve } from \"pathe\";\nimport { type JSValue, generateTypes, resolveSchema } from \"untyped\";\nimport { prettyPath } from \"../path\";\n\nexport async function writeTypes(apibara: Apibara) {\n // Check if the config file has a TypeScript extension so we assume it's a TypeScript project\n const isTypeScript = apibara.options._c12.configFile?.endsWith(\".ts\");\n\n if (!isTypeScript) {\n // If it's not a TypeScript project, we don't need to generate the types\n return;\n }\n\n const typesDir = resolve(apibara.options.buildDir, \"types\");\n\n const config = [\n \"// Generated by apibara\",\n `\ndeclare module \"apibara/types\" {`,\n apibara.options.typescript.generateRuntimeConfigTypes\n ? generateTypes(\n await resolveSchema(\n Object.fromEntries(\n Object.entries(apibara.options.runtimeConfig),\n ) as Record<string, JSValue>,\n ),\n {\n interfaceName: \"ApibaraRuntimeConfig\",\n addExport: false,\n addDefaults: false,\n allowExtraKeys: false,\n indentation: 2,\n },\n )\n : \"\",\n \"}\",\n // Makes this a module for augmentation purposes\n \"export type {};\",\n ];\n\n const buildFiles: { path: string; contents: string }[] = [];\n\n buildFiles.push({\n path: join(typesDir, \"apibara-config.d.ts\"),\n contents: config.join(\"\\n\"),\n });\n\n await Promise.all(\n buildFiles.map(async (file) => {\n const _file = resolve(apibara.options.buildDir, file.path);\n await fsp.mkdir(dirname(_file), { recursive: true });\n await fsp.writeFile(_file, file.contents);\n }),\n );\n\n if (!apibara.options.disableLogs) {\n apibara.logger.success(`Types written to ${prettyPath(typesDir)}`);\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/create/index.mjs
CHANGED
|
@@ -45,7 +45,6 @@ const storages = [
|
|
|
45
45
|
const packageVersions = {
|
|
46
46
|
// Required Dependencies
|
|
47
47
|
apibara: "next",
|
|
48
|
-
"@apibara/indexer": "next",
|
|
49
48
|
"@apibara/protocol": "next",
|
|
50
49
|
// Chain Dependencies
|
|
51
50
|
"@apibara/evm": "next",
|
|
@@ -379,7 +378,6 @@ function generatePackageJson(isTypeScript) {
|
|
|
379
378
|
...isTypeScript && { typecheck: "tsc --noEmit" }
|
|
380
379
|
},
|
|
381
380
|
dependencies: {
|
|
382
|
-
"@apibara/indexer": packageVersions["@apibara/indexer"],
|
|
383
381
|
"@apibara/protocol": packageVersions["@apibara/protocol"],
|
|
384
382
|
apibara: packageVersions.apibara
|
|
385
383
|
},
|
|
@@ -425,8 +423,8 @@ function generateIndexer({
|
|
|
425
423
|
chain,
|
|
426
424
|
language
|
|
427
425
|
}) {
|
|
428
|
-
return `import { defineIndexer } from "
|
|
429
|
-
import { useLogger } from "
|
|
426
|
+
return `import { defineIndexer } from "apibara/indexer";
|
|
427
|
+
import { useLogger } from "apibara/plugins";
|
|
430
428
|
${storage === "postgres" ? `import { drizzleStorage } from "@apibara/plugin-drizzle";` : ""}
|
|
431
429
|
${storage === "postgres" ? `import { drizzle } from "@apibara/plugin-drizzle";` : ""}
|
|
432
430
|
${chain === "ethereum" ? `import { EvmStream } from "@apibara/evm";` : chain === "beaconchain" ? `import { BeaconChainStream } from "@apibara/beaconchain";` : chain === "starknet" ? `import { StarknetStream } from "@apibara/starknet";` : ""}
|
|
@@ -1009,3 +1007,4 @@ async function addIndexer({
|
|
|
1009
1007
|
}
|
|
1010
1008
|
|
|
1011
1009
|
export { addIndexer, initializeProject };
|
|
1010
|
+
//# sourceMappingURL=index.mjs.map
|