@powerhousedao/switchboard 2.2.137 → 2.2.143

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.
@@ -1,5 +1,5 @@
1
1
  import { type RedisClientType } from "redis";
2
2
  export declare let redisClient: RedisClientType;
3
- export declare const initRedis: () => Promise<RedisClientType>;
3
+ export declare const initRedis: (url: string) => Promise<RedisClientType>;
4
4
  export declare const closeRedis: () => void;
5
5
  //# sourceMappingURL=redis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/clients/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3D,eAAO,IAAI,WAAW,EAAE,eAAe,CAAC;AACxC,eAAO,MAAM,SAAS,gCA4BrB,CAAC;AAeF,eAAO,MAAM,UAAU,YAItB,CAAC"}
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/clients/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3D,eAAO,IAAI,WAAW,EAAE,eAAe,CAAC;AACxC,eAAO,MAAM,SAAS,GAAU,KAAK,MAAM,6BAuB1C,CAAC;AAeF,eAAO,MAAM,UAAU,YAItB,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import { createClient } from "redis";
2
2
  export let redisClient;
3
- export const initRedis = async () => {
3
+ export const initRedis = async (url) => {
4
4
  if (!redisClient) {
5
- const url = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
6
- if (!url) {
7
- throw new Error("REDIS_TLS_URL is not set");
8
- }
9
5
  const socket = url.includes("rediss")
10
6
  ? {
11
7
  tls: true,
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/clients/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,MAAM,OAAO,CAAC;AAE3D,MAAM,CAAC,IAAI,WAA4B,CAAC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IAClC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC;gBACE,GAAG,EAAE,IAAI;gBACT,kBAAkB,EAAE,KAAK;aAC1B;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,WAAW,GAAG,YAAY,CAAC;YACzB,GAAG;YACH,MAAM;SACP,CAAC,CAAC;QAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,IAAI,EAAE;IACT,IAAI,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC,EACD,IAAI,GAAG,EAAE,GAAG,CAAC,CACd,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,WAAW,CAAC,UAAU,EAAE,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/clients/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAwB,MAAM,OAAO,CAAC;AAE3D,MAAM,CAAC,IAAI,WAA4B,CAAC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC;gBACE,GAAG,EAAE,IAAI;gBACT,kBAAkB,EAAE,KAAK;aAC1B;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,WAAW,GAAG,YAAY,CAAC;YACzB,GAAG;YACH,MAAM;SACP,CAAC,CAAC;QAEH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,IAAI,EAAE;IACT,IAAI,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC,EACD,IAAI,GAAG,EAAE,GAAG,CAAC,CACd,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,WAAW,CAAC,UAAU,EAAE,CAAC;AAC3B,CAAC,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { startAPI } from "@powerhousedao/reactor-api";
3
3
  import * as Sentry from "@sentry/node";
4
- import { ReactorBuilder, driveDocumentModelModule } from "document-drive";
4
+ import { InMemoryCache, ReactorBuilder, driveDocumentModelModule, } from "document-drive";
5
5
  import RedisCache from "document-drive/cache/redis";
6
+ import { FilesystemStorage } from "document-drive/storage/filesystem";
6
7
  import { PrismaStorageFactory } from "document-drive/storage/prisma";
7
8
  import { documentModelDocumentModelModule, } from "document-model";
8
9
  import dotenv from "dotenv";
9
10
  import express from "express";
11
+ import path from "path";
10
12
  import { initRedis } from "./clients/redis.js";
11
13
  import { initProfilerFromEnv } from "./profiler.js";
12
- import { PackagesManager } from "./utils/package-manager.js";
13
14
  dotenv.config();
14
15
  // Create a monolith express app for all subgraphs
15
16
  const app = express();
@@ -33,32 +34,29 @@ const main = async () => {
33
34
  }
34
35
  }
35
36
  try {
36
- const packages = process.env.PH_PACKAGES && process.env.PH_PACKAGES !== ""
37
- ? process.env.PH_PACKAGES.split(",")
38
- : [];
39
- const pkgManager = new PackagesManager({
40
- packages,
41
- });
42
- const { documentModels, subgraphs } = await pkgManager.init();
43
- const redis = await initRedis();
44
- const connectionString = process.env.DATABASE_URL;
45
- if (!connectionString) {
46
- throw new Error("Please set env var DATABASE_URL");
37
+ const redisUrl = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
38
+ let redis;
39
+ if (redisUrl) {
40
+ redis = await initRedis(redisUrl);
47
41
  }
42
+ const connectionString = process.env.DATABASE_URL ?? "./.ph/drive-storage";
48
43
  const dbUrl = connectionString.includes("amazonaws") &&
49
44
  !connectionString.includes("sslmode=no-verify")
50
45
  ? connectionString + "?sslmode=no-verify"
51
46
  : connectionString;
52
- const redisCache = new RedisCache(redis);
53
- const storageFactory = new PrismaStorageFactory(dbUrl, redisCache);
54
- const storage = storageFactory.build();
47
+ const cache = redis ? new RedisCache(redis) : new InMemoryCache();
48
+ const storageFactory = dbUrl.startsWith("postgres")
49
+ ? new PrismaStorageFactory(dbUrl, cache)
50
+ : undefined;
51
+ const storage = storageFactory
52
+ ? storageFactory.build()
53
+ : new FilesystemStorage(path.join(process.cwd(), dbUrl));
55
54
  const reactor = new ReactorBuilder([
56
55
  documentModelDocumentModelModule,
57
56
  driveDocumentModelModule,
58
- ...documentModels,
59
57
  ])
60
58
  .withStorage(storage)
61
- .withCache(redisCache)
59
+ .withCache(cache)
62
60
  .build();
63
61
  // init drive server
64
62
  await reactor.initialize();
@@ -66,8 +64,8 @@ const main = async () => {
66
64
  await startAPI(reactor, {
67
65
  express: app,
68
66
  port: serverPort,
69
- dbPath: dbUrl,
70
- packages,
67
+ dbPath: dbUrl.startsWith("postgres") ? dbUrl : "./.ph/read-storage",
68
+ configFile: path.join(process.cwd(), "powerhouse.config.json"),
71
69
  });
72
70
  }
73
71
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powerhousedao/switchboard",
3
3
  "type": "module",
4
- "version": "2.2.137",
4
+ "version": "2.2.143",
5
5
  "main": "dist/src/index.js",
6
6
  "bin": {
7
7
  "switchboard": "dist/src/index.js"
@@ -20,11 +20,11 @@
20
20
  "express": "^4.21.2",
21
21
  "graphql": "^16.10.0",
22
22
  "redis": "^4.7.0",
23
- "@powerhousedao/config": "1.28.0",
24
- "@powerhousedao/reactor-api": "1.30.0",
25
- "@powerhousedao/scalars": "2.0.0",
26
- "document-model": "3.0.0",
27
- "document-drive": "1.30.0"
23
+ "@powerhousedao/config": "1.28.1",
24
+ "@powerhousedao/reactor-api": "1.31.0",
25
+ "document-drive": "1.30.1",
26
+ "@powerhousedao/scalars": "2.0.1",
27
+ "document-model": "3.0.1"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/express": "^5.0.0",
@@ -1,13 +1,8 @@
1
1
  import { createClient, type RedisClientType } from "redis";
2
2
 
3
3
  export let redisClient: RedisClientType;
4
- export const initRedis = async () => {
4
+ export const initRedis = async (url: string) => {
5
5
  if (!redisClient) {
6
- const url = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
7
- if (!url) {
8
- throw new Error("REDIS_TLS_URL is not set");
9
- }
10
-
11
6
  const socket = url.includes("rediss")
12
7
  ? {
13
8
  tls: true,
package/src/index.ts CHANGED
@@ -1,8 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { startAPI } from "@powerhousedao/reactor-api";
3
3
  import * as Sentry from "@sentry/node";
4
- import { ReactorBuilder, driveDocumentModelModule } from "document-drive";
4
+ import {
5
+ InMemoryCache,
6
+ ReactorBuilder,
7
+ driveDocumentModelModule,
8
+ } from "document-drive";
5
9
  import RedisCache from "document-drive/cache/redis";
10
+ import { FilesystemStorage } from "document-drive/storage/filesystem";
6
11
  import { PrismaStorageFactory } from "document-drive/storage/prisma";
7
12
  import {
8
13
  type DocumentModelModule,
@@ -10,9 +15,10 @@ import {
10
15
  } from "document-model";
11
16
  import dotenv from "dotenv";
12
17
  import express from "express";
18
+ import path from "path";
19
+ import { type RedisClientType } from "redis";
13
20
  import { initRedis } from "./clients/redis.js";
14
21
  import { initProfilerFromEnv } from "./profiler.js";
15
- import { PackagesManager } from "./utils/package-manager.js";
16
22
 
17
23
  dotenv.config();
18
24
 
@@ -42,36 +48,32 @@ const main = async () => {
42
48
  }
43
49
 
44
50
  try {
45
- const packages =
46
- process.env.PH_PACKAGES && process.env.PH_PACKAGES !== ""
47
- ? process.env.PH_PACKAGES.split(",")
48
- : [];
49
- const pkgManager = new PackagesManager({
50
- packages,
51
- });
52
- const { documentModels, subgraphs } = await pkgManager.init();
53
- const redis = await initRedis();
54
- const connectionString = process.env.DATABASE_URL;
55
- if (!connectionString) {
56
- throw new Error("Please set env var DATABASE_URL");
51
+ const redisUrl = process.env.REDIS_TLS_URL ?? process.env.REDIS_URL;
52
+ let redis: RedisClientType | undefined;
53
+ if (redisUrl) {
54
+ redis = await initRedis(redisUrl);
57
55
  }
56
+ const connectionString = process.env.DATABASE_URL ?? "./.ph/drive-storage";
58
57
  const dbUrl =
59
58
  connectionString.includes("amazonaws") &&
60
59
  !connectionString.includes("sslmode=no-verify")
61
60
  ? connectionString + "?sslmode=no-verify"
62
61
  : connectionString;
63
62
 
64
- const redisCache = new RedisCache(redis);
65
- const storageFactory = new PrismaStorageFactory(dbUrl, redisCache);
66
- const storage = storageFactory.build();
63
+ const cache = redis ? new RedisCache(redis) : new InMemoryCache();
64
+ const storageFactory = dbUrl.startsWith("postgres")
65
+ ? new PrismaStorageFactory(dbUrl, cache)
66
+ : undefined;
67
+ const storage = storageFactory
68
+ ? storageFactory.build()
69
+ : new FilesystemStorage(path.join(process.cwd(), dbUrl));
67
70
 
68
71
  const reactor = new ReactorBuilder([
69
72
  documentModelDocumentModelModule,
70
73
  driveDocumentModelModule,
71
- ...documentModels,
72
74
  ] as DocumentModelModule[])
73
75
  .withStorage(storage)
74
- .withCache(redisCache)
76
+ .withCache(cache)
75
77
  .build();
76
78
 
77
79
  // init drive server
@@ -81,8 +83,8 @@ const main = async () => {
81
83
  await startAPI(reactor, {
82
84
  express: app,
83
85
  port: serverPort,
84
- dbPath: dbUrl,
85
- packages,
86
+ dbPath: dbUrl.startsWith("postgres") ? dbUrl : "./.ph/read-storage",
87
+ configFile: path.join(process.cwd(), "powerhouse.config.json"),
86
88
  });
87
89
  } catch (e) {
88
90
  Sentry.captureException(e);