@geexcode/geex-angular 0.0.1 → 0.0.3

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/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { WritableSignal, Injector, Provider } from '@angular/core';
1
+ import { WritableSignal, InjectionToken, Injector, Provider } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
 
4
4
  interface Tenant {
@@ -74,6 +74,7 @@ interface UiModule extends GeexModule {
74
74
  activeRoutedComponent?: any;
75
75
  }
76
76
  type GeexModules<TExtensionModules extends Record<string, GeexModule> = {}> = {
77
+ init: () => Promise<any>;
77
78
  tenant: TenantModule;
78
79
  auth: AuthModule;
79
80
  identity: IdentityModule;
@@ -81,10 +82,26 @@ type GeexModules<TExtensionModules extends Record<string, GeexModule> = {}> = {
81
82
  settings: SettingsModule;
82
83
  ui: UiModule;
83
84
  } & TExtensionModules;
84
- type GeexModule<TExtension = any> = {} & TExtension;
85
+ type GeexModule<TExtension = any> = {
86
+ /**
87
+ * A module combines both reactive state (signals) and business logic methods.
88
+ * Concrete modules can extend this interface to expose their own signals & methods.
89
+ * This empty base exists mainly for typing convenience and future extension.
90
+ */
91
+ init?: () => Promise<any>;
92
+ } & TExtension;
85
93
 
86
94
  type GeexOverrides<TExtensionModules extends Record<string, GeexModule> = {}> = Partial<GeexModules<TExtensionModules>>;
87
95
  declare let geex: GeexModules;
96
+ declare let Geex: InjectionToken<{
97
+ init: () => Promise<any>;
98
+ tenant: TenantModule;
99
+ auth: AuthModule;
100
+ identity: IdentityModule;
101
+ messaging: MessagingModule;
102
+ settings: SettingsModule;
103
+ ui: UiModule;
104
+ }>;
88
105
  /**
89
106
  * Initialize geex singleton with concrete dependencies
90
107
  * @param deps Required runtime services
@@ -94,4 +111,4 @@ declare function configGeex<TExtensionModules extends Record<string, GeexModule>
94
111
 
95
112
  declare function provideGeex(injector: any, overrides?: GeexOverrides): Provider[];
96
113
 
97
- export { type GeexOverrides, configGeex, geex, provideGeex };
114
+ export { Geex, type GeexOverrides, configGeex, geex, provideGeex };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { WritableSignal, Injector, Provider } from '@angular/core';
1
+ import { WritableSignal, InjectionToken, Injector, Provider } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
 
4
4
  interface Tenant {
@@ -74,6 +74,7 @@ interface UiModule extends GeexModule {
74
74
  activeRoutedComponent?: any;
75
75
  }
76
76
  type GeexModules<TExtensionModules extends Record<string, GeexModule> = {}> = {
77
+ init: () => Promise<any>;
77
78
  tenant: TenantModule;
78
79
  auth: AuthModule;
79
80
  identity: IdentityModule;
@@ -81,10 +82,26 @@ type GeexModules<TExtensionModules extends Record<string, GeexModule> = {}> = {
81
82
  settings: SettingsModule;
82
83
  ui: UiModule;
83
84
  } & TExtensionModules;
84
- type GeexModule<TExtension = any> = {} & TExtension;
85
+ type GeexModule<TExtension = any> = {
86
+ /**
87
+ * A module combines both reactive state (signals) and business logic methods.
88
+ * Concrete modules can extend this interface to expose their own signals & methods.
89
+ * This empty base exists mainly for typing convenience and future extension.
90
+ */
91
+ init?: () => Promise<any>;
92
+ } & TExtension;
85
93
 
86
94
  type GeexOverrides<TExtensionModules extends Record<string, GeexModule> = {}> = Partial<GeexModules<TExtensionModules>>;
87
95
  declare let geex: GeexModules;
96
+ declare let Geex: InjectionToken<{
97
+ init: () => Promise<any>;
98
+ tenant: TenantModule;
99
+ auth: AuthModule;
100
+ identity: IdentityModule;
101
+ messaging: MessagingModule;
102
+ settings: SettingsModule;
103
+ ui: UiModule;
104
+ }>;
88
105
  /**
89
106
  * Initialize geex singleton with concrete dependencies
90
107
  * @param deps Required runtime services
@@ -94,4 +111,4 @@ declare function configGeex<TExtensionModules extends Record<string, GeexModule>
94
111
 
95
112
  declare function provideGeex(injector: any, overrides?: GeexOverrides): Provider[];
96
113
 
97
- export { type GeexOverrides, configGeex, geex, provideGeex };
114
+ export { Geex, type GeexOverrides, configGeex, geex, provideGeex };
package/dist/index.js CHANGED
@@ -30,6 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
+ Geex: () => Geex,
33
34
  configGeex: () => configGeex,
34
35
  geex: () => geex,
35
36
  provideGeex: () => provideGeex
@@ -169,9 +170,21 @@ function createUiModule(injector) {
169
170
 
170
171
  // src/geex.ts
171
172
  var geex;
173
+ var Geex = new import_core2.InjectionToken("Geex");
172
174
  function configGeex(injector, overrides) {
173
175
  (0, import_core2.runInInjectionContext)(injector, () => {
174
176
  const modules = {
177
+ init: async () => {
178
+ const entries = Object.entries(modules).filter(([key]) => key !== "init");
179
+ await Promise.all(
180
+ entries.map(async ([, mod]) => {
181
+ const maybeInit = mod.init;
182
+ if (typeof maybeInit === "function") {
183
+ await maybeInit();
184
+ }
185
+ })
186
+ );
187
+ },
175
188
  tenant: createTenantModule(injector),
176
189
  auth: createAuthModule(injector),
177
190
  identity: createIdentityModule(injector),
@@ -195,11 +208,12 @@ function provideGeex(injector, overrides) {
195
208
  configGeex(injector, overrides);
196
209
  return [
197
210
  { provide: GEEX_CONFIG, useValue: { injector, overrides } },
198
- { provide: geex, useExisting: geex }
211
+ { provide: Geex, useExisting: geex }
199
212
  ];
200
213
  }
201
214
  // Annotate the CommonJS export names for ESM import in node:
202
215
  0 && (module.exports = {
216
+ Geex,
203
217
  configGeex,
204
218
  geex,
205
219
  provideGeex
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import "./chunk-EBO3CZXG.mjs";
2
2
 
3
3
  // src/geex.ts
4
- import { runInInjectionContext as runInInjectionContext2 } from "@angular/core";
4
+ import { InjectionToken, runInInjectionContext as runInInjectionContext2 } from "@angular/core";
5
5
 
6
6
  // src/modules.ts
7
7
  import { Apollo } from "apollo-angular";
@@ -133,9 +133,21 @@ function createUiModule(injector) {
133
133
 
134
134
  // src/geex.ts
135
135
  var geex;
136
+ var Geex = new InjectionToken("Geex");
136
137
  function configGeex(injector, overrides) {
137
138
  runInInjectionContext2(injector, () => {
138
139
  const modules = {
140
+ init: async () => {
141
+ const entries = Object.entries(modules).filter(([key]) => key !== "init");
142
+ await Promise.all(
143
+ entries.map(async ([, mod]) => {
144
+ const maybeInit = mod.init;
145
+ if (typeof maybeInit === "function") {
146
+ await maybeInit();
147
+ }
148
+ })
149
+ );
150
+ },
139
151
  tenant: createTenantModule(injector),
140
152
  auth: createAuthModule(injector),
141
153
  identity: createIdentityModule(injector),
@@ -151,18 +163,19 @@ function configGeex(injector, overrides) {
151
163
  }
152
164
 
153
165
  // src/tokens.ts
154
- import { InjectionToken } from "@angular/core";
155
- var GEEX_CONFIG = new InjectionToken("GEEX_CONFIG");
166
+ import { InjectionToken as InjectionToken2 } from "@angular/core";
167
+ var GEEX_CONFIG = new InjectionToken2("GEEX_CONFIG");
156
168
 
157
169
  // src/provide-geex.ts
158
170
  function provideGeex(injector, overrides) {
159
171
  configGeex(injector, overrides);
160
172
  return [
161
173
  { provide: GEEX_CONFIG, useValue: { injector, overrides } },
162
- { provide: geex, useExisting: geex }
174
+ { provide: Geex, useExisting: geex }
163
175
  ];
164
176
  }
165
177
  export {
178
+ Geex,
166
179
  configGeex,
167
180
  geex,
168
181
  provideGeex
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geexcode/geex-angular",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Angular adapter for Geex core.",
5
5
  "module": "dist/index.js",
6
6
  "main": "dist/index.cjs",