in packages/sqrl-cli/src/cli/CliMain.ts [132:172]
async function createInstance(
args: CliArgs
): Promise<{
instance: Instance;
}> {
const config: Config = {
...getDefaultConfig(),
"state.allow-in-memory": true,
...(args.config ? await readJsonFile(args.config) : {}),
};
// Allow the --redis argument to override the config
if (args.redis) {
config["redis.address"] = args.redis;
}
const services: FunctionServices = {
assert: new CliAssertService(),
log: new CliLogService(),
};
const instance = SQRL.createInstance({ config, services });
const requires = [
...(args.skipDefaultRequires
? []
: [
"sqrl-redis-functions",
"sqrl-text-functions",
"sqrl-load-functions",
"sqrl-jsonpath",
"sqrl-cli-functions",
]),
...args.requires,
];
for (const name of requires) {
await instance.importFromPackage(name, await import(name));
}
return { instance };
}