summaryrefslogtreecommitdiff
path: root/src/jet/dependencies/object-graph.ts
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /src/jet/dependencies/object-graph.ts
init commit
Diffstat (limited to 'src/jet/dependencies/object-graph.ts')
-rw-r--r--src/jet/dependencies/object-graph.ts59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/jet/dependencies/object-graph.ts b/src/jet/dependencies/object-graph.ts
new file mode 100644
index 0000000..40ad0a9
--- /dev/null
+++ b/src/jet/dependencies/object-graph.ts
@@ -0,0 +1,59 @@
+import { AppStoreObjectGraph } from '@jet-app/app-store/foundation/runtime/app-store-object-graph';
+import { ObjectGraphType } from '@jet-app/app-store/gameservicesui/src/foundation/object-graph-types';
+
+import type { Dependencies } from './make-dependencies';
+import { WebFeatureFlags } from './feature-flags';
+import { WebMediaTokenService } from './media-token-service';
+
+export { ObjectGraphType };
+
+class AppStoreWebObjectGraph extends AppStoreObjectGraph {
+ /**
+ * Configures the ObjectGraph from our `Dependencies` definition
+ *
+ * @param dependencies
+ * @returns
+ */
+ configureWithDependencies(dependencies: Dependencies) {
+ const {
+ bag,
+ client,
+ console,
+ host,
+ locale,
+ localization,
+ metricsIdentifiers,
+ net,
+ properties,
+ random,
+ seo,
+ storage,
+ user,
+ } = dependencies;
+
+ return this.addingClient(client)
+ .addingNetwork(net)
+ .addingHost(host)
+ .addingBag(bag)
+ .addingLoc(localization)
+ .addingMediaToken(new WebMediaTokenService())
+ .addingConsole(console)
+ .addingAppleSilicon(undefined)
+ .addingProperties(properties)
+ .addingLocale(locale)
+ .addingUser(user)
+ .addingFeatureFlags(new WebFeatureFlags())
+ .addingMetricsIdentifiers(metricsIdentifiers)
+ .addingSEO(seo)
+ .addingStorage(storage)
+ .addingRandom(random);
+ }
+}
+
+export function makeObjectGraph(
+ dependencies: Dependencies,
+): AppStoreObjectGraph {
+ const objectGraph = new AppStoreWebObjectGraph('app-store');
+
+ return objectGraph.configureWithDependencies(dependencies);
+}