@ember-nexus/app-core 0.0.8 → 0.0.9

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.
@@ -2,26 +2,80 @@ class ServiceResolver {
2
2
  constructor() {
3
3
  this.services = new Map();
4
4
  }
5
+ createServiceProxy(initialTarget) {
6
+ let currentTarget = initialTarget;
7
+ const proxy = new Proxy({}, {
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ get(_target, propertyKey, receiver) {
10
+ const value = Reflect.get(currentTarget, propertyKey, receiver);
11
+ if (typeof value === 'function') {
12
+ return value.bind(currentTarget);
13
+ }
14
+ return value;
15
+ },
16
+ set(_target, propertyKey, value) {
17
+ return Reflect.set(currentTarget, propertyKey, value);
18
+ },
19
+ has(_target, propertyKey) {
20
+ return propertyKey in currentTarget;
21
+ },
22
+ ownKeys() {
23
+ return Reflect.ownKeys(currentTarget);
24
+ },
25
+ getOwnPropertyDescriptor(_target, propertyKey) {
26
+ const descriptor = Object.getOwnPropertyDescriptor(currentTarget, propertyKey);
27
+ if (!descriptor)
28
+ return undefined;
29
+ return {
30
+ ...descriptor,
31
+ configurable: true,
32
+ };
33
+ },
34
+ defineProperty(_target, propertyKey, descriptor) {
35
+ return Reflect.defineProperty(currentTarget, propertyKey, descriptor);
36
+ },
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ getPrototypeOf() {
39
+ return Object.getPrototypeOf(currentTarget);
40
+ },
41
+ });
42
+ return {
43
+ proxy,
44
+ targetReplaceFunction(newTarget) {
45
+ currentTarget = newTarget;
46
+ },
47
+ };
48
+ }
5
49
  hasService(serviceIdentifier) {
6
50
  return this.services.has(String(serviceIdentifier));
7
51
  }
8
52
  getService(serviceIdentifier) {
9
- if (!this.hasService(String(serviceIdentifier))) {
53
+ const serviceEntry = this.services.get(String(serviceIdentifier));
54
+ if (serviceEntry === undefined) {
10
55
  return null;
11
56
  }
12
- return this.services.get(String(serviceIdentifier));
57
+ return serviceEntry.proxy;
13
58
  }
14
59
  getServiceOrFail(serviceIdentifier) {
15
- if (!this.hasService(String(serviceIdentifier))) {
60
+ const serviceEntry = this.services.get(String(serviceIdentifier));
61
+ if (serviceEntry === undefined) {
16
62
  throw new Error(`Requested service with identifier ${String(serviceIdentifier)} could not be resolved.`);
17
63
  }
18
- return this.services.get(String(serviceIdentifier));
64
+ return serviceEntry.proxy;
19
65
  }
20
66
  setService(serviceIdentifier, service) {
21
- this.services.set(String(serviceIdentifier), service);
67
+ let serviceEntry = this.services.get(String(serviceIdentifier));
68
+ if (serviceEntry === undefined) {
69
+ serviceEntry = this.createServiceProxy(service);
70
+ this.services.set(String(serviceIdentifier), serviceEntry);
71
+ return this;
72
+ }
73
+ serviceEntry.targetReplaceFunction(service);
22
74
  return this;
23
75
  }
24
76
  deleteService(serviceIdentifier) {
77
+ // todo: add warning that deleting and re-defining identical service identifiers will lead to issues
78
+ // todo: add warning that already queried services will remain access to deleted service
25
79
  this.services.delete(String(serviceIdentifier));
26
80
  return this;
27
81
  }
@@ -29,7 +83,7 @@ class ServiceResolver {
29
83
  return [...this.services.keys()];
30
84
  }
31
85
  getServices() {
32
- return [...this.services.values()];
86
+ return [...this.services.values()].map((service) => service.proxy);
33
87
  }
34
88
  clearServices() {
35
89
  this.services.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../../src/Service/ServiceResolver.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe;IAGnB;QAFiB,aAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IAExD,CAAC;IAEhB,UAAU,CAAC,iBAAoC;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAc,iBAAoC;QAC1D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAM,CAAC;IAC3D,CAAC;IAED,gBAAgB,CAAc,iBAAoC;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAM,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,iBAAoC,EAAE,OAAgB;QAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,iBAAoC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../../src/Service/ServiceResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Proxy.js","sourceRoot":"","sources":["../../../../src/Type/Definition/Proxy.ts"],"names":[],"mappings":""}
@@ -15,6 +15,7 @@ export * from './Node.js';
15
15
  export * from './NodeWithOptionalId.js';
16
16
  export * from './OptionalPromise.js';
17
17
  export * from './PriorityRegistry.js';
18
+ export * from './Proxy.js';
18
19
  export * from './Registry.js';
19
20
  export * from './Relation.js';
20
21
  export * from './RelationWithOptionalId.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Type/Definition/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC"}
@@ -1 +1 @@
1
- {"root":["../../src/Init.ts","../../src/index.ts","../../src/BrowserEvent/GetServiceResolverEvent.ts","../../src/BrowserEvent/index.ts","../../src/BrowserEventListener/index.ts","../../src/Cache/Cache.ts","../../src/Cache/CacheEntry.ts","../../src/Cache/ElementCache.ts","../../src/Cache/ElementChildrenCache.ts","../../src/Cache/ElementParentsCache.ts","../../src/Cache/ElementRelatedCache.ts","../../src/Cache/IndexCache.ts","../../src/Cache/index.ts","../../src/Endpoint/index.ts","../../src/Endpoint/Element/DeleteElementEndpoint.ts","../../src/Endpoint/Element/GetElementChildrenEndpoint.ts","../../src/Endpoint/Element/GetElementEndpoint.ts","../../src/Endpoint/Element/GetElementParentsEndpoint.ts","../../src/Endpoint/Element/GetElementRelatedEndpoint.ts","../../src/Endpoint/Element/GetIndexEndpoint.ts","../../src/Endpoint/Element/PatchElementEndpoint.ts","../../src/Endpoint/Element/PostElementEndpoint.ts","../../src/Endpoint/Element/PostIndexEndpoint.ts","../../src/Endpoint/Element/PutElementEndpoint.ts","../../src/Endpoint/Element/index.ts","../../src/Endpoint/File/index.ts","../../src/Endpoint/User/DeleteTokenEndpoint.ts","../../src/Endpoint/User/GetMeEndpoint.ts","../../src/Endpoint/User/GetTokenEndpoint.ts","../../src/Endpoint/User/PostChangePasswordEndpoint.ts","../../src/Endpoint/User/PostRegisterEndpoint.ts","../../src/Endpoint/User/PostTokenEndpoint.ts","../../src/Endpoint/User/index.ts","../../src/Endpoint/WebDAV/index.ts","../../src/Error/EmberNexusError.ts","../../src/Error/LogicError.ts","../../src/Error/NetworkError.ts","../../src/Error/ParseError.ts","../../src/Error/Response401UnauthorizedError.ts","../../src/Error/Response403ForbiddenError.ts","../../src/Error/Response404NotFoundError.ts","../../src/Error/Response429TooManyRequestsError.ts","../../src/Error/ResponseError.ts","../../src/Error/ValidationError.ts","../../src/Error/index.ts","../../src/Event/NormalizedValueToRawValueEvent.ts","../../src/Event/RawValueToNormalizedValueEvent.ts","../../src/Event/index.ts","../../src/EventListener/DateTimeNormalizedValueToRawValueEventListener.ts","../../src/EventListener/DateTimeRawValueToNormalizedValueEventListener.ts","../../src/EventListener/GenericNormalizedValueToRawValueEventListener.ts","../../src/EventListener/GenericRawValueToNormalizedValueEventListener.ts","../../src/EventListener/index.ts","../../src/EventListener/initEventListener.ts","../../src/Service/ApiConfiguration.ts","../../src/Service/ApiWrapper.ts","../../src/Service/CollectionParser.ts","../../src/Service/ElementParser.ts","../../src/Service/EventDispatcher.ts","../../src/Service/FetchHelper.ts","../../src/Service/Logger.ts","../../src/Service/ServiceResolver.ts","../../src/Service/TokenParser.ts","../../src/Service/index.ts","../../src/Type/index.ts","../../src/Type/Definition/Action.ts","../../src/Type/Definition/Branded.ts","../../src/Type/Definition/Collection.ts","../../src/Type/Definition/Data.ts","../../src/Type/Definition/Element.ts","../../src/Type/Definition/ElementCollection.ts","../../src/Type/Definition/Event.ts","../../src/Type/Definition/EventDispatcher.ts","../../src/Type/Definition/EventIdentifier.ts","../../src/Type/Definition/EventListener.ts","../../src/Type/Definition/EventListenerTarget.ts","../../src/Type/Definition/InstanceConfiguration.ts","../../src/Type/Definition/Logger.ts","../../src/Type/Definition/Node.ts","../../src/Type/Definition/NodeWithOptionalId.ts","../../src/Type/Definition/OptionalPromise.ts","../../src/Type/Definition/PriorityRegistry.ts","../../src/Type/Definition/Registry.ts","../../src/Type/Definition/Relation.ts","../../src/Type/Definition/RelationWithOptionalId.ts","../../src/Type/Definition/RequestProblem.ts","../../src/Type/Definition/ServiceIdentifier.ts","../../src/Type/Definition/Token.ts","../../src/Type/Definition/UniqueUserIdentifier.ts","../../src/Type/Definition/Uuid.ts","../../src/Type/Definition/WebSdkConfigurationInterface.ts","../../src/Type/Definition/index.ts","../../src/Type/Definition/Response/EmptyResponse.ts","../../src/Type/Definition/Response/NotModifiedResponse.ts","../../src/Type/Definition/Response/ParsedResponse.ts","../../src/Type/Definition/Response/index.ts","../../src/Type/Enum/BrowserEventIdentifier.ts","../../src/Type/Enum/EventIdentifier.ts","../../src/Type/Enum/HttpRequestMethod.ts","../../src/Type/Enum/LogLevel.ts","../../src/Type/Enum/RequestProblemCategory.ts","../../src/Type/Enum/ServiceIdentifier.ts","../../src/Type/Enum/index.ts","../../src/Type/Partial/CustomEventDefaultInit.ts","../../src/Type/Partial/index.ts"],"version":"5.9.3"}
1
+ {"root":["../../src/Init.ts","../../src/index.ts","../../src/BrowserEvent/GetServiceResolverEvent.ts","../../src/BrowserEvent/index.ts","../../src/BrowserEventListener/index.ts","../../src/Cache/Cache.ts","../../src/Cache/CacheEntry.ts","../../src/Cache/ElementCache.ts","../../src/Cache/ElementChildrenCache.ts","../../src/Cache/ElementParentsCache.ts","../../src/Cache/ElementRelatedCache.ts","../../src/Cache/IndexCache.ts","../../src/Cache/index.ts","../../src/Endpoint/index.ts","../../src/Endpoint/Element/DeleteElementEndpoint.ts","../../src/Endpoint/Element/GetElementChildrenEndpoint.ts","../../src/Endpoint/Element/GetElementEndpoint.ts","../../src/Endpoint/Element/GetElementParentsEndpoint.ts","../../src/Endpoint/Element/GetElementRelatedEndpoint.ts","../../src/Endpoint/Element/GetIndexEndpoint.ts","../../src/Endpoint/Element/PatchElementEndpoint.ts","../../src/Endpoint/Element/PostElementEndpoint.ts","../../src/Endpoint/Element/PostIndexEndpoint.ts","../../src/Endpoint/Element/PutElementEndpoint.ts","../../src/Endpoint/Element/index.ts","../../src/Endpoint/File/index.ts","../../src/Endpoint/User/DeleteTokenEndpoint.ts","../../src/Endpoint/User/GetMeEndpoint.ts","../../src/Endpoint/User/GetTokenEndpoint.ts","../../src/Endpoint/User/PostChangePasswordEndpoint.ts","../../src/Endpoint/User/PostRegisterEndpoint.ts","../../src/Endpoint/User/PostTokenEndpoint.ts","../../src/Endpoint/User/index.ts","../../src/Endpoint/WebDAV/index.ts","../../src/Error/EmberNexusError.ts","../../src/Error/LogicError.ts","../../src/Error/NetworkError.ts","../../src/Error/ParseError.ts","../../src/Error/Response401UnauthorizedError.ts","../../src/Error/Response403ForbiddenError.ts","../../src/Error/Response404NotFoundError.ts","../../src/Error/Response429TooManyRequestsError.ts","../../src/Error/ResponseError.ts","../../src/Error/ValidationError.ts","../../src/Error/index.ts","../../src/Event/NormalizedValueToRawValueEvent.ts","../../src/Event/RawValueToNormalizedValueEvent.ts","../../src/Event/index.ts","../../src/EventListener/DateTimeNormalizedValueToRawValueEventListener.ts","../../src/EventListener/DateTimeRawValueToNormalizedValueEventListener.ts","../../src/EventListener/GenericNormalizedValueToRawValueEventListener.ts","../../src/EventListener/GenericRawValueToNormalizedValueEventListener.ts","../../src/EventListener/index.ts","../../src/EventListener/initEventListener.ts","../../src/Service/ApiConfiguration.ts","../../src/Service/ApiWrapper.ts","../../src/Service/CollectionParser.ts","../../src/Service/ElementParser.ts","../../src/Service/EventDispatcher.ts","../../src/Service/FetchHelper.ts","../../src/Service/Logger.ts","../../src/Service/ServiceResolver.ts","../../src/Service/TokenParser.ts","../../src/Service/index.ts","../../src/Type/index.ts","../../src/Type/Definition/Action.ts","../../src/Type/Definition/Branded.ts","../../src/Type/Definition/Collection.ts","../../src/Type/Definition/Data.ts","../../src/Type/Definition/Element.ts","../../src/Type/Definition/ElementCollection.ts","../../src/Type/Definition/Event.ts","../../src/Type/Definition/EventDispatcher.ts","../../src/Type/Definition/EventIdentifier.ts","../../src/Type/Definition/EventListener.ts","../../src/Type/Definition/EventListenerTarget.ts","../../src/Type/Definition/InstanceConfiguration.ts","../../src/Type/Definition/Logger.ts","../../src/Type/Definition/Node.ts","../../src/Type/Definition/NodeWithOptionalId.ts","../../src/Type/Definition/OptionalPromise.ts","../../src/Type/Definition/PriorityRegistry.ts","../../src/Type/Definition/Proxy.ts","../../src/Type/Definition/Registry.ts","../../src/Type/Definition/Relation.ts","../../src/Type/Definition/RelationWithOptionalId.ts","../../src/Type/Definition/RequestProblem.ts","../../src/Type/Definition/ServiceIdentifier.ts","../../src/Type/Definition/Token.ts","../../src/Type/Definition/UniqueUserIdentifier.ts","../../src/Type/Definition/Uuid.ts","../../src/Type/Definition/WebSdkConfigurationInterface.ts","../../src/Type/Definition/index.ts","../../src/Type/Definition/Response/EmptyResponse.ts","../../src/Type/Definition/Response/NotModifiedResponse.ts","../../src/Type/Definition/Response/ParsedResponse.ts","../../src/Type/Definition/Response/index.ts","../../src/Type/Enum/BrowserEventIdentifier.ts","../../src/Type/Enum/EventIdentifier.ts","../../src/Type/Enum/HttpRequestMethod.ts","../../src/Type/Enum/LogLevel.ts","../../src/Type/Enum/RequestProblemCategory.ts","../../src/Type/Enum/ServiceIdentifier.ts","../../src/Type/Enum/index.ts","../../src/Type/Partial/CustomEventDefaultInit.ts","../../src/Type/Partial/index.ts"],"version":"5.9.3"}
@@ -1,11 +1,12 @@
1
- import { ServiceIdentifier } from '../Type/Definition/index.js';
1
+ import { ProxyObject, ServiceIdentifier } from '../Type/Definition/index.js';
2
2
  declare class ServiceResolver {
3
3
  private readonly services;
4
4
  constructor();
5
+ createServiceProxy<T extends object>(initialTarget: T): ProxyObject<T>;
5
6
  hasService(serviceIdentifier: ServiceIdentifier): boolean;
6
- getService<T = unknown>(serviceIdentifier: ServiceIdentifier): null | T;
7
- getServiceOrFail<T = unknown>(serviceIdentifier: ServiceIdentifier): T;
8
- setService(serviceIdentifier: ServiceIdentifier, service: unknown): ServiceResolver;
7
+ getService<T = object>(serviceIdentifier: ServiceIdentifier): null | T;
8
+ getServiceOrFail<T = object>(serviceIdentifier: ServiceIdentifier): T;
9
+ setService(serviceIdentifier: ServiceIdentifier, service: object): ServiceResolver;
9
10
  deleteService(serviceIdentifier: ServiceIdentifier): ServiceResolver;
10
11
  getServiceIdentifiers(): ServiceIdentifier[];
11
12
  getServices(): unknown[];
@@ -0,0 +1,6 @@
1
+ type ProxyReplaceFunction<T extends object> = (newTarget: T) => void;
2
+ type ProxyObject<T extends object> = {
3
+ proxy: T;
4
+ targetReplaceFunction: ProxyReplaceFunction<T>;
5
+ };
6
+ export { ProxyObject, ProxyReplaceFunction };
@@ -15,6 +15,7 @@ export * from './Node.js';
15
15
  export * from './NodeWithOptionalId.js';
16
16
  export * from './OptionalPromise.js';
17
17
  export * from './PriorityRegistry.js';
18
+ export * from './Proxy.js';
18
19
  export * from './Registry.js';
19
20
  export * from './Relation.js';
20
21
  export * from './RelationWithOptionalId.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ember-nexus/app-core",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">= 20.0"