apibara 2.1.0-beta.5 → 2.1.0-beta.50
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 +16 -8
- package/dist/chunks/add.mjs.map +1 -0
- package/dist/chunks/build.mjs +4 -2
- package/dist/chunks/build.mjs.map +1 -0
- package/dist/chunks/dev.mjs +55 -21
- package/dist/chunks/dev.mjs.map +1 -0
- package/dist/chunks/init.mjs +11 -7
- package/dist/chunks/init.mjs.map +1 -0
- package/dist/chunks/prepare.mjs +4 -2
- package/dist/chunks/prepare.mjs.map +1 -0
- package/dist/chunks/start.mjs +16 -4
- package/dist/chunks/start.mjs.map +1 -0
- package/dist/chunks/write-project-info.mjs +51 -0
- package/dist/chunks/write-project-info.mjs.map +1 -0
- package/dist/cli/index.mjs +3 -1
- package/dist/cli/index.mjs.map +1 -0
- package/dist/common/index.d.mts +33 -0
- package/dist/common/index.d.ts +33 -0
- package/dist/common/index.mjs +91 -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 +134 -69
- package/dist/core/index.mjs.map +1 -0
- package/dist/create/index.d.mts +2 -1
- package/dist/create/index.d.ts +2 -1
- package/dist/create/index.mjs +80 -136
- 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.d.mts +7 -0
- package/dist/rolldown/index.d.ts +7 -0
- package/dist/rolldown/index.mjs +141 -0
- package/dist/rolldown/index.mjs.map +1 -0
- package/dist/runtime/dev.mjs +39 -17
- package/dist/runtime/internal/app.d.ts +14 -1
- package/dist/runtime/internal/app.mjs +26 -21
- package/dist/runtime/project-info.d.ts +3 -0
- package/dist/runtime/project-info.mjs +67 -0
- package/dist/runtime/start.mjs +78 -11
- package/dist/shared/apibara.730bb1e4.mjs +18 -0
- package/dist/shared/apibara.730bb1e4.mjs.map +1 -0
- package/dist/types/index.d.mts +24 -20
- package/dist/types/index.d.ts +24 -20
- package/dist/types/index.mjs +1 -0
- package/dist/types/index.mjs.map +1 -0
- package/package.json +34 -17
- package/src/cli/commands/add.ts +16 -7
- package/src/cli/commands/build.ts +5 -2
- package/src/cli/commands/dev.ts +64 -20
- package/src/cli/commands/init.ts +12 -7
- package/src/cli/commands/prepare.ts +4 -3
- package/src/cli/commands/start.ts +18 -3
- package/src/cli/commands/write-project-info.ts +56 -0
- package/src/cli/index.ts +2 -0
- package/src/common/cli.ts +40 -0
- package/src/common/constants.ts +6 -0
- package/src/common/helper.ts +86 -0
- package/src/common/index.ts +3 -0
- package/src/core/apibara.ts +7 -2
- package/src/core/build/build.ts +13 -5
- package/src/core/build/dev.ts +46 -23
- package/src/core/build/error.ts +9 -14
- package/src/core/build/prepare.ts +5 -3
- package/src/core/build/prod.ts +25 -16
- package/src/core/build/types.ts +11 -1
- package/src/core/config/defaults.ts +3 -0
- package/src/core/config/loader.ts +15 -7
- package/src/core/config/resolvers/runtime.resolver.ts +44 -0
- package/src/core/config/update.ts +6 -2
- package/src/core/scan.ts +1 -1
- package/src/create/add.ts +14 -20
- package/src/create/constants.ts +5 -7
- package/src/create/init.ts +2 -2
- package/src/create/templates.ts +43 -116
- package/src/create/types.ts +3 -0
- package/src/create/utils.ts +20 -7
- 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 +86 -0
- package/src/rolldown/index.ts +2 -0
- package/src/{rollup → rolldown}/plugins/indexers.ts +3 -3
- package/src/rolldown/plugins/instrumentation.ts +68 -0
- package/src/rolldown/plugins/static-config.ts +21 -0
- package/src/runtime/dev.ts +49 -19
- package/src/runtime/internal/app.ts +42 -29
- package/src/runtime/project-info.ts +90 -0
- package/src/runtime/start.ts +91 -11
- package/src/types/config.ts +27 -13
- package/src/types/hooks.ts +8 -5
- package/src/types/index.ts +1 -1
- package/src/types/rolldown.ts +5 -0
- package/src/types/virtual/indexers.d.ts +4 -1
- package/src/types/virtual/instrumentation.d.ts +4 -0
- package/src/types/virtual/static-config.d.ts +4 -0
- package/dist/rollup/index.d.mts +0 -6
- package/dist/rollup/index.d.ts +0 -6
- package/dist/rollup/index.mjs +0 -150
- package/dist/shared/apibara.1b515d04.mjs +0 -8
- package/src/cli/common.ts +0 -8
- package/src/core/config/resolvers/preset.resolver.ts +0 -9
- package/src/core/config/resolvers/runtime-config.resolver.ts +0 -6
- package/src/rollup/config.ts +0 -87
- package/src/rollup/index.ts +0 -2
- package/src/rollup/plugins/config.ts +0 -12
- package/src/rollup/plugins/esm-shim.ts +0 -69
- package/src/types/rollup.ts +0 -8
- package/src/types/virtual/config.d.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/common/constants.ts","../../src/common/helper.ts","../../src/common/cli.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","import {\n type ArgsDef,\n type CommandDef,\n type ParsedArgs,\n renderUsage,\n} from \"citty\";\nimport consola from \"consola\";\n\nexport const commonArgs = <ArgsDef>{\n dir: {\n type: \"string\",\n description: \"project root directory\",\n },\n};\n\nexport const checkForUnknownArgs = async <T extends ArgsDef = ArgsDef>(\n args: ParsedArgs<T>,\n cmd: CommandDef<T>,\n) => {\n // Create a list of defined args including both the main arg names and their aliases\n const definedArgs: string[] = [];\n if (cmd.args) {\n for (const [argName, argDef] of Object.entries(cmd.args)) {\n definedArgs.push(argName);\n // Add alias to definedArgs if it exists\n if (argDef.alias) {\n definedArgs.push(argDef.alias);\n }\n }\n }\n\n const providedArgs = Object.keys(args).filter((arg) => arg !== \"_\");\n const wrongArgs = providedArgs.filter((arg) => !definedArgs.includes(arg));\n\n if (wrongArgs.length > 0) {\n consola.error(`Unknown arguments: ${wrongArgs.join(\", \")}`);\n consola.info(await renderUsage(cmd));\n process.exit(1);\n }\n};\n"],"names":[],"mappings":"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"}
|
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,14 +3,14 @@ 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
|
|
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';
|
|
7
7
|
import fse from 'fs-extra';
|
|
8
|
-
import {
|
|
8
|
+
import { getRolldownConfig } from 'apibara/rolldown';
|
|
9
|
+
import { colors } from 'consola/utils';
|
|
9
10
|
import { watch } from 'chokidar';
|
|
11
|
+
import defu from 'defu';
|
|
10
12
|
import { debounce } from 'perfect-debounce';
|
|
11
|
-
import * as
|
|
12
|
-
import { rollup as rollup$1 } from 'rollup';
|
|
13
|
-
import { colors } from 'consola/utils';
|
|
13
|
+
import * as rolldown from 'rolldown';
|
|
14
14
|
import fsp from 'node:fs/promises';
|
|
15
15
|
import { generateTypes, resolveSchema } from 'untyped';
|
|
16
16
|
|
|
@@ -24,7 +24,9 @@ const ApibaraDefaults = {
|
|
|
24
24
|
strict: false,
|
|
25
25
|
generateRuntimeConfigTypes: true,
|
|
26
26
|
internalPaths: false
|
|
27
|
-
}
|
|
27
|
+
},
|
|
28
|
+
node: true,
|
|
29
|
+
exportConditions: ["node"]
|
|
28
30
|
};
|
|
29
31
|
|
|
30
32
|
async function resolvePathOptions(options) {
|
|
@@ -37,25 +39,47 @@ async function resolvePathOptions(options) {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
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
|
+
});
|
|
44
69
|
}
|
|
45
70
|
}
|
|
46
71
|
|
|
47
|
-
|
|
48
|
-
options.runtimeConfig = { ...options.runtimeConfig };
|
|
49
|
-
process.env.APIBARA_RUNTIME_CONFIG = JSON.stringify(options.runtimeConfig);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const configResolvers = [
|
|
53
|
-
resolvePathOptions,
|
|
54
|
-
resolveRuntimeConfigOptions,
|
|
55
|
-
presetResolver
|
|
56
|
-
];
|
|
72
|
+
const configResolvers = [resolvePathOptions, runtimeConfigResolver];
|
|
57
73
|
async function loadOptions(configOverrides = {}, opts = {}, dev = false) {
|
|
58
74
|
const options = await _loadUserConfig(configOverrides, opts, dev);
|
|
75
|
+
try {
|
|
76
|
+
JSON.stringify(options.runtimeConfig);
|
|
77
|
+
} catch (error) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
"Non-serializable runtimeConfig. Please ensure the config is serializable.",
|
|
80
|
+
{ cause: error }
|
|
81
|
+
);
|
|
82
|
+
}
|
|
59
83
|
for (const resolver of configResolvers) {
|
|
60
84
|
await resolver(options);
|
|
61
85
|
}
|
|
@@ -82,12 +106,13 @@ async function _loadUserConfig(configOverrides = {}, opts = {}, dev = false) {
|
|
|
82
106
|
return options;
|
|
83
107
|
}
|
|
84
108
|
|
|
85
|
-
async function updateApibaraConfig(apibara,
|
|
86
|
-
|
|
109
|
+
async function updateApibaraConfig(apibara, newConfig) {
|
|
110
|
+
runtimeConfigResolver(newConfig);
|
|
87
111
|
apibara.logger.success("Apibara config hot reloaded!");
|
|
112
|
+
await apibara.hooks.callHook("dev:reload");
|
|
88
113
|
}
|
|
89
114
|
|
|
90
|
-
const INDEXER_EXTENSIONS = [".indexer.ts", ".indexer.js"];
|
|
115
|
+
const INDEXER_EXTENSIONS = [".indexer.ts", ".indexer.js", ".indexer.mjs"];
|
|
91
116
|
async function scanIndexers(apibara) {
|
|
92
117
|
apibara.logger.debug("Scanning indexers");
|
|
93
118
|
const indexersDir = join(
|
|
@@ -119,14 +144,15 @@ function indexerNameFromFile(file) {
|
|
|
119
144
|
|
|
120
145
|
async function createApibara(config = {}, opts = {}, dev = false) {
|
|
121
146
|
const options = await loadOptions(config, opts, dev);
|
|
147
|
+
process.env.NODE_OPTIONS = process.env.NODE_OPTIONS ? `${process.env.NODE_OPTIONS} --enable-source-maps` : "--enable-source-maps";
|
|
122
148
|
const apibara = {
|
|
123
149
|
options,
|
|
124
150
|
indexers: [],
|
|
125
151
|
hooks: createHooks(),
|
|
126
152
|
close: () => apibara.hooks.callHook("close"),
|
|
127
153
|
logger: consola.withTag("apibara"),
|
|
128
|
-
async updateConfig(
|
|
129
|
-
updateApibaraConfig(apibara);
|
|
154
|
+
async updateConfig(newConfig) {
|
|
155
|
+
updateApibaraConfig(apibara, newConfig);
|
|
130
156
|
}
|
|
131
157
|
};
|
|
132
158
|
apibara.hooks.addHooks(apibara.options.hooks);
|
|
@@ -134,20 +160,20 @@ async function createApibara(config = {}, opts = {}, dev = false) {
|
|
|
134
160
|
return apibara;
|
|
135
161
|
}
|
|
136
162
|
|
|
137
|
-
function
|
|
163
|
+
function formatRolldownError(_error) {
|
|
138
164
|
try {
|
|
139
165
|
const logs = [_error.toString()];
|
|
140
166
|
const errors = _error?.errors || [_error];
|
|
141
167
|
for (const error of errors) {
|
|
142
168
|
const id = error.path || error.id || _error.id;
|
|
143
169
|
let path = isAbsolute(id) ? relative(process.cwd(), id) : id;
|
|
144
|
-
const location = error.loc
|
|
170
|
+
const location = error.loc;
|
|
145
171
|
if (location) {
|
|
146
172
|
path += `:${location.line}:${location.column}`;
|
|
147
173
|
}
|
|
148
|
-
const text = error.
|
|
174
|
+
const text = error.frame;
|
|
149
175
|
logs.push(
|
|
150
|
-
`
|
|
176
|
+
`Rolldown error while processing \`${path}\`` + text ? "\n\n" + text : ""
|
|
151
177
|
);
|
|
152
178
|
}
|
|
153
179
|
return logs.join("\n");
|
|
@@ -156,45 +182,48 @@ function formatRollupError(_error) {
|
|
|
156
182
|
}
|
|
157
183
|
}
|
|
158
184
|
|
|
159
|
-
async function watchDev(apibara,
|
|
160
|
-
let
|
|
185
|
+
async function watchDev(apibara, rolldownConfig) {
|
|
186
|
+
let rolldownWatcher;
|
|
161
187
|
async function load() {
|
|
162
|
-
|
|
163
|
-
|
|
188
|
+
apibara.logger.start("Setting up a dev server");
|
|
189
|
+
if (rolldownWatcher) {
|
|
190
|
+
await rolldownWatcher.close();
|
|
164
191
|
}
|
|
165
|
-
|
|
192
|
+
rolldownWatcher = startRolldownWatcher(apibara, rolldownConfig);
|
|
166
193
|
}
|
|
167
|
-
const reload = debounce(load);
|
|
168
|
-
const watchPatterns =
|
|
194
|
+
const reload = debounce(async () => await load());
|
|
195
|
+
const watchPatterns = getWatchPatterns(apibara);
|
|
169
196
|
const watchReloadEvents = /* @__PURE__ */ new Set(["add", "addDir", "unlink", "unlinkDir"]);
|
|
170
197
|
const reloadWatcher = watch(watchPatterns, { ignoreInitial: true }).on(
|
|
171
198
|
"all",
|
|
172
|
-
(event) => {
|
|
199
|
+
async (event) => {
|
|
173
200
|
if (watchReloadEvents.has(event)) {
|
|
174
|
-
reload();
|
|
201
|
+
await reload();
|
|
175
202
|
}
|
|
176
203
|
}
|
|
177
204
|
);
|
|
178
205
|
apibara.hooks.hook("close", () => {
|
|
179
|
-
|
|
206
|
+
rolldownWatcher.close();
|
|
180
207
|
reloadWatcher.close();
|
|
181
208
|
});
|
|
182
|
-
apibara.hooks.hook("
|
|
209
|
+
apibara.hooks.hook("rolldown:reload", async () => await reload());
|
|
183
210
|
await load();
|
|
184
211
|
}
|
|
185
|
-
function
|
|
186
|
-
const
|
|
187
|
-
|
|
212
|
+
function startRolldownWatcher(apibara, rolldownConfig) {
|
|
213
|
+
const ignorePatterns = getIgnorePatterns();
|
|
214
|
+
const watcher = rolldown.watch(
|
|
215
|
+
defu(rolldownConfig, {
|
|
188
216
|
watch: {
|
|
189
|
-
|
|
217
|
+
exclude: ignorePatterns,
|
|
218
|
+
...apibara.options.watchOptions ?? {}
|
|
190
219
|
}
|
|
191
220
|
})
|
|
192
221
|
);
|
|
193
222
|
let start;
|
|
194
|
-
watcher.on("event", (event) => {
|
|
223
|
+
watcher.on("event", async (event) => {
|
|
195
224
|
switch (event.code) {
|
|
196
225
|
case "START": {
|
|
197
|
-
apibara.hooks.callHook("dev:restart");
|
|
226
|
+
await apibara.hooks.callHook("dev:restart");
|
|
198
227
|
return;
|
|
199
228
|
}
|
|
200
229
|
case "BUNDLE_START": {
|
|
@@ -207,37 +236,57 @@ function startRollupWatcher(apibara, rollupConfig) {
|
|
|
207
236
|
"Indexers built",
|
|
208
237
|
start ? `in ${Date.now() - start} ms` : ""
|
|
209
238
|
);
|
|
210
|
-
apibara.hooks.callHook("dev:reload");
|
|
239
|
+
await apibara.hooks.callHook("dev:reload");
|
|
211
240
|
return;
|
|
212
241
|
}
|
|
213
242
|
case "ERROR": {
|
|
214
|
-
apibara.logger.error(
|
|
243
|
+
apibara.logger.error(formatRolldownError(event.error));
|
|
215
244
|
}
|
|
216
245
|
}
|
|
217
246
|
});
|
|
218
247
|
return watcher;
|
|
219
248
|
}
|
|
249
|
+
const getWatchPatterns = (apibara) => [
|
|
250
|
+
join(apibara.options.rootDir, "indexers")
|
|
251
|
+
];
|
|
252
|
+
const getIgnorePatterns = (apibara) => [
|
|
253
|
+
"**/.apibara/**",
|
|
254
|
+
"**/.git/**",
|
|
255
|
+
"**/.DS_Store",
|
|
256
|
+
"**/node_modules/**",
|
|
257
|
+
"**/dist/**",
|
|
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|.mjs)"
|
|
261
|
+
];
|
|
220
262
|
|
|
221
|
-
async function buildProduction(apibara,
|
|
222
|
-
apibara.
|
|
223
|
-
|
|
224
|
-
|
|
263
|
+
async function buildProduction(apibara, rolldownConfig) {
|
|
264
|
+
if (!apibara.options.disableLogs) {
|
|
265
|
+
apibara.logger.start(
|
|
266
|
+
`Building ${colors.cyan(apibara.indexers.length)} indexers`
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
const startTime = Date.now();
|
|
225
270
|
try {
|
|
226
|
-
const bundle = await
|
|
227
|
-
if (Array.isArray(
|
|
228
|
-
for (const outputOptions of
|
|
271
|
+
const bundle = await rolldown.rolldown(rolldownConfig);
|
|
272
|
+
if (Array.isArray(rolldownConfig.output)) {
|
|
273
|
+
for (const outputOptions of rolldownConfig.output) {
|
|
229
274
|
await bundle.write(outputOptions);
|
|
230
275
|
}
|
|
231
|
-
} else if (
|
|
232
|
-
await bundle.write(
|
|
276
|
+
} else if (rolldownConfig.output) {
|
|
277
|
+
await bundle.write(rolldownConfig.output);
|
|
233
278
|
} else {
|
|
234
|
-
throw new Error("No output options specified in
|
|
279
|
+
throw new Error("No output options specified in Rolldown config");
|
|
235
280
|
}
|
|
236
281
|
await bundle.close();
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
282
|
+
const endTime = Date.now();
|
|
283
|
+
const duration = endTime - startTime;
|
|
284
|
+
if (!apibara.options.disableLogs) {
|
|
285
|
+
apibara.logger.success(`Build succeeded in ${duration}ms`);
|
|
286
|
+
apibara.logger.info(
|
|
287
|
+
`You can start the indexers with ${colors.cyan("apibara start")}`
|
|
288
|
+
);
|
|
289
|
+
}
|
|
241
290
|
} catch (error) {
|
|
242
291
|
apibara.logger.error("Build failed", error);
|
|
243
292
|
throw error;
|
|
@@ -245,9 +294,16 @@ async function buildProduction(apibara, rollupConfig) {
|
|
|
245
294
|
}
|
|
246
295
|
|
|
247
296
|
async function build(apibara) {
|
|
248
|
-
const
|
|
249
|
-
await apibara.hooks.callHook("
|
|
250
|
-
|
|
297
|
+
const rolldownConfig = getRolldownConfig(apibara);
|
|
298
|
+
await apibara.hooks.callHook("rolldown:before", apibara, rolldownConfig);
|
|
299
|
+
if (apibara.options.rollupConfig) {
|
|
300
|
+
apibara.logger.error(
|
|
301
|
+
`
|
|
302
|
+
${colors.cyan("apibara.config:")} rollupConfig is deprecated. Use rolldownConfig instead`
|
|
303
|
+
);
|
|
304
|
+
process.exit(1);
|
|
305
|
+
}
|
|
306
|
+
return apibara.options.dev ? await watchDev(apibara, rolldownConfig) : await buildProduction(apibara, rolldownConfig);
|
|
251
307
|
}
|
|
252
308
|
|
|
253
309
|
function prettyPath(path, highlight = true) {
|
|
@@ -258,9 +314,11 @@ function prettyPath(path, highlight = true) {
|
|
|
258
314
|
async function prepare(apibara) {
|
|
259
315
|
await prepareDir(apibara.options.buildDir);
|
|
260
316
|
await prepareDir(apibara.options.outputDir);
|
|
261
|
-
apibara.
|
|
262
|
-
|
|
263
|
-
|
|
317
|
+
if (!apibara.options.disableLogs) {
|
|
318
|
+
apibara.logger.success(
|
|
319
|
+
`Output directory ${prettyPath(apibara.options.outputDir)} cleaned`
|
|
320
|
+
);
|
|
321
|
+
}
|
|
264
322
|
}
|
|
265
323
|
async function prepareDir(dir) {
|
|
266
324
|
await fsp.mkdir(dir, { recursive: true });
|
|
@@ -268,6 +326,10 @@ async function prepareDir(dir) {
|
|
|
268
326
|
}
|
|
269
327
|
|
|
270
328
|
async function writeTypes(apibara) {
|
|
329
|
+
const isTypeScript = apibara.options._c12.configFile?.endsWith(".ts");
|
|
330
|
+
if (!isTypeScript) {
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
271
333
|
const typesDir = resolve(apibara.options.buildDir, "types");
|
|
272
334
|
const config = [
|
|
273
335
|
"// Generated by apibara",
|
|
@@ -303,7 +365,10 @@ declare module "apibara/types" {`,
|
|
|
303
365
|
await fsp.writeFile(_file, file.contents);
|
|
304
366
|
})
|
|
305
367
|
);
|
|
306
|
-
apibara.
|
|
368
|
+
if (!apibara.options.disableLogs) {
|
|
369
|
+
apibara.logger.success(`Types written to ${prettyPath(typesDir)}`);
|
|
370
|
+
}
|
|
307
371
|
}
|
|
308
372
|
|
|
309
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\", \".indexer.mjs\"];\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|.mjs)\",\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.d.mts
CHANGED
|
@@ -4,8 +4,9 @@ type Options$1 = {
|
|
|
4
4
|
argNetwork?: string;
|
|
5
5
|
argStorage?: string;
|
|
6
6
|
argDnaUrl?: string;
|
|
7
|
+
argRootDir?: string;
|
|
7
8
|
};
|
|
8
|
-
declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, }: Options$1): Promise<void>;
|
|
9
|
+
declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, argRootDir, }: Options$1): Promise<void>;
|
|
9
10
|
|
|
10
11
|
type Options = {
|
|
11
12
|
argTargetDir: string;
|
package/dist/create/index.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ type Options$1 = {
|
|
|
4
4
|
argNetwork?: string;
|
|
5
5
|
argStorage?: string;
|
|
6
6
|
argDnaUrl?: string;
|
|
7
|
+
argRootDir?: string;
|
|
7
8
|
};
|
|
8
|
-
declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, }: Options$1): Promise<void>;
|
|
9
|
+
declare function addIndexer({ argIndexerId, argChain, argNetwork, argStorage, argDnaUrl, argRootDir, }: Options$1): Promise<void>;
|
|
9
10
|
|
|
10
11
|
type Options = {
|
|
11
12
|
argTargetDir: string;
|