iocraft 0.2.3 → 0.2.4
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/README.md +1 -0
- package/dist/{chunk-MV4CFG6R.cjs → chunk-FPSHR5LZ.cjs} +91 -55
- package/dist/chunk-FPSHR5LZ.cjs.map +1 -0
- package/dist/{chunk-LNDE6TCH.js → chunk-UO5JQJD3.js} +98 -62
- package/dist/chunk-UO5JQJD3.js.map +1 -0
- package/dist/core.cjs +8 -2
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +117 -15
- package/dist/core.d.ts +117 -15
- package/dist/core.js +25 -19
- package/dist/helpers.cjs +2 -2
- package/dist/helpers.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-LNDE6TCH.js.map +0 -1
- package/dist/chunk-MV4CFG6R.cjs.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
On Progress...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;"use strict";
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -131,96 +131,131 @@ function generateRouterFacade(router) {
|
|
|
131
131
|
// src/core/injectors.ts
|
|
132
132
|
var _vue = require('vue');
|
|
133
133
|
|
|
134
|
-
// src/
|
|
134
|
+
// src/core/internals.ts
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
135
150
|
var SERVICE_METADATA = /* @__PURE__ */ Symbol("IOCRAFT_SERVICE_METADATA");
|
|
136
151
|
var RootRegistry = /* @__PURE__ */ new Map();
|
|
137
|
-
var
|
|
138
|
-
|
|
152
|
+
var lifecycleHookMap = {
|
|
153
|
+
onMounted: _vue.onMounted,
|
|
154
|
+
onUpdated: _vue.onUpdated,
|
|
155
|
+
onUnmounted: _vue.onUnmounted,
|
|
156
|
+
onBeforeMount: _vue.onBeforeMount,
|
|
157
|
+
onBeforeUpdate: _vue.onBeforeUpdate,
|
|
158
|
+
onBeforeUnmount: _vue.onBeforeUnmount,
|
|
159
|
+
onErrorCaptured: _vue.onErrorCaptured,
|
|
160
|
+
onRenderTracked: _vue.onRenderTracked,
|
|
161
|
+
onRenderTriggered: _vue.onRenderTriggered,
|
|
162
|
+
onActivated: _vue.onActivated,
|
|
163
|
+
onDeactivated: _vue.onDeactivated,
|
|
164
|
+
onServerPrefetch: _vue.onServerPrefetch,
|
|
165
|
+
onScopeDispose: _vue.onScopeDispose
|
|
166
|
+
};
|
|
167
|
+
function bindLifecycleHooks(instance) {
|
|
168
|
+
for (const key in lifecycleHookMap) {
|
|
169
|
+
const hookName = key;
|
|
170
|
+
const vueHook = lifecycleHookMap[hookName];
|
|
171
|
+
const handler = instance[hookName];
|
|
172
|
+
if (typeof handler === "function") {
|
|
173
|
+
vueHook(handler.bind(instance));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// src/core/utils.ts
|
|
179
|
+
function getServiceMetadata(target) {
|
|
139
180
|
const ctor = typeof target === "function" ? target : target.constructor;
|
|
140
181
|
const meta = ctor[SERVICE_METADATA];
|
|
141
182
|
if (!_optionalChain([meta, 'optionalAccess', _ => _.token])) {
|
|
142
|
-
throw new Error(`[IOCRAFT]: ${_optionalChain([ctor, 'optionalAccess', _2 => _2.name]) || "Unknown"} is not decorated with @
|
|
183
|
+
throw new Error(`[IOCRAFT]: ${_optionalChain([ctor, 'optionalAccess', _2 => _2.name]) || "Unknown"} is not decorated with @Register()`);
|
|
143
184
|
}
|
|
144
185
|
return meta;
|
|
145
186
|
}
|
|
187
|
+
function HasService(serviceClass) {
|
|
188
|
+
const meta = getServiceMetadata(serviceClass);
|
|
189
|
+
return RootRegistry.has(meta.token);
|
|
190
|
+
}
|
|
191
|
+
function IsFacade(_serviceInstance) {
|
|
192
|
+
}
|
|
146
193
|
|
|
147
194
|
// src/core/injectors.ts
|
|
148
|
-
function
|
|
149
|
-
const serviceMeta =
|
|
195
|
+
function obtain(serviceClass) {
|
|
196
|
+
const serviceMeta = getServiceMetadata(serviceClass);
|
|
150
197
|
if (!RootRegistry.has(serviceMeta.token)) {
|
|
151
198
|
RootRegistry.set(serviceMeta.token, new serviceClass());
|
|
152
199
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
200
|
+
const instance = RootRegistry.get(serviceMeta.token);
|
|
201
|
+
return createFacadeObj(instance);
|
|
202
|
+
}
|
|
203
|
+
function obtainRaw(serviceClass) {
|
|
204
|
+
const serviceMeta = getServiceMetadata(serviceClass);
|
|
205
|
+
if (!RootRegistry.has(serviceMeta.token)) {
|
|
206
|
+
RootRegistry.set(serviceMeta.token, new serviceClass());
|
|
159
207
|
}
|
|
160
|
-
return
|
|
208
|
+
return RootRegistry.get(serviceMeta.token);
|
|
161
209
|
}
|
|
162
|
-
function
|
|
163
|
-
let instance = new serviceClass();
|
|
210
|
+
function obtainRawInstance(serviceClass) {
|
|
164
211
|
const componentInstance = _vue.getCurrentInstance.call(void 0, );
|
|
212
|
+
let instance = new serviceClass();
|
|
165
213
|
if (componentInstance) {
|
|
166
|
-
|
|
167
|
-
console.error("[IocRaft]: Scope Dispose Run");
|
|
168
|
-
});
|
|
214
|
+
bindLifecycleHooks(instance);
|
|
169
215
|
}
|
|
170
216
|
return instance;
|
|
171
217
|
}
|
|
172
|
-
function
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
let ownsInstance = false;
|
|
178
|
-
if (ownsInstance) {
|
|
179
|
-
const componentInstance = _vue.getCurrentInstance.call(void 0, );
|
|
180
|
-
if (componentInstance) {
|
|
181
|
-
_vue.onScopeDispose.call(void 0, () => {
|
|
182
|
-
});
|
|
183
|
-
}
|
|
218
|
+
function obtainInstance(serviceClass) {
|
|
219
|
+
const componentInstance = _vue.getCurrentInstance.call(void 0, );
|
|
220
|
+
let instance = new serviceClass();
|
|
221
|
+
if (componentInstance) {
|
|
222
|
+
bindLifecycleHooks(instance);
|
|
184
223
|
}
|
|
224
|
+
return createFacadeObj(instance);
|
|
185
225
|
}
|
|
186
|
-
function
|
|
187
|
-
|
|
226
|
+
function exposeToContext(serviceInstance) {
|
|
227
|
+
const serviceMeta = getServiceMetadata(serviceInstance);
|
|
228
|
+
_vue.provide.call(void 0, serviceMeta.token, serviceInstance);
|
|
188
229
|
}
|
|
189
|
-
function
|
|
190
|
-
|
|
230
|
+
function obtainFromContext(serviceClass) {
|
|
231
|
+
const serviceMeta = getServiceMetadata(serviceClass);
|
|
232
|
+
return _vue.inject.call(void 0, serviceMeta.token);
|
|
191
233
|
}
|
|
192
234
|
|
|
193
235
|
// src/core/plugin.ts
|
|
194
236
|
|
|
195
|
-
var
|
|
237
|
+
var iocraft = (_app, options) => {
|
|
196
238
|
if (_optionalChain([options, 'optionalAccess', _3 => _3.router])) {
|
|
197
|
-
RootRegistry.set(
|
|
239
|
+
RootRegistry.set(getServiceMetadata(Nav).token, generateRouterFacade(options.router));
|
|
198
240
|
}
|
|
199
|
-
if (_optionalChain([options, 'optionalAccess', _4 => _4.
|
|
200
|
-
options.
|
|
201
|
-
const serviceMeta =
|
|
241
|
+
if (_optionalChain([options, 'optionalAccess', _4 => _4.eagerLoad])) {
|
|
242
|
+
options.eagerLoad.forEach((service) => {
|
|
243
|
+
const serviceMeta = getServiceMetadata(service);
|
|
202
244
|
if (!RootRegistry.has(serviceMeta.token)) {
|
|
203
245
|
RootRegistry.set(serviceMeta.token, new service());
|
|
204
246
|
}
|
|
205
|
-
const instance = RootRegistry.get(serviceMeta.token);
|
|
206
|
-
if (serviceMeta.facade) {
|
|
207
|
-
if (!TempRegistry.has(serviceMeta.token)) {
|
|
208
|
-
TempRegistry.set(serviceMeta.token, createFacadeObj(instance));
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
247
|
});
|
|
212
248
|
}
|
|
213
249
|
};
|
|
214
250
|
|
|
215
|
-
// src/core/
|
|
216
|
-
function
|
|
251
|
+
// src/core/register.ts
|
|
252
|
+
function Register() {
|
|
217
253
|
return function(constructor) {
|
|
218
254
|
if (_optionalChain([constructor, 'access', _5 => _5[SERVICE_METADATA], 'optionalAccess', _6 => _6.token])) {
|
|
219
255
|
return constructor;
|
|
220
256
|
}
|
|
221
257
|
constructor[SERVICE_METADATA] = {
|
|
222
|
-
token: /* @__PURE__ */ Symbol(`[IOCRAFT]: Service - ${constructor.name || "Anonymous"}`)
|
|
223
|
-
facade: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _7 => _7.facade]), () => ( true))
|
|
258
|
+
token: /* @__PURE__ */ Symbol(`[IOCRAFT]: Service - ${constructor.name || "Anonymous"}`)
|
|
224
259
|
};
|
|
225
260
|
return constructor;
|
|
226
261
|
};
|
|
@@ -230,9 +265,7 @@ function Provide(options) {
|
|
|
230
265
|
var Nav = class {
|
|
231
266
|
};
|
|
232
267
|
Nav = exports.Nav = __decorateClass([
|
|
233
|
-
|
|
234
|
-
facade: false
|
|
235
|
-
})
|
|
268
|
+
Register()
|
|
236
269
|
], Nav);
|
|
237
270
|
|
|
238
271
|
// src/helpers/Store.service.ts
|
|
@@ -275,5 +308,8 @@ function Store(initialState) {
|
|
|
275
308
|
|
|
276
309
|
|
|
277
310
|
|
|
278
|
-
|
|
279
|
-
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
exports.createFacadeObj = createFacadeObj; exports.generateRouterFacade = generateRouterFacade; exports.getServiceMetadata = getServiceMetadata; exports.HasService = HasService; exports.IsFacade = IsFacade; exports.obtain = obtain; exports.obtainRaw = obtainRaw; exports.obtainRawInstance = obtainRawInstance; exports.obtainInstance = obtainInstance; exports.exposeToContext = exposeToContext; exports.obtainFromContext = obtainFromContext; exports.Nav = Nav; exports.Store = Store; exports.iocraft = iocraft; exports.Register = Register;
|
|
315
|
+
//# sourceMappingURL=chunk-FPSHR5LZ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-FPSHR5LZ.cjs","../src/core/facade.ts","../src/core/injectors.ts","../src/core/internals.ts","../src/core/utils.ts","../src/core/plugin.ts","../src/core/register.ts","../src/helpers/Nav.service.ts","../src/helpers/Store.service.ts"],"names":[],"mappings":"AAAA,qmBAAY;AACZ,IAAI,UAAU,EAAE,MAAM,CAAC,cAAc;AACrC,IAAI,iBAAiB,EAAE,MAAM,CAAC,wBAAwB;AACtD,IAAI,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;AACzD,EAAE,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM;AAChF,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;AAC5D,IAAI,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC,MAAM,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM;AACpF,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC;AACpD,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA;ACTA,SAAS,MAAA,CAAO,GAAA,EAAmC,GAAA,EAA2B;AAC5E,EAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU;AAC3B,IAAA,OAAO,MAAA,CAAO,qBAAA,CAAsB,GAAG,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,GAAG,CAAA;AAC/B;AAEA,IAAM,WAAA,kBAAa,IAAI,GAAA,CAAI;AAAA,EACzB,GAAG,MAAA,CAAO,mBAAA,CAAoB,MAAA,CAAO,SAAS,CAAA;AAAA,EAC9C,GAAG,MAAA,CAAO,qBAAA,CAAsB,MAAA,CAAO,SAAS,CAAA;AAAA,EAChD,GAAG,MAAA,CAAO,mBAAA,CAAoB,QAAA,CAAS,SAAS,CAAA;AAAA,EAChD,GAAG,MAAA,CAAO,qBAAA,CAAsB,QAAA,CAAS,SAAS,CAAA;AAAA,EAClD,GAAG,MAAA,CAAO,mBAAA,CAAoB,KAAA,CAAM,SAAS,CAAA;AAAA,EAC7C,GAAG,MAAA,CAAO,qBAAA,CAAsB,KAAA,CAAM,SAAS;AACjD,CAAC,CAAA;AAED,SAAS,qBAAA,CACP,eAAA,EACA,SAAA,EACA;AACA,EAAA,MAAM,QAAA,EAAU,CAAC,GAAG,MAAA,CAAO,mBAAA,CAAoB,eAAe,CAAA,EAAG,GAAG,MAAA,CAAO,qBAAA,CAAsB,eAAe,CAAC,CAAA;AAEjH,EAAA,IAAA,CAAA,MAAW,IAAA,GAAO,OAAA,EAAS;AACzB,IAAA,GAAA,CAAI,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,EAAG,QAAA;AAE5B,IAAA,MAAM,WAAA,EAAa,MAAA,CAAO,wBAAA,CAAyB,eAAA,EAAiB,GAAG,CAAA;AAEvE,IAAA,GAAA,CAAI,OAAO,UAAA,CAAW,MAAA,IAAU,UAAA,EAAY;AAC1C,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,4BAAA,EAA+B,MAAA,CAAO,GAAG,CAAC,CAAA,sDAAA,CAAwD,CAAA;AAC/G,MAAA,QAAA;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,UAAA,CAAW,IAAA,GAAO,UAAA,CAAW,GAAA,EAAK;AACpC,MAAA,QAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,cAAA,CAAe,SAAA,EAAW,GAAA,EAAK;AAAA,MACpC,GAAA,CAAA,EAAM;AACJ,QAAA,OAAO,eAAA,CAAgB,GAAmC,CAAA;AAAA,MAC5D,CAAA;AAAA,MACA,GAAA,CAAI,CAAA,EAAG;AACL,QAAA,eAAA,CAAgB,GAAmC,EAAA,EAAI,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,UAAA,EAAY,IAAA;AAAA,MACZ,YAAA,EAAc;AAAA,IAChB,CAAC,CAAA;AAAA,EACH;AACF;AAEA,SAAS,sBAAA,CACP,eAAA,EACA,SAAA,EACA;AACA,EAAA,IAAI,aAAA,EAAe,MAAA,CAAO,cAAA,CAAe,eAAe,CAAA;AAExD,EAAA,MAAA,CAAO,aAAA,GAAgB,aAAA,IAAiB,MAAA,CAAO,SAAA,EAAW;AACxD,IAAA,MAAM,UAAA,EAAY,CAAC,GAAG,MAAA,CAAO,mBAAA,CAAoB,YAAY,CAAA,EAAG,GAAG,MAAA,CAAO,qBAAA,CAAsB,YAAY,CAAC,CAAA;AAE7G,IAAA,IAAA,CAAA,MAAW,IAAA,GAAO,SAAA,EAAW;AAC3B,MAAA,GAAA,CAAI,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,EAAG,QAAA;AAE5B,MAAA,GAAA,CAAI,UAAA,CAAW,GAAA,CAAI,GAAG,CAAA,EAAG,QAAA;AAEzB,MAAA,MAAM,WAAA,EAAa,MAAA,CAAO,wBAAA,CAAyB,YAAA,EAAc,GAAG,CAAA;AAEpE,MAAA,GAAA,CAAI,UAAA,CAAW,IAAA,GAAO,UAAA,CAAW,GAAA,EAAK;AACpC,QAAA,MAAA,CAAO,cAAA,CAAe,SAAA,EAAW,GAAA,EAAK;AAAA,UACpC,GAAA,EAAK,UAAA,CAAW,IAAA,EAAM,CAAA,EAAA,GAAM,UAAA,CAAW,GAAA,CAAK,IAAA,CAAK,eAAe,EAAA,EAAI,KAAA,CAAA;AAAA,UACpE,GAAA,EAAK,UAAA,CAAW,IAAA,EAAM,CAAC,CAAA,EAAA,GAAW,UAAA,CAAW,GAAA,CAAK,IAAA,CAAK,eAAA,EAAiB,CAAC,EAAA,EAAI,KAAA,CAAA;AAAA,UAC7E,UAAA,EAAY,IAAA;AAAA,UACZ,YAAA,EAAc;AAAA,QAChB,CAAC,CAAA;AAAA,MACH,EAAA,KAAA,GAAA,CAAW,OAAO,UAAA,CAAW,MAAA,IAAU,UAAA,EAAY;AACjD,QAAA,SAAA,CAAU,GAAG,EAAA,EAAI,UAAA,CAAW,KAAA,CAAM,IAAA,CAAK,eAAe,CAAA;AAAA,MACxD;AAAA,IACF;AAEA,IAAA,aAAA,EAAe,MAAA,CAAO,cAAA,CAAe,YAAY,CAAA;AAAA,EACnD;AACF;AAWO,SAAS,eAAA,CAAkC,eAAA,EAAsD;AACtG,EAAA,MAAM,UAAA,EAAY,CAAC,CAAA;AAEnB,EAAA,qBAAA,CAAsB,eAAA,EAAiB,SAAS,CAAA;AAChD,EAAA,sBAAA,CAAuB,eAAA,EAAiB,SAAS,CAAA;AACjD,EAAA,OAAO,SAAA;AACT;AAEO,SAAS,oBAAA,CAAqB,MAAA,EAAqC;AACxE,EAAA,OAAO;AAAA,IACL,IAAI,IAAA,CAAA,EAAO;AACT,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,IAAA,CAAA,EAAO;AACT,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,MAAA,CAAA,EAAS;AACX,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,MAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,KAAA,CAAA,EAAQ;AACV,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,KAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,IAAA,CAAA,EAAO;AACT,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,QAAA,CAAA,EAAW;AACb,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,QAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,OAAA,CAAA,EAAU;AACZ,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,OAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAI,IAAA,CAAA,EAAO;AACT,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,CAAM,IAAA;AAAA,IACnC,CAAA;AAAA,IACA,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAAA,IAC7B,OAAA,EAAS,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IACnC,EAAA,EAAI,MAAA,CAAO,EAAA,CAAG,IAAA,CAAK,MAAM,CAAA;AAAA,IACzB,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA;AAAA,IAC7B,OAAA,EAAS,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IACnC,OAAA,EAAS,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IACnC,SAAA,EAAW,MAAA,CAAO,SAAA,CAAU,IAAA,CAAK,MAAM,CAAA;AAAA,IACvC,QAAA,EAAU,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAAA;AAAA,IAGrC,UAAA,EAAY,MAAA,CAAO,UAAA,CAAW,IAAA,CAAK,MAAM,CAAA;AAAA,IACzC,aAAA,EAAe,MAAA,CAAO,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAAA,IAC/C,SAAA,EAAW,MAAA,CAAO,SAAA,CAAU,IAAA,CAAK,MAAM,CAAA;AAAA,IACvC,OAAA,EAAS,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA;AAAA,IAGnC,QAAA,EAAU,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA;AAAA,IACrC,WAAA,EAAa,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,MAAM,CAAA;AAAA,IAC3C,WAAA,EAAa,MAAA,CAAO,WAAA,CAAY,IAAA,CAAK,MAAM,CAAA;AAAA;AAAA,IAG3C,OAAA,EAAS,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA;AAAA,IACnC,IAAI,YAAA,CAAA,EAAe;AACjB,MAAA,OAAO,MAAA,CAAO,YAAA;AAAA,IAChB;AAAA,EACF,CAAA;AACF;ADxBA;AACA;AElIA,0BAAoD;AFoIpD;AACA;AGrIA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGK,IAAM,iBAAA,kBAAmB,MAAA,CAAO,0BAA0B,CAAA;AAC1D,IAAM,aAAA,kBAAe,IAAI,GAAA,CAAoB,CAAA;AAEpD,IAAM,iBAAA,EAAmB;AAAA,EACvB,yBAAA;AAAA,EACA,yBAAA;AAAA,EACA,6BAAA;AAAA,EACA,iCAAA;AAAA,EACA,mCAAA;AAAA,EACA,qCAAA;AAAA,EACA,qCAAA;AAAA,EACA,qCAAA;AAAA,EACA,yCAAA;AAAA,EACA,6BAAA;AAAA,EACA,iCAAA;AAAA,EACA,uCAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,kBAAA,CAAmB,QAAA,EAAe;AAChD,EAAA,IAAA,CAAA,MAAW,IAAA,GAAO,gBAAA,EAAkB;AAClC,IAAA,MAAM,SAAA,EAAW,GAAA;AACjB,IAAA,MAAM,QAAA,EAAU,gBAAA,CAAiB,QAAQ,CAAA;AAEzC,IAAA,MAAM,QAAA,EAAU,QAAA,CAAS,QAAQ,CAAA;AAEjC,IAAA,GAAA,CAAI,OAAO,QAAA,IAAY,UAAA,EAAY;AACjC,MAAA,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA,IAChC;AAAA,EACF;AACF;AHkIA;AACA;AIvKO,SAAS,kBAAA,CAAmB,MAAA,EAAqC;AACtE,EAAA,MAAM,KAAA,EAAO,OAAO,OAAA,IAAW,WAAA,EAAa,OAAA,EAAS,MAAA,CAAO,WAAA;AAE5D,EAAA,MAAM,KAAA,EAAQ,IAAA,CAAa,gBAAgB,CAAA;AAC3C,EAAA,GAAA,CAAI,iBAAC,IAAA,2BAAM,OAAA,EAAO;AAChB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,WAAA,kBAAc,IAAA,6BAAM,OAAA,GAAQ,SAAS,CAAA,kCAAA,CAAoC,CAAA;AAAA,EAC3F;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,UAAA,CAAW,YAAA,EAAkC;AAC3D,EAAA,MAAM,KAAA,EAAO,kBAAA,CAAmB,YAAY,CAAA;AAC5C,EAAA,OAAO,YAAA,CAAa,GAAA,CAAI,IAAA,CAAK,KAAK,CAAA;AACpC;AAEO,SAAS,QAAA,CAAS,gBAAA,EAA0B;AAAC;AJuKpD;AACA;AEnLO,SAAS,MAAA,CAAqC,YAAA,EAAiB;AACpE,EAAA,MAAM,YAAA,EAAc,kBAAA,CAAmB,YAAY,CAAA;AAEnD,EAAA,GAAA,CAAI,CAAC,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACxC,IAAA,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAA,EAAO,IAAI,YAAA,CAAa,CAAC,CAAA;AAAA,EACxD;AAEA,EAAA,MAAM,SAAA,EAAW,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA;AACnD,EAAA,OAAO,eAAA,CAAgB,QAAQ,CAAA;AACjC;AAUO,SAAS,SAAA,CAAwC,YAAA,EAAiB;AACvE,EAAA,MAAM,YAAA,EAAc,kBAAA,CAAmB,YAAY,CAAA;AAEnD,EAAA,GAAA,CAAI,CAAC,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACxC,IAAA,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAA,EAAO,IAAI,YAAA,CAAa,CAAC,CAAA;AAAA,EACxD;AAEA,EAAA,OAAO,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA;AAC3C;AAUO,SAAS,iBAAA,CAAgD,YAAA,EAAiB;AAC/E,EAAA,MAAM,kBAAA,EAAoB,qCAAA,CAAmB;AAC7C,EAAA,IAAI,SAAA,EAAW,IAAI,YAAA,CAAa,CAAA;AAChC,EAAA,GAAA,CAAI,iBAAA,EAAmB;AACrB,IAAA,kBAAA,CAAmB,QAAQ,CAAA;AAAA,EAC7B;AAEA,EAAA,OAAO,QAAA;AACT;AAUO,SAAS,cAAA,CAA6C,YAAA,EAAiB;AAC5E,EAAA,MAAM,kBAAA,EAAoB,qCAAA,CAAmB;AAC7C,EAAA,IAAI,SAAA,EAAW,IAAI,YAAA,CAAa,CAAA;AAEhC,EAAA,GAAA,CAAI,iBAAA,EAAmB;AACrB,IAAA,kBAAA,CAAmB,QAAQ,CAAA;AAAA,EAC7B;AAEA,EAAA,OAAO,eAAA,CAAgB,QAAQ,CAAA;AACjC;AASO,SAAS,eAAA,CAA8C,eAAA,EAAkC;AAC9F,EAAA,MAAM,YAAA,EAAc,kBAAA,CAAmB,eAAe,CAAA;AACtD,EAAA,0BAAA,WAAQ,CAAY,KAAA,EAAO,eAAe,CAAA;AAC5C;AAUO,SAAS,iBAAA,CAAgD,YAAA,EAAiB;AAC/E,EAAA,MAAM,YAAA,EAAc,kBAAA,CAAmB,YAAY,CAAA;AACnD,EAAA,OAAO,yBAAA,WAAwB,CAAY,KAAK,CAAA;AAClD;AFkIA;AACA;AK1OA;AAOO,IAAM,QAAA,EAAqD,CAAC,IAAA,EAAM,OAAA,EAAA,GAAqC;AAC5G,EAAA,GAAA,iBAAI,OAAA,6BAAS,QAAA,EAAQ;AACnB,IAAA,YAAA,CAAa,GAAA,CAAI,kBAAA,CAAmB,GAAG,CAAA,CAAE,KAAA,EAAO,oBAAA,CAAqB,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,EACtF;AAGA,EAAA,GAAA,iBAAI,OAAA,6BAAS,WAAA,EAAW;AACtB,IAAA,OAAA,CAAQ,SAAA,CAAU,OAAA,CAAQ,CAAA,OAAA,EAAA,GAAW;AACnC,MAAA,MAAM,YAAA,EAAc,kBAAA,CAAmB,OAAO,CAAA;AAE9C,MAAA,GAAA,CAAI,CAAC,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAK,CAAA,EAAG;AACxC,QAAA,YAAA,CAAa,GAAA,CAAI,WAAA,CAAY,KAAA,EAAO,IAAI,OAAA,CAAQ,CAAC,CAAA;AAAA,MACnD;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;ALmOA;AACA;AMjPO,SAAS,QAAA,CAAA,EAAW;AACzB,EAAA,OAAO,QAAA,CAAwC,WAAA,EAAgB;AAC7D,IAAA,GAAA,iBAAK,WAAA,qBAAoB,gBAAgB,CAAA,6BAAG,OAAA,EAAO;AACjD,MAAA,OAAO,WAAA;AAAA,IACT;AAGA,IAAC,WAAA,CAAoB,gBAAgB,EAAA,EAAI;AAAA,MACvC,KAAA,kBAAO,MAAA,CAAO,CAAA,qBAAA,EAAwB,WAAA,CAAY,KAAA,GAAQ,WAAW,CAAA,CAAA;AACvE,IAAA;AAEO,IAAA;AACT,EAAA;AACF;ANgP4F;AACA;AO3P3E;AAAC;AAAX;AADG,EAAA;AACG;APiQ+E;AACA;AQ9QtB;AACvD,EAAA;AACH,mBAAA;AAEG,IAAA;AAAC,IAAA;AAEwB,IAAA;AAAC,IAAA;AAEF,IAAA;AAAC,IAAA;AAEzB,IAAA;AAAC,IAAA;AAED,IAAA;AAAC,IAAA;AAEJ,IAAA;AAAC,IAAA;AAEK,IAAA;AAAC,IAAA;AAED,IAAA;AAAC,IAAA;AAEN,IAAA;AAAC,IAAA;AAEE,IAAA;AAAC,IAAA;AACf,EAAA;AACF;ARgR4F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-FPSHR5LZ.cjs","sourcesContent":[null,"import type { Router } from 'vue-router';\nimport type { ServiceConstructor } from './types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n ...Object.getOwnPropertyNames(Array.prototype),\n ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(serviceInstance: InstanceType<ServiceConstructor<T>>) {\n const targetObj = {};\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj;\n}\n\nexport function generateRouterFacade(router: Router): Record<string, any> {\n return {\n get path() {\n return router.currentRoute.value.path;\n },\n get name() {\n return router.currentRoute.value.name;\n },\n get params() {\n return router.currentRoute.value.params;\n },\n get query() {\n return router.currentRoute.value.query;\n },\n get hash() {\n return router.currentRoute.value.hash;\n },\n get fullPath() {\n return router.currentRoute.value.fullPath;\n },\n get matched() {\n return router.currentRoute.value.matched;\n },\n get meta() {\n return router.currentRoute.value.meta;\n },\n push: router.push.bind(router),\n replace: router.replace.bind(router),\n go: router.go.bind(router),\n back: router.back.bind(router),\n forward: router.forward.bind(router),\n resolve: router.resolve.bind(router),\n getRoutes: router.getRoutes.bind(router),\n hasRoute: router.hasRoute.bind(router),\n\n // Router guards\n beforeEach: router.beforeEach.bind(router),\n beforeResolve: router.beforeResolve.bind(router),\n afterEach: router.afterEach.bind(router),\n onError: router.onError.bind(router),\n\n // Dynamic routing\n addRoute: router.addRoute.bind(router),\n removeRoute: router.removeRoute.bind(router),\n clearRoutes: router.clearRoutes.bind(router),\n\n // State\n isReady: router.isReady.bind(router),\n get currentRoute() {\n return router.currentRoute;\n },\n };\n}\n","import { getCurrentInstance, inject, provide } from 'vue';\nimport { createFacadeObj } from './facade';\nimport { bindLifecycleHooks, RootRegistry } from './internals';\nimport type { ServiceConstructor } from './types';\nimport { getServiceMetadata } from './utils';\n\n/**\n * obtain Facade of a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtain<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMetadata(serviceClass);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new serviceClass());\n }\n\n const instance = RootRegistry.get(serviceMeta.token)!;\n return createFacadeObj(instance) as InstanceType<T>;\n}\n\n/**\n * obtain a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtainRaw<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMetadata(serviceClass);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new serviceClass());\n }\n\n return RootRegistry.get(serviceMeta.token) as InstanceType<T>;\n}\n\n/**\n * obtain a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtainRawInstance<T extends ServiceConstructor>(serviceClass: T) {\n const componentInstance = getCurrentInstance();\n let instance = new serviceClass();\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return instance as InstanceType<T>;\n}\n\n/**\n * obtain a facade of a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtainInstance<T extends ServiceConstructor>(serviceClass: T) {\n const componentInstance = getCurrentInstance();\n let instance = new serviceClass();\n\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return createFacadeObj(instance) as InstanceType<T>;\n}\n\n/**\n * Expose a service to context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {InstanceType<T>} serviceInstance\n */\nexport function exposeToContext<T extends ServiceConstructor>(serviceInstance: InstanceType<T>) {\n const serviceMeta = getServiceMetadata(serviceInstance);\n provide(serviceMeta.token, serviceInstance);\n}\n\n/**\n * obtain A Service From Context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {*}\n */\nexport function obtainFromContext<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMetadata(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n","import {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} from 'vue';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\n\nconst lifecycleHookMap = {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} as const;\n\nexport function bindLifecycleHooks(instance: any) {\n for (const key in lifecycleHookMap) {\n const hookName = key as keyof typeof lifecycleHookMap;\n const vueHook = lifecycleHookMap[hookName];\n\n const handler = instance[hookName];\n\n if (typeof handler === 'function') {\n vueHook(handler.bind(instance));\n }\n }\n}\n","import { RootRegistry, SERVICE_METADATA } from './internals';\nimport type { ServiceConstructor, ServiceMetadata } from './types';\n\n/**\n * get service metadata\n *\n * @export\n * @param {(ServiceConstructor | object)} target\n * @returns {ServiceMetadata}\n */\nexport function getServiceMetadata(target: ServiceConstructor | object) {\n const ctor = typeof target === 'function' ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || 'Unknown'} is not decorated with @Register()`);\n }\n return meta;\n}\n\nexport function HasService(serviceClass: ServiceConstructor) {\n const meta = getServiceMetadata(serviceClass);\n return RootRegistry.has(meta.token);\n}\n\nexport function IsFacade(_serviceInstance: object) {}\n\n","import { type FunctionPlugin } from 'vue';\nimport { Nav } from '../helpers';\nimport { generateRouterFacade } from './facade';\nimport { RootRegistry } from './internals';\nimport type { PluginOptions } from './types';\nimport { getServiceMetadata } from './utils';\n\nexport const iocraft: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMetadata(Nav).token, generateRouterFacade(options.router));\n }\n\n // Eagerly create Service instances\n if (options?.eagerLoad) {\n options.eagerLoad.forEach(service => {\n const serviceMeta = getServiceMetadata(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n });\n }\n};\n","import { SERVICE_METADATA } from './internals';\nimport type { ServiceConstructor, ServiceMetadata } from './types';\n\n/**\n * Registers A Class as Service\n *\n * @export\n * @returns {<C extends ServiceConstructor>(constructor: C) => C}\n */\nexport function Register() {\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n // Add more metadata here if needed\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || 'Anonymous'}`),\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n","import type { RouteLocationNormalizedGeneric, Router } from 'vue-router';\nimport { Register } from '../core';\n\nexport interface Nav\n extends\n Omit<Router, 'install' | 'options' | 'currentRoute'>,\n Pick<\n RouteLocationNormalizedGeneric,\n 'path' | 'name' | 'params' | 'query' | 'hash' | 'fullPath' | 'matched' | 'meta'\n > {}\n\n@Register()\nexport class Nav {}\n","export function Store<T extends Record<string, any>>(initialState: T) {\n return class {\n state = initialState;\n\n getState() {}\n\n setState(_partialState: Partial<T>) {}\n\n select<K extends keyof T>(_key: K) {}\n\n selectAll(){}\n\n computed() {}\n\n watch() {}\n\n watchEffect() {}\n\n reset(): void {}\n\n onInit() {}\n\n onDispose() {}\n };\n}\n"]}
|
|
@@ -129,98 +129,133 @@ function generateRouterFacade(router) {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// src/core/injectors.ts
|
|
132
|
-
import { getCurrentInstance, inject,
|
|
132
|
+
import { getCurrentInstance, inject, provide } from "vue";
|
|
133
133
|
|
|
134
|
-
// src/
|
|
134
|
+
// src/core/internals.ts
|
|
135
|
+
import {
|
|
136
|
+
onMounted,
|
|
137
|
+
onUpdated,
|
|
138
|
+
onUnmounted,
|
|
139
|
+
onBeforeMount,
|
|
140
|
+
onBeforeUpdate,
|
|
141
|
+
onBeforeUnmount,
|
|
142
|
+
onErrorCaptured,
|
|
143
|
+
onRenderTracked,
|
|
144
|
+
onRenderTriggered,
|
|
145
|
+
onActivated,
|
|
146
|
+
onDeactivated,
|
|
147
|
+
onServerPrefetch,
|
|
148
|
+
onScopeDispose
|
|
149
|
+
} from "vue";
|
|
135
150
|
var SERVICE_METADATA = /* @__PURE__ */ Symbol("IOCRAFT_SERVICE_METADATA");
|
|
136
151
|
var RootRegistry = /* @__PURE__ */ new Map();
|
|
137
|
-
var
|
|
138
|
-
|
|
152
|
+
var lifecycleHookMap = {
|
|
153
|
+
onMounted,
|
|
154
|
+
onUpdated,
|
|
155
|
+
onUnmounted,
|
|
156
|
+
onBeforeMount,
|
|
157
|
+
onBeforeUpdate,
|
|
158
|
+
onBeforeUnmount,
|
|
159
|
+
onErrorCaptured,
|
|
160
|
+
onRenderTracked,
|
|
161
|
+
onRenderTriggered,
|
|
162
|
+
onActivated,
|
|
163
|
+
onDeactivated,
|
|
164
|
+
onServerPrefetch,
|
|
165
|
+
onScopeDispose
|
|
166
|
+
};
|
|
167
|
+
function bindLifecycleHooks(instance) {
|
|
168
|
+
for (const key in lifecycleHookMap) {
|
|
169
|
+
const hookName = key;
|
|
170
|
+
const vueHook = lifecycleHookMap[hookName];
|
|
171
|
+
const handler = instance[hookName];
|
|
172
|
+
if (typeof handler === "function") {
|
|
173
|
+
vueHook(handler.bind(instance));
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// src/core/utils.ts
|
|
179
|
+
function getServiceMetadata(target) {
|
|
139
180
|
const ctor = typeof target === "function" ? target : target.constructor;
|
|
140
181
|
const meta = ctor[SERVICE_METADATA];
|
|
141
182
|
if (!meta?.token) {
|
|
142
|
-
throw new Error(`[IOCRAFT]: ${ctor?.name || "Unknown"} is not decorated with @
|
|
183
|
+
throw new Error(`[IOCRAFT]: ${ctor?.name || "Unknown"} is not decorated with @Register()`);
|
|
143
184
|
}
|
|
144
185
|
return meta;
|
|
145
186
|
}
|
|
187
|
+
function HasService(serviceClass) {
|
|
188
|
+
const meta = getServiceMetadata(serviceClass);
|
|
189
|
+
return RootRegistry.has(meta.token);
|
|
190
|
+
}
|
|
191
|
+
function IsFacade(_serviceInstance) {
|
|
192
|
+
}
|
|
146
193
|
|
|
147
194
|
// src/core/injectors.ts
|
|
148
|
-
function
|
|
149
|
-
const serviceMeta =
|
|
195
|
+
function obtain(serviceClass) {
|
|
196
|
+
const serviceMeta = getServiceMetadata(serviceClass);
|
|
150
197
|
if (!RootRegistry.has(serviceMeta.token)) {
|
|
151
198
|
RootRegistry.set(serviceMeta.token, new serviceClass());
|
|
152
199
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
200
|
+
const instance = RootRegistry.get(serviceMeta.token);
|
|
201
|
+
return createFacadeObj(instance);
|
|
202
|
+
}
|
|
203
|
+
function obtainRaw(serviceClass) {
|
|
204
|
+
const serviceMeta = getServiceMetadata(serviceClass);
|
|
205
|
+
if (!RootRegistry.has(serviceMeta.token)) {
|
|
206
|
+
RootRegistry.set(serviceMeta.token, new serviceClass());
|
|
159
207
|
}
|
|
160
|
-
return
|
|
208
|
+
return RootRegistry.get(serviceMeta.token);
|
|
161
209
|
}
|
|
162
|
-
function
|
|
163
|
-
let instance = new serviceClass();
|
|
210
|
+
function obtainRawInstance(serviceClass) {
|
|
164
211
|
const componentInstance = getCurrentInstance();
|
|
212
|
+
let instance = new serviceClass();
|
|
165
213
|
if (componentInstance) {
|
|
166
|
-
|
|
167
|
-
console.error("[IocRaft]: Scope Dispose Run");
|
|
168
|
-
});
|
|
214
|
+
bindLifecycleHooks(instance);
|
|
169
215
|
}
|
|
170
216
|
return instance;
|
|
171
217
|
}
|
|
172
|
-
function
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
let ownsInstance = false;
|
|
178
|
-
if (ownsInstance) {
|
|
179
|
-
const componentInstance = getCurrentInstance();
|
|
180
|
-
if (componentInstance) {
|
|
181
|
-
onScopeDispose(() => {
|
|
182
|
-
});
|
|
183
|
-
}
|
|
218
|
+
function obtainInstance(serviceClass) {
|
|
219
|
+
const componentInstance = getCurrentInstance();
|
|
220
|
+
let instance = new serviceClass();
|
|
221
|
+
if (componentInstance) {
|
|
222
|
+
bindLifecycleHooks(instance);
|
|
184
223
|
}
|
|
224
|
+
return createFacadeObj(instance);
|
|
185
225
|
}
|
|
186
|
-
function
|
|
187
|
-
|
|
226
|
+
function exposeToContext(serviceInstance) {
|
|
227
|
+
const serviceMeta = getServiceMetadata(serviceInstance);
|
|
228
|
+
provide(serviceMeta.token, serviceInstance);
|
|
188
229
|
}
|
|
189
|
-
function
|
|
190
|
-
|
|
230
|
+
function obtainFromContext(serviceClass) {
|
|
231
|
+
const serviceMeta = getServiceMetadata(serviceClass);
|
|
232
|
+
return inject(serviceMeta.token);
|
|
191
233
|
}
|
|
192
234
|
|
|
193
235
|
// src/core/plugin.ts
|
|
194
236
|
import "vue";
|
|
195
|
-
var
|
|
237
|
+
var iocraft = (_app, options) => {
|
|
196
238
|
if (options?.router) {
|
|
197
|
-
RootRegistry.set(
|
|
239
|
+
RootRegistry.set(getServiceMetadata(Nav).token, generateRouterFacade(options.router));
|
|
198
240
|
}
|
|
199
|
-
if (options?.
|
|
200
|
-
options.
|
|
201
|
-
const serviceMeta =
|
|
241
|
+
if (options?.eagerLoad) {
|
|
242
|
+
options.eagerLoad.forEach((service) => {
|
|
243
|
+
const serviceMeta = getServiceMetadata(service);
|
|
202
244
|
if (!RootRegistry.has(serviceMeta.token)) {
|
|
203
245
|
RootRegistry.set(serviceMeta.token, new service());
|
|
204
246
|
}
|
|
205
|
-
const instance = RootRegistry.get(serviceMeta.token);
|
|
206
|
-
if (serviceMeta.facade) {
|
|
207
|
-
if (!TempRegistry.has(serviceMeta.token)) {
|
|
208
|
-
TempRegistry.set(serviceMeta.token, createFacadeObj(instance));
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
247
|
});
|
|
212
248
|
}
|
|
213
249
|
};
|
|
214
250
|
|
|
215
|
-
// src/core/
|
|
216
|
-
function
|
|
251
|
+
// src/core/register.ts
|
|
252
|
+
function Register() {
|
|
217
253
|
return function(constructor) {
|
|
218
254
|
if (constructor[SERVICE_METADATA]?.token) {
|
|
219
255
|
return constructor;
|
|
220
256
|
}
|
|
221
257
|
constructor[SERVICE_METADATA] = {
|
|
222
|
-
token: /* @__PURE__ */ Symbol(`[IOCRAFT]: Service - ${constructor.name || "Anonymous"}`)
|
|
223
|
-
facade: options?.facade ?? true
|
|
258
|
+
token: /* @__PURE__ */ Symbol(`[IOCRAFT]: Service - ${constructor.name || "Anonymous"}`)
|
|
224
259
|
};
|
|
225
260
|
return constructor;
|
|
226
261
|
};
|
|
@@ -230,9 +265,7 @@ function Provide(options) {
|
|
|
230
265
|
var Nav = class {
|
|
231
266
|
};
|
|
232
267
|
Nav = __decorateClass([
|
|
233
|
-
|
|
234
|
-
facade: false
|
|
235
|
-
})
|
|
268
|
+
Register()
|
|
236
269
|
], Nav);
|
|
237
270
|
|
|
238
271
|
// src/helpers/Store.service.ts
|
|
@@ -265,15 +298,18 @@ function Store(initialState) {
|
|
|
265
298
|
export {
|
|
266
299
|
createFacadeObj,
|
|
267
300
|
generateRouterFacade,
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
301
|
+
getServiceMetadata,
|
|
302
|
+
HasService,
|
|
303
|
+
IsFacade,
|
|
304
|
+
obtain,
|
|
305
|
+
obtainRaw,
|
|
306
|
+
obtainRawInstance,
|
|
307
|
+
obtainInstance,
|
|
308
|
+
exposeToContext,
|
|
309
|
+
obtainFromContext,
|
|
274
310
|
Nav,
|
|
275
311
|
Store,
|
|
276
|
-
|
|
277
|
-
|
|
312
|
+
iocraft,
|
|
313
|
+
Register
|
|
278
314
|
};
|
|
279
|
-
//# sourceMappingURL=chunk-
|
|
315
|
+
//# sourceMappingURL=chunk-UO5JQJD3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/facade.ts","../src/core/injectors.ts","../src/core/internals.ts","../src/core/utils.ts","../src/core/plugin.ts","../src/core/register.ts","../src/helpers/Nav.service.ts","../src/helpers/Store.service.ts"],"sourcesContent":["import type { Router } from 'vue-router';\nimport type { ServiceConstructor } from './types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n ...Object.getOwnPropertyNames(Array.prototype),\n ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(serviceInstance: InstanceType<ServiceConstructor<T>>) {\n const targetObj = {};\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj;\n}\n\nexport function generateRouterFacade(router: Router): Record<string, any> {\n return {\n get path() {\n return router.currentRoute.value.path;\n },\n get name() {\n return router.currentRoute.value.name;\n },\n get params() {\n return router.currentRoute.value.params;\n },\n get query() {\n return router.currentRoute.value.query;\n },\n get hash() {\n return router.currentRoute.value.hash;\n },\n get fullPath() {\n return router.currentRoute.value.fullPath;\n },\n get matched() {\n return router.currentRoute.value.matched;\n },\n get meta() {\n return router.currentRoute.value.meta;\n },\n push: router.push.bind(router),\n replace: router.replace.bind(router),\n go: router.go.bind(router),\n back: router.back.bind(router),\n forward: router.forward.bind(router),\n resolve: router.resolve.bind(router),\n getRoutes: router.getRoutes.bind(router),\n hasRoute: router.hasRoute.bind(router),\n\n // Router guards\n beforeEach: router.beforeEach.bind(router),\n beforeResolve: router.beforeResolve.bind(router),\n afterEach: router.afterEach.bind(router),\n onError: router.onError.bind(router),\n\n // Dynamic routing\n addRoute: router.addRoute.bind(router),\n removeRoute: router.removeRoute.bind(router),\n clearRoutes: router.clearRoutes.bind(router),\n\n // State\n isReady: router.isReady.bind(router),\n get currentRoute() {\n return router.currentRoute;\n },\n };\n}\n","import { getCurrentInstance, inject, provide } from 'vue';\nimport { createFacadeObj } from './facade';\nimport { bindLifecycleHooks, RootRegistry } from './internals';\nimport type { ServiceConstructor } from './types';\nimport { getServiceMetadata } from './utils';\n\n/**\n * obtain Facade of a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtain<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMetadata(serviceClass);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new serviceClass());\n }\n\n const instance = RootRegistry.get(serviceMeta.token)!;\n return createFacadeObj(instance) as InstanceType<T>;\n}\n\n/**\n * obtain a global singleton service From Root Registry\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtainRaw<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMetadata(serviceClass);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new serviceClass());\n }\n\n return RootRegistry.get(serviceMeta.token) as InstanceType<T>;\n}\n\n/**\n * obtain a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtainRawInstance<T extends ServiceConstructor>(serviceClass: T) {\n const componentInstance = getCurrentInstance();\n let instance = new serviceClass();\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return instance as InstanceType<T>;\n}\n\n/**\n * obtain a facade of a new Service Instance\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function obtainInstance<T extends ServiceConstructor>(serviceClass: T) {\n const componentInstance = getCurrentInstance();\n let instance = new serviceClass();\n\n if (componentInstance) {\n bindLifecycleHooks(instance);\n }\n\n return createFacadeObj(instance) as InstanceType<T>;\n}\n\n/**\n * Expose a service to context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {InstanceType<T>} serviceInstance\n */\nexport function exposeToContext<T extends ServiceConstructor>(serviceInstance: InstanceType<T>) {\n const serviceMeta = getServiceMetadata(serviceInstance);\n provide(serviceMeta.token, serviceInstance);\n}\n\n/**\n * obtain A Service From Context\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {*}\n */\nexport function obtainFromContext<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMetadata(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n","import {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} from 'vue';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\n\nconst lifecycleHookMap = {\n onMounted,\n onUpdated,\n onUnmounted,\n onBeforeMount,\n onBeforeUpdate,\n onBeforeUnmount,\n onErrorCaptured,\n onRenderTracked,\n onRenderTriggered,\n onActivated,\n onDeactivated,\n onServerPrefetch,\n onScopeDispose,\n} as const;\n\nexport function bindLifecycleHooks(instance: any) {\n for (const key in lifecycleHookMap) {\n const hookName = key as keyof typeof lifecycleHookMap;\n const vueHook = lifecycleHookMap[hookName];\n\n const handler = instance[hookName];\n\n if (typeof handler === 'function') {\n vueHook(handler.bind(instance));\n }\n }\n}\n","import { RootRegistry, SERVICE_METADATA } from './internals';\nimport type { ServiceConstructor, ServiceMetadata } from './types';\n\n/**\n * get service metadata\n *\n * @export\n * @param {(ServiceConstructor | object)} target\n * @returns {ServiceMetadata}\n */\nexport function getServiceMetadata(target: ServiceConstructor | object) {\n const ctor = typeof target === 'function' ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || 'Unknown'} is not decorated with @Register()`);\n }\n return meta;\n}\n\nexport function HasService(serviceClass: ServiceConstructor) {\n const meta = getServiceMetadata(serviceClass);\n return RootRegistry.has(meta.token);\n}\n\nexport function IsFacade(_serviceInstance: object) {}\n\n","import { type FunctionPlugin } from 'vue';\nimport { Nav } from '../helpers';\nimport { generateRouterFacade } from './facade';\nimport { RootRegistry } from './internals';\nimport type { PluginOptions } from './types';\nimport { getServiceMetadata } from './utils';\n\nexport const iocraft: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMetadata(Nav).token, generateRouterFacade(options.router));\n }\n\n // Eagerly create Service instances\n if (options?.eagerLoad) {\n options.eagerLoad.forEach(service => {\n const serviceMeta = getServiceMetadata(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n });\n }\n};\n","import { SERVICE_METADATA } from './internals';\nimport type { ServiceConstructor, ServiceMetadata } from './types';\n\n/**\n * Registers A Class as Service\n *\n * @export\n * @returns {<C extends ServiceConstructor>(constructor: C) => C}\n */\nexport function Register() {\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n // Add more metadata here if needed\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || 'Anonymous'}`),\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n","import type { RouteLocationNormalizedGeneric, Router } from 'vue-router';\nimport { Register } from '../core';\n\nexport interface Nav\n extends\n Omit<Router, 'install' | 'options' | 'currentRoute'>,\n Pick<\n RouteLocationNormalizedGeneric,\n 'path' | 'name' | 'params' | 'query' | 'hash' | 'fullPath' | 'matched' | 'meta'\n > {}\n\n@Register()\nexport class Nav {}\n","export function Store<T extends Record<string, any>>(initialState: T) {\n return class {\n state = initialState;\n\n getState() {}\n\n setState(_partialState: Partial<T>) {}\n\n select<K extends keyof T>(_key: K) {}\n\n selectAll(){}\n\n computed() {}\n\n watch() {}\n\n watchEffect() {}\n\n reset(): void {}\n\n onInit() {}\n\n onDispose() {}\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/core.cjs
CHANGED
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var _chunkMV4CFG6Rcjs = require('./chunk-MV4CFG6R.cjs');
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
|
|
16
|
+
var _chunkFPSHR5LZcjs = require('./chunk-FPSHR5LZ.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
@@ -22,5 +22,11 @@ var _chunkMV4CFG6Rcjs = require('./chunk-MV4CFG6R.cjs');
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
exports.HasService = _chunkFPSHR5LZcjs.HasService; exports.IsFacade = _chunkFPSHR5LZcjs.IsFacade; exports.Register = _chunkFPSHR5LZcjs.Register; exports.createFacadeObj = _chunkFPSHR5LZcjs.createFacadeObj; exports.exposeToContext = _chunkFPSHR5LZcjs.exposeToContext; exports.generateRouterFacade = _chunkFPSHR5LZcjs.generateRouterFacade; exports.getServiceMetadata = _chunkFPSHR5LZcjs.getServiceMetadata; exports.iocraft = _chunkFPSHR5LZcjs.iocraft; exports.obtain = _chunkFPSHR5LZcjs.obtain; exports.obtainFromContext = _chunkFPSHR5LZcjs.obtainFromContext; exports.obtainInstance = _chunkFPSHR5LZcjs.obtainInstance; exports.obtainRaw = _chunkFPSHR5LZcjs.obtainRaw; exports.obtainRawInstance = _chunkFPSHR5LZcjs.obtainRawInstance;
|
|
26
32
|
//# sourceMappingURL=core.cjs.map
|
package/dist/core.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/iocraft/iocraft/packages/iocraft/dist/core.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/iocraft/iocraft/packages/iocraft/dist/core.cjs"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,0tBAAC","file":"/home/runner/work/iocraft/iocraft/packages/iocraft/dist/core.cjs"}
|
package/dist/core.d.cts
CHANGED
|
@@ -1,15 +1,68 @@
|
|
|
1
1
|
import { Router } from 'vue-router';
|
|
2
2
|
import { FunctionPlugin } from 'vue';
|
|
3
3
|
|
|
4
|
-
type ServiceConstructor<T extends object = object> = new (
|
|
4
|
+
type ServiceConstructor<T extends object = object> = new () => T;
|
|
5
5
|
|
|
6
6
|
type PluginOptions = {
|
|
7
|
-
|
|
7
|
+
eagerLoad: ServiceConstructor[];
|
|
8
8
|
router: Router;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
type ServiceMetadata = {
|
|
12
|
+
token: symbol;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
interface OnMounted {
|
|
17
|
+
onMounted(): void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface OnUpdated {
|
|
21
|
+
onUpdated(): void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface OnUnmounted {
|
|
25
|
+
onUnmounted(): void;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
interface OnBeforeMount {
|
|
29
|
+
onBeforeMount(): void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface OnBeforeUpdate {
|
|
33
|
+
onBeforeUpdate(): void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface OnBeforeUnmount {
|
|
37
|
+
onBeforeUnmount(): void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface OnErrorCaptured {
|
|
41
|
+
onErrorCaptured(): void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
interface OnRenderTracked {
|
|
45
|
+
onRenderTracked(): void;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
interface OnRenderTriggered {
|
|
49
|
+
onRenderTriggered(): void;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface OnActivated {
|
|
53
|
+
onActivated(): void;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
interface OnDeactivated {
|
|
57
|
+
onDeactivated(): void;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
interface OnServerPrefetch {
|
|
61
|
+
onServerPrefetch(): void;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface OnScopeDispose {
|
|
65
|
+
onScopeDispose(): void;
|
|
13
66
|
}
|
|
14
67
|
|
|
15
68
|
/**
|
|
@@ -25,29 +78,78 @@ declare function createFacadeObj<T extends object>(serviceInstance: InstanceType
|
|
|
25
78
|
declare function generateRouterFacade(router: Router): Record<string, any>;
|
|
26
79
|
|
|
27
80
|
/**
|
|
28
|
-
*
|
|
81
|
+
* obtain Facade of a global singleton service From Root Registry
|
|
82
|
+
*
|
|
83
|
+
* @export
|
|
84
|
+
* @template {ServiceConstructor} T
|
|
85
|
+
* @param {T} serviceClass
|
|
86
|
+
* @returns {InstanceType<T>}
|
|
87
|
+
*/
|
|
88
|
+
declare function obtain<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
89
|
+
/**
|
|
90
|
+
* obtain a global singleton service From Root Registry
|
|
91
|
+
*
|
|
92
|
+
* @export
|
|
93
|
+
* @template {ServiceConstructor} T
|
|
94
|
+
* @param {T} serviceClass
|
|
95
|
+
* @returns {InstanceType<T>}
|
|
96
|
+
*/
|
|
97
|
+
declare function obtainRaw<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
98
|
+
/**
|
|
99
|
+
* obtain a new Service Instance
|
|
100
|
+
*
|
|
101
|
+
* @export
|
|
102
|
+
* @template {ServiceConstructor} T
|
|
103
|
+
* @param {T} serviceClass
|
|
104
|
+
* @returns {InstanceType<T>}
|
|
105
|
+
*/
|
|
106
|
+
declare function obtainRawInstance<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
107
|
+
/**
|
|
108
|
+
* obtain a facade of a new Service Instance
|
|
29
109
|
*
|
|
30
110
|
* @export
|
|
31
111
|
* @template {ServiceConstructor} T
|
|
32
112
|
* @param {T} serviceClass
|
|
33
113
|
* @returns {InstanceType<T>}
|
|
34
114
|
*/
|
|
35
|
-
declare function
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
115
|
+
declare function obtainInstance<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
116
|
+
/**
|
|
117
|
+
* Expose a service to context
|
|
118
|
+
*
|
|
119
|
+
* @export
|
|
120
|
+
* @template {ServiceConstructor} T
|
|
121
|
+
* @param {InstanceType<T>} serviceInstance
|
|
122
|
+
*/
|
|
123
|
+
declare function exposeToContext<T extends ServiceConstructor>(serviceInstance: InstanceType<T>): void;
|
|
124
|
+
/**
|
|
125
|
+
* obtain A Service From Context
|
|
126
|
+
*
|
|
127
|
+
* @export
|
|
128
|
+
* @template {ServiceConstructor} T
|
|
129
|
+
* @param {T} serviceClass
|
|
130
|
+
* @returns {*}
|
|
131
|
+
*/
|
|
132
|
+
declare function obtainFromContext<T extends ServiceConstructor>(serviceClass: T): InstanceType<T> | undefined;
|
|
41
133
|
|
|
42
|
-
declare const
|
|
134
|
+
declare const iocraft: FunctionPlugin<[Partial<PluginOptions>?]>;
|
|
43
135
|
|
|
44
136
|
/**
|
|
45
137
|
* Registers A Class as Service
|
|
46
138
|
*
|
|
47
139
|
* @export
|
|
48
|
-
* @param {?ServiceOptions} [options]
|
|
49
140
|
* @returns {<C extends ServiceConstructor>(constructor: C) => C}
|
|
50
141
|
*/
|
|
51
|
-
declare function
|
|
142
|
+
declare function Register(): <C extends ServiceConstructor>(constructor: C) => C;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* get service metadata
|
|
146
|
+
*
|
|
147
|
+
* @export
|
|
148
|
+
* @param {(ServiceConstructor | object)} target
|
|
149
|
+
* @returns {ServiceMetadata}
|
|
150
|
+
*/
|
|
151
|
+
declare function getServiceMetadata(target: ServiceConstructor | object): ServiceMetadata;
|
|
152
|
+
declare function HasService(serviceClass: ServiceConstructor): boolean;
|
|
153
|
+
declare function IsFacade(_serviceInstance: object): void;
|
|
52
154
|
|
|
53
|
-
export {
|
|
155
|
+
export { HasService, IsFacade, type OnActivated, type OnBeforeMount, type OnBeforeUnmount, type OnBeforeUpdate, type OnDeactivated, type OnErrorCaptured, type OnMounted, type OnRenderTracked, type OnRenderTriggered, type OnScopeDispose, type OnServerPrefetch, type OnUnmounted, type OnUpdated, Register, createFacadeObj, exposeToContext, generateRouterFacade, getServiceMetadata, iocraft, obtain, obtainFromContext, obtainInstance, obtainRaw, obtainRawInstance };
|
package/dist/core.d.ts
CHANGED
|
@@ -1,15 +1,68 @@
|
|
|
1
1
|
import { Router } from 'vue-router';
|
|
2
2
|
import { FunctionPlugin } from 'vue';
|
|
3
3
|
|
|
4
|
-
type ServiceConstructor<T extends object = object> = new (
|
|
4
|
+
type ServiceConstructor<T extends object = object> = new () => T;
|
|
5
5
|
|
|
6
6
|
type PluginOptions = {
|
|
7
|
-
|
|
7
|
+
eagerLoad: ServiceConstructor[];
|
|
8
8
|
router: Router;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
type ServiceMetadata = {
|
|
12
|
+
token: symbol;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
interface OnMounted {
|
|
17
|
+
onMounted(): void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface OnUpdated {
|
|
21
|
+
onUpdated(): void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface OnUnmounted {
|
|
25
|
+
onUnmounted(): void;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
interface OnBeforeMount {
|
|
29
|
+
onBeforeMount(): void;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
interface OnBeforeUpdate {
|
|
33
|
+
onBeforeUpdate(): void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface OnBeforeUnmount {
|
|
37
|
+
onBeforeUnmount(): void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface OnErrorCaptured {
|
|
41
|
+
onErrorCaptured(): void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
interface OnRenderTracked {
|
|
45
|
+
onRenderTracked(): void;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
interface OnRenderTriggered {
|
|
49
|
+
onRenderTriggered(): void;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
interface OnActivated {
|
|
53
|
+
onActivated(): void;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
interface OnDeactivated {
|
|
57
|
+
onDeactivated(): void;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
interface OnServerPrefetch {
|
|
61
|
+
onServerPrefetch(): void;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface OnScopeDispose {
|
|
65
|
+
onScopeDispose(): void;
|
|
13
66
|
}
|
|
14
67
|
|
|
15
68
|
/**
|
|
@@ -25,29 +78,78 @@ declare function createFacadeObj<T extends object>(serviceInstance: InstanceType
|
|
|
25
78
|
declare function generateRouterFacade(router: Router): Record<string, any>;
|
|
26
79
|
|
|
27
80
|
/**
|
|
28
|
-
*
|
|
81
|
+
* obtain Facade of a global singleton service From Root Registry
|
|
82
|
+
*
|
|
83
|
+
* @export
|
|
84
|
+
* @template {ServiceConstructor} T
|
|
85
|
+
* @param {T} serviceClass
|
|
86
|
+
* @returns {InstanceType<T>}
|
|
87
|
+
*/
|
|
88
|
+
declare function obtain<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
89
|
+
/**
|
|
90
|
+
* obtain a global singleton service From Root Registry
|
|
91
|
+
*
|
|
92
|
+
* @export
|
|
93
|
+
* @template {ServiceConstructor} T
|
|
94
|
+
* @param {T} serviceClass
|
|
95
|
+
* @returns {InstanceType<T>}
|
|
96
|
+
*/
|
|
97
|
+
declare function obtainRaw<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
98
|
+
/**
|
|
99
|
+
* obtain a new Service Instance
|
|
100
|
+
*
|
|
101
|
+
* @export
|
|
102
|
+
* @template {ServiceConstructor} T
|
|
103
|
+
* @param {T} serviceClass
|
|
104
|
+
* @returns {InstanceType<T>}
|
|
105
|
+
*/
|
|
106
|
+
declare function obtainRawInstance<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
107
|
+
/**
|
|
108
|
+
* obtain a facade of a new Service Instance
|
|
29
109
|
*
|
|
30
110
|
* @export
|
|
31
111
|
* @template {ServiceConstructor} T
|
|
32
112
|
* @param {T} serviceClass
|
|
33
113
|
* @returns {InstanceType<T>}
|
|
34
114
|
*/
|
|
35
|
-
declare function
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
115
|
+
declare function obtainInstance<T extends ServiceConstructor>(serviceClass: T): InstanceType<T>;
|
|
116
|
+
/**
|
|
117
|
+
* Expose a service to context
|
|
118
|
+
*
|
|
119
|
+
* @export
|
|
120
|
+
* @template {ServiceConstructor} T
|
|
121
|
+
* @param {InstanceType<T>} serviceInstance
|
|
122
|
+
*/
|
|
123
|
+
declare function exposeToContext<T extends ServiceConstructor>(serviceInstance: InstanceType<T>): void;
|
|
124
|
+
/**
|
|
125
|
+
* obtain A Service From Context
|
|
126
|
+
*
|
|
127
|
+
* @export
|
|
128
|
+
* @template {ServiceConstructor} T
|
|
129
|
+
* @param {T} serviceClass
|
|
130
|
+
* @returns {*}
|
|
131
|
+
*/
|
|
132
|
+
declare function obtainFromContext<T extends ServiceConstructor>(serviceClass: T): InstanceType<T> | undefined;
|
|
41
133
|
|
|
42
|
-
declare const
|
|
134
|
+
declare const iocraft: FunctionPlugin<[Partial<PluginOptions>?]>;
|
|
43
135
|
|
|
44
136
|
/**
|
|
45
137
|
* Registers A Class as Service
|
|
46
138
|
*
|
|
47
139
|
* @export
|
|
48
|
-
* @param {?ServiceOptions} [options]
|
|
49
140
|
* @returns {<C extends ServiceConstructor>(constructor: C) => C}
|
|
50
141
|
*/
|
|
51
|
-
declare function
|
|
142
|
+
declare function Register(): <C extends ServiceConstructor>(constructor: C) => C;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* get service metadata
|
|
146
|
+
*
|
|
147
|
+
* @export
|
|
148
|
+
* @param {(ServiceConstructor | object)} target
|
|
149
|
+
* @returns {ServiceMetadata}
|
|
150
|
+
*/
|
|
151
|
+
declare function getServiceMetadata(target: ServiceConstructor | object): ServiceMetadata;
|
|
152
|
+
declare function HasService(serviceClass: ServiceConstructor): boolean;
|
|
153
|
+
declare function IsFacade(_serviceInstance: object): void;
|
|
52
154
|
|
|
53
|
-
export {
|
|
155
|
+
export { HasService, IsFacade, type OnActivated, type OnBeforeMount, type OnBeforeUnmount, type OnBeforeUpdate, type OnDeactivated, type OnErrorCaptured, type OnMounted, type OnRenderTracked, type OnRenderTriggered, type OnScopeDispose, type OnServerPrefetch, type OnUnmounted, type OnUpdated, Register, createFacadeObj, exposeToContext, generateRouterFacade, getServiceMetadata, iocraft, obtain, obtainFromContext, obtainInstance, obtainRaw, obtainRawInstance };
|
package/dist/core.js
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
InjectInstance,
|
|
7
|
-
InstanceOf,
|
|
8
|
-
IocRaftPlugin,
|
|
9
|
-
Provide,
|
|
10
|
-
RemoveFromRegistry,
|
|
3
|
+
HasService,
|
|
4
|
+
IsFacade,
|
|
5
|
+
Register,
|
|
11
6
|
createFacadeObj,
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
exposeToContext,
|
|
8
|
+
generateRouterFacade,
|
|
9
|
+
getServiceMetadata,
|
|
10
|
+
iocraft,
|
|
11
|
+
obtain,
|
|
12
|
+
obtainFromContext,
|
|
13
|
+
obtainInstance,
|
|
14
|
+
obtainRaw,
|
|
15
|
+
obtainRawInstance
|
|
16
|
+
} from "./chunk-UO5JQJD3.js";
|
|
14
17
|
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
InjectInstance,
|
|
19
|
-
InstanceOf,
|
|
20
|
-
IocRaftPlugin,
|
|
21
|
-
Provide,
|
|
22
|
-
RemoveFromRegistry,
|
|
18
|
+
HasService,
|
|
19
|
+
IsFacade,
|
|
20
|
+
Register,
|
|
23
21
|
createFacadeObj,
|
|
24
|
-
|
|
22
|
+
exposeToContext,
|
|
23
|
+
generateRouterFacade,
|
|
24
|
+
getServiceMetadata,
|
|
25
|
+
iocraft,
|
|
26
|
+
obtain,
|
|
27
|
+
obtainFromContext,
|
|
28
|
+
obtainInstance,
|
|
29
|
+
obtainRaw,
|
|
30
|
+
obtainRawInstance
|
|
25
31
|
};
|
|
26
32
|
//# sourceMappingURL=core.js.map
|
package/dist/helpers.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkFPSHR5LZcjs = require('./chunk-FPSHR5LZ.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.Nav =
|
|
9
|
+
exports.Nav = _chunkFPSHR5LZcjs.Nav; exports.Store = _chunkFPSHR5LZcjs.Store;
|
|
10
10
|
//# sourceMappingURL=helpers.cjs.map
|
package/dist/helpers.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iocraft",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "A lightweight IOC container for Vue 3 using the Composition API.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vue",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"vue-router": "^4.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
+
"tinybench": "^6.0.0",
|
|
51
52
|
"tsup": "^8.5.1",
|
|
52
53
|
"typescript": "~5.9.3",
|
|
53
54
|
"vitest": "^4.0.16",
|
|
@@ -65,6 +66,6 @@
|
|
|
65
66
|
"build": "tsup",
|
|
66
67
|
"dev": "tsup --watch",
|
|
67
68
|
"typecheck": "tsc --noEmit",
|
|
68
|
-
"test": "vitest"
|
|
69
|
+
"test": "vitest bench"
|
|
69
70
|
}
|
|
70
71
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/facade.ts","../src/core/injectors.ts","../src/utils/core.utils.ts","../src/core/plugin.ts","../src/core/providers.ts","../src/helpers/Nav.service.ts","../src/helpers/Store.service.ts"],"sourcesContent":["import type { Router } from 'vue-router';\nimport type { ServiceConstructor } from '../utils/core.types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n ...Object.getOwnPropertyNames(Array.prototype),\n ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>\n) {\n const targetObj = {};\n\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj;\n}\n\nexport function generateRouterFacade(router: Router): Record<string, any> {\n return {\n get path() {\n return router.currentRoute.value.path;\n },\n get name() {\n return router.currentRoute.value.name;\n },\n get params() {\n return router.currentRoute.value.params;\n },\n get query() {\n return router.currentRoute.value.query;\n },\n get hash() {\n return router.currentRoute.value.hash;\n },\n get fullPath() {\n return router.currentRoute.value.fullPath;\n },\n get matched() {\n return router.currentRoute.value.matched;\n },\n get meta() {\n return router.currentRoute.value.meta;\n },\n push: router.push.bind(router),\n replace: router.replace.bind(router),\n go: router.go.bind(router),\n back: router.back.bind(router),\n forward: router.forward.bind(router),\n resolve: router.resolve.bind(router),\n getRoutes: router.getRoutes.bind(router),\n hasRoute: router.hasRoute.bind(router),\n\n // Router guards\n beforeEach: router.beforeEach.bind(router),\n beforeResolve: router.beforeResolve.bind(router),\n afterEach: router.afterEach.bind(router),\n onError: router.onError.bind(router),\n\n // Dynamic routing\n addRoute: router.addRoute.bind(router),\n removeRoute: router.removeRoute.bind(router),\n clearRoutes: router.clearRoutes.bind(router),\n\n // State\n isReady: router.isReady.bind(router),\n get currentRoute() {\n return router.currentRoute;\n },\n };\n}\n","import { getCurrentInstance, inject, onScopeDispose } from 'vue';\nimport type { ServiceConstructor } from '../utils/core.types';\nimport { getServiceMeta, RootRegistry, TempRegistry } from '../utils/core.utils';\nimport { createFacadeObj } from './facade';\n\n/**\n * Injects a global singleton service From Root Registry;\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function Inject<T extends ServiceConstructor>(serviceClass: T): InstanceType<T> {\n const serviceMeta = getServiceMeta(serviceClass);\n\n // Ensure singleton\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new serviceClass());\n }\n\n let instance = RootRegistry.get(serviceMeta.token)!;\n\n if (serviceMeta.facade) {\n if (!TempRegistry.has(serviceMeta.token)) {\n TempRegistry.set(serviceMeta.token, createFacadeObj(instance));\n }\n\n instance = TempRegistry.get(serviceMeta.token)!;\n }\n\n return instance as InstanceType<T>;\n}\n\nexport function InjectInstance<T extends ServiceConstructor>(serviceClass: T) {\n let instance = new serviceClass();\n const componentInstance = getCurrentInstance();\n\n if (componentInstance) {\n onScopeDispose(() => {\n console.error('[IocRaft]: Scope Dispose Run');\n });\n }\n return instance as InstanceType<T>;\n}\n\nexport function InjectFromContext<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n\nexport function ExposeToContext<T extends ServiceConstructor>(_classOrInstance: InstanceType<T>) {\n let ownsInstance = false;\n\n if (ownsInstance) {\n const componentInstance = getCurrentInstance();\n if (componentInstance) {\n onScopeDispose(() => {});\n }\n }\n}\n\nexport function RemoveFromRegistry() {\n console.log('removing from registry');\n}\n\nexport function InstanceOf() {\n console.log('deciding instance');\n}\n","import type { ServiceConstructor, ServiceMetadata } from './core.types';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\nexport const TempRegistry = new Map<symbol, object>();\n\nexport function getServiceMeta(target: ServiceConstructor | object) {\n const ctor = typeof target === 'function' ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || 'Unknown'} is not decorated with @Provide()`);\n }\n return meta;\n}\n","import { type FunctionPlugin } from 'vue';\nimport type { PluginOptions } from '../utils/core.types';\nimport { getServiceMeta, RootRegistry, TempRegistry } from '../utils/core.utils';\nimport { createFacadeObj, generateRouterFacade } from './facade';\nimport { Nav } from '../helpers';\n\nexport const IocRaftPlugin: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMeta(Nav).token, generateRouterFacade(options.router));\n }\n\n ///Eagerly create Service instances\n if (options?.EagerLoad) {\n options.EagerLoad.forEach(service => {\n const serviceMeta = getServiceMeta(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n\n const instance = RootRegistry.get(serviceMeta.token)!;\n\n if (serviceMeta.facade) {\n if (!TempRegistry.has(serviceMeta.token)) {\n TempRegistry.set(serviceMeta.token, createFacadeObj(instance));\n }\n }\n });\n }\n};\n","import type { ServiceConstructor, ServiceMetadata, ServiceOptions } from '../utils/core.types';\nimport { SERVICE_METADATA } from '../utils/core.utils';\n\n/**\n * Registers A Class as Service\n *\n * @export\n * @param {?ServiceOptions} [options]\n * @returns {<C extends ServiceConstructor>(constructor: C) => C}\n */\nexport function Provide(options?: ServiceOptions): <C extends ServiceConstructor>(constructor: C) => C {\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || 'Anonymous'}`),\n facade: options?.facade ?? true,\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n","import type { RouteLocationNormalizedGeneric, Router } from 'vue-router';\nimport { Provide } from '../core';\n\nexport interface Nav\n extends\n Omit<Router, 'install' | 'options' | 'currentRoute'>,\n Pick<\n RouteLocationNormalizedGeneric,\n 'path' | 'name' | 'params' | 'query' | 'hash' | 'fullPath' | 'matched' | 'meta'\n > {}\n\n@Provide({\n facade: false,\n})\nexport class Nav {}\n","export function Store<T extends Record<string, any>>(initialState: T) {\n return class {\n state = initialState;\n\n getState() {}\n\n setState(_partialState: Partial<T>) {}\n\n select<K extends keyof T>(_key: K) {}\n\n selectAll(){}\n\n computed() {}\n\n watch() {}\n\n watchEffect() {}\n\n reset(): void {}\n\n onInit() {}\n\n onDispose() {}\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-MV4CFG6R.cjs","../src/core/facade.ts","../src/core/injectors.ts","../src/utils/core.utils.ts","../src/core/plugin.ts","../src/core/providers.ts","../src/helpers/Nav.service.ts","../src/helpers/Store.service.ts"],"names":[],"mappings":"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","file":"/home/runner/work/iocraft/iocraft/packages/iocraft/dist/chunk-MV4CFG6R.cjs","sourcesContent":[null,"import type { Router } from 'vue-router';\nimport type { ServiceConstructor } from '../utils/core.types';\n\nfunction hasKey(obj: Record<PropertyKey, unknown>, key: PropertyKey): boolean {\n if (typeof key === 'symbol') {\n return Object.getOwnPropertySymbols(obj).includes(key);\n }\n return Object.hasOwn(obj, key);\n}\n\nconst NativeKeys = new Set([\n ...Object.getOwnPropertyNames(Object.prototype),\n ...Object.getOwnPropertySymbols(Object.prototype),\n ...Object.getOwnPropertyNames(Function.prototype),\n ...Object.getOwnPropertySymbols(Function.prototype),\n ...Object.getOwnPropertyNames(Array.prototype),\n ...Object.getOwnPropertySymbols(Array.prototype),\n]);\n\nfunction addInstanceProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n const ownKeys = [...Object.getOwnPropertyNames(serviceInstance), ...Object.getOwnPropertySymbols(serviceInstance)];\n\n for (const key of ownKeys) {\n if (hasKey(targetObj, key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(serviceInstance, key)!;\n\n if (typeof descriptor.value === 'function') {\n console.warn(`[IOCRAFT]: Instance method \"${String(key)}\" found as own property. Consider moving to prototype.`);\n continue;\n }\n\n if (descriptor.get || descriptor.set) {\n continue;\n }\n\n Object.defineProperty(targetObj, key, {\n get() {\n return serviceInstance[key as keyof typeof serviceInstance];\n },\n set(v) {\n serviceInstance[key as keyof typeof serviceInstance] = v;\n },\n enumerable: true,\n configurable: true,\n });\n }\n}\n\n\nfunction addPrototypeProperties<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>,\n targetObj: Record<PropertyKey, unknown>\n) {\n let currentProto = Object.getPrototypeOf(serviceInstance);\n\n while (currentProto && currentProto !== Object.prototype) {\n const protoKeys = [...Object.getOwnPropertyNames(currentProto), ...Object.getOwnPropertySymbols(currentProto)];\n\n for (const key of protoKeys) {\n if (hasKey(targetObj, key)) continue;\n\n if (NativeKeys.has(key)) continue;\n\n const descriptor = Object.getOwnPropertyDescriptor(currentProto, key)!;\n\n if (descriptor.get || descriptor.set) {\n Object.defineProperty(targetObj, key, {\n get: descriptor.get ? () => descriptor.get!.call(serviceInstance) : undefined,\n set: descriptor.set ? (v: any) => descriptor.set!.call(serviceInstance, v) : undefined,\n enumerable: true,\n configurable: true,\n });\n } else if (typeof descriptor.value === 'function') {\n targetObj[key] = descriptor.value.bind(serviceInstance);\n }\n }\n\n currentProto = Object.getPrototypeOf(currentProto);\n }\n}\n\n/**\n * CREATES A FACADE OBJECT\n *\n * @export\n * @template {object} T\n * @param {ServiceConstructor<T>} serviceClass\n * @param {InstanceType<ServiceConstructor<T>>} serviceInstance\n * @returns {{}}\n */\nexport function createFacadeObj<T extends object>(\n serviceInstance: InstanceType<ServiceConstructor<T>>\n) {\n const targetObj = {};\n\n\n addInstanceProperties(serviceInstance, targetObj);\n addPrototypeProperties(serviceInstance, targetObj);\n return targetObj;\n}\n\nexport function generateRouterFacade(router: Router): Record<string, any> {\n return {\n get path() {\n return router.currentRoute.value.path;\n },\n get name() {\n return router.currentRoute.value.name;\n },\n get params() {\n return router.currentRoute.value.params;\n },\n get query() {\n return router.currentRoute.value.query;\n },\n get hash() {\n return router.currentRoute.value.hash;\n },\n get fullPath() {\n return router.currentRoute.value.fullPath;\n },\n get matched() {\n return router.currentRoute.value.matched;\n },\n get meta() {\n return router.currentRoute.value.meta;\n },\n push: router.push.bind(router),\n replace: router.replace.bind(router),\n go: router.go.bind(router),\n back: router.back.bind(router),\n forward: router.forward.bind(router),\n resolve: router.resolve.bind(router),\n getRoutes: router.getRoutes.bind(router),\n hasRoute: router.hasRoute.bind(router),\n\n // Router guards\n beforeEach: router.beforeEach.bind(router),\n beforeResolve: router.beforeResolve.bind(router),\n afterEach: router.afterEach.bind(router),\n onError: router.onError.bind(router),\n\n // Dynamic routing\n addRoute: router.addRoute.bind(router),\n removeRoute: router.removeRoute.bind(router),\n clearRoutes: router.clearRoutes.bind(router),\n\n // State\n isReady: router.isReady.bind(router),\n get currentRoute() {\n return router.currentRoute;\n },\n };\n}\n","import { getCurrentInstance, inject, onScopeDispose } from 'vue';\nimport type { ServiceConstructor } from '../utils/core.types';\nimport { getServiceMeta, RootRegistry, TempRegistry } from '../utils/core.utils';\nimport { createFacadeObj } from './facade';\n\n/**\n * Injects a global singleton service From Root Registry;\n *\n * @export\n * @template {ServiceConstructor} T\n * @param {T} serviceClass\n * @returns {InstanceType<T>}\n */\nexport function Inject<T extends ServiceConstructor>(serviceClass: T): InstanceType<T> {\n const serviceMeta = getServiceMeta(serviceClass);\n\n // Ensure singleton\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new serviceClass());\n }\n\n let instance = RootRegistry.get(serviceMeta.token)!;\n\n if (serviceMeta.facade) {\n if (!TempRegistry.has(serviceMeta.token)) {\n TempRegistry.set(serviceMeta.token, createFacadeObj(instance));\n }\n\n instance = TempRegistry.get(serviceMeta.token)!;\n }\n\n return instance as InstanceType<T>;\n}\n\nexport function InjectInstance<T extends ServiceConstructor>(serviceClass: T) {\n let instance = new serviceClass();\n const componentInstance = getCurrentInstance();\n\n if (componentInstance) {\n onScopeDispose(() => {\n console.error('[IocRaft]: Scope Dispose Run');\n });\n }\n return instance as InstanceType<T>;\n}\n\nexport function InjectFromContext<T extends ServiceConstructor>(serviceClass: T) {\n const serviceMeta = getServiceMeta(serviceClass);\n return inject<InstanceType<T>>(serviceMeta.token);\n}\n\nexport function ExposeToContext<T extends ServiceConstructor>(_classOrInstance: InstanceType<T>) {\n let ownsInstance = false;\n\n if (ownsInstance) {\n const componentInstance = getCurrentInstance();\n if (componentInstance) {\n onScopeDispose(() => {});\n }\n }\n}\n\nexport function RemoveFromRegistry() {\n console.log('removing from registry');\n}\n\nexport function InstanceOf() {\n console.log('deciding instance');\n}\n","import type { ServiceConstructor, ServiceMetadata } from './core.types';\n\nexport const SERVICE_METADATA = Symbol('IOCRAFT_SERVICE_METADATA');\nexport const RootRegistry = new Map<symbol, object>();\nexport const TempRegistry = new Map<symbol, object>();\n\nexport function getServiceMeta(target: ServiceConstructor | object) {\n const ctor = typeof target === 'function' ? target : target.constructor;\n\n const meta = (ctor as any)[SERVICE_METADATA] as ServiceMetadata;\n if (!meta?.token) {\n throw new Error(`[IOCRAFT]: ${ctor?.name || 'Unknown'} is not decorated with @Provide()`);\n }\n return meta;\n}\n","import { type FunctionPlugin } from 'vue';\nimport type { PluginOptions } from '../utils/core.types';\nimport { getServiceMeta, RootRegistry, TempRegistry } from '../utils/core.utils';\nimport { createFacadeObj, generateRouterFacade } from './facade';\nimport { Nav } from '../helpers';\n\nexport const IocRaftPlugin: FunctionPlugin<[Partial<PluginOptions>?]> = (_app, options?: Partial<PluginOptions>) => {\n if (options?.router) {\n RootRegistry.set(getServiceMeta(Nav).token, generateRouterFacade(options.router));\n }\n\n ///Eagerly create Service instances\n if (options?.EagerLoad) {\n options.EagerLoad.forEach(service => {\n const serviceMeta = getServiceMeta(service);\n\n if (!RootRegistry.has(serviceMeta.token)) {\n RootRegistry.set(serviceMeta.token, new service());\n }\n\n const instance = RootRegistry.get(serviceMeta.token)!;\n\n if (serviceMeta.facade) {\n if (!TempRegistry.has(serviceMeta.token)) {\n TempRegistry.set(serviceMeta.token, createFacadeObj(instance));\n }\n }\n });\n }\n};\n","import type { ServiceConstructor, ServiceMetadata, ServiceOptions } from '../utils/core.types';\nimport { SERVICE_METADATA } from '../utils/core.utils';\n\n/**\n * Registers A Class as Service\n *\n * @export\n * @param {?ServiceOptions} [options]\n * @returns {<C extends ServiceConstructor>(constructor: C) => C}\n */\nexport function Provide(options?: ServiceOptions): <C extends ServiceConstructor>(constructor: C) => C {\n return function <C extends ServiceConstructor>(constructor: C) {\n if ((constructor as any)[SERVICE_METADATA]?.token) {\n return constructor;\n }\n\n (constructor as any)[SERVICE_METADATA] = {\n token: Symbol(`[IOCRAFT]: Service - ${constructor.name || 'Anonymous'}`),\n facade: options?.facade ?? true,\n } satisfies ServiceMetadata;\n\n return constructor;\n };\n}\n","import type { RouteLocationNormalizedGeneric, Router } from 'vue-router';\nimport { Provide } from '../core';\n\nexport interface Nav\n extends\n Omit<Router, 'install' | 'options' | 'currentRoute'>,\n Pick<\n RouteLocationNormalizedGeneric,\n 'path' | 'name' | 'params' | 'query' | 'hash' | 'fullPath' | 'matched' | 'meta'\n > {}\n\n@Provide({\n facade: false,\n})\nexport class Nav {}\n","export function Store<T extends Record<string, any>>(initialState: T) {\n return class {\n state = initialState;\n\n getState() {}\n\n setState(_partialState: Partial<T>) {}\n\n select<K extends keyof T>(_key: K) {}\n\n selectAll(){}\n\n computed() {}\n\n watch() {}\n\n watchEffect() {}\n\n reset(): void {}\n\n onInit() {}\n\n onDispose() {}\n };\n}\n"]}
|