@fjell/cache 4.6.7 → 4.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Instance.cjs.js +27 -0
- package/dist/Instance.d.ts +20 -0
- package/dist/Instance.es.js +22 -0
- package/dist/InstanceFactory.cjs.js +23 -0
- package/dist/InstanceFactory.d.ts +8 -0
- package/dist/InstanceFactory.es.js +19 -0
- package/dist/Registry.cjs.js +36 -0
- package/dist/Registry.d.ts +15 -0
- package/dist/Registry.es.js +31 -0
- package/dist/index.cjs +121 -117
- package/dist/index.cjs.js +9 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.es.js +4 -2
- package/examples/README.md +307 -0
- package/examples/aggregator-example.ts +334 -0
- package/examples/basic-cache-example.ts +273 -0
- package/examples/cache-map-example.ts +265 -0
- package/package.json +7 -6
- package/vitest.config.ts +2 -2
- package/dist/CacheRegistry.cjs.js +0 -66
- package/dist/CacheRegistry.d.ts +0 -10
- package/dist/CacheRegistry.es.js +0 -62
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const logger$1 = require('./logger.cjs.js');
|
|
6
|
+
const registry = require('@fjell/registry');
|
|
7
|
+
|
|
8
|
+
const logger = logger$1.default.get("Instance");
|
|
9
|
+
const createInstance = (registry$1, coordinate, cache)=>{
|
|
10
|
+
logger.debug("createInstance", {
|
|
11
|
+
coordinate,
|
|
12
|
+
cache,
|
|
13
|
+
registry: registry$1
|
|
14
|
+
});
|
|
15
|
+
const baseInstance = registry.createInstance(registry$1, coordinate);
|
|
16
|
+
return {
|
|
17
|
+
...baseInstance,
|
|
18
|
+
cache
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const isInstance = (instance)=>{
|
|
22
|
+
return instance !== null && instance !== undefined && instance.coordinate !== undefined && instance.cache !== undefined && instance.registry !== undefined;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.createInstance = createInstance;
|
|
26
|
+
exports.isInstance = isInstance;
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2UuY2pzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Item } from '@fjell/core';
|
|
2
|
+
import { Instance as BaseInstance, Coordinate, Registry } from '@fjell/registry';
|
|
3
|
+
import { Cache } from './Cache';
|
|
4
|
+
/**
|
|
5
|
+
* The Cache Instance interface represents a cache model instance that extends the base Instance
|
|
6
|
+
* from @fjell/registry and adds cache operations for interacting with cached data.
|
|
7
|
+
*
|
|
8
|
+
* The interface extends the base Instance (which provides coordinate and registry) with:
|
|
9
|
+
* - cache: Provides methods for interacting with cached data (get, set, all, etc.)
|
|
10
|
+
*
|
|
11
|
+
* @template V - The type of the data model item, extending Item
|
|
12
|
+
* @template S - The string literal type representing the model's key type
|
|
13
|
+
* @template L1-L5 - Optional string literal types for location hierarchy levels
|
|
14
|
+
*/
|
|
15
|
+
export interface Instance<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> extends BaseInstance<S, L1, L2, L3, L4, L5> {
|
|
16
|
+
/** The cache object that provides methods for interacting with cached data */
|
|
17
|
+
cache: Cache<V, S, L1, L2, L3, L4, L5>;
|
|
18
|
+
}
|
|
19
|
+
export declare const createInstance: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(registry: Registry, coordinate: Coordinate<S, L1, L2, L3, L4, L5>, cache: Cache<V, S, L1, L2, L3, L4, L5>) => Instance<V, S, L1, L2, L3, L4, L5>;
|
|
20
|
+
export declare const isInstance: (instance: any) => instance is Instance<any, any, any, any, any, any, any>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import LibLogger from './logger.es.js';
|
|
2
|
+
import { createInstance as createInstance$1 } from '@fjell/registry';
|
|
3
|
+
|
|
4
|
+
const logger = LibLogger.get("Instance");
|
|
5
|
+
const createInstance = (registry, coordinate, cache)=>{
|
|
6
|
+
logger.debug("createInstance", {
|
|
7
|
+
coordinate,
|
|
8
|
+
cache,
|
|
9
|
+
registry
|
|
10
|
+
});
|
|
11
|
+
const baseInstance = createInstance$1(registry, coordinate);
|
|
12
|
+
return {
|
|
13
|
+
...baseInstance,
|
|
14
|
+
cache
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
const isInstance = (instance)=>{
|
|
18
|
+
return instance !== null && instance !== undefined && instance.coordinate !== undefined && instance.cache !== undefined && instance.registry !== undefined;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { createInstance, isInstance };
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2UuZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const Instance = require('./Instance.cjs.js');
|
|
6
|
+
const logger$1 = require('./logger.cjs.js');
|
|
7
|
+
|
|
8
|
+
const logger = logger$1.default.get("InstanceFactory");
|
|
9
|
+
/**
|
|
10
|
+
* Factory function for creating cache instances
|
|
11
|
+
*/ const createInstanceFactory = (cache)=>{
|
|
12
|
+
return (coordinate, context)=>{
|
|
13
|
+
logger.debug("Creating cache instance", {
|
|
14
|
+
coordinate,
|
|
15
|
+
registry: context.registry,
|
|
16
|
+
cache
|
|
17
|
+
});
|
|
18
|
+
return Instance.createInstance(context.registry, coordinate, cache);
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.createInstanceFactory = createInstanceFactory;
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VGYWN0b3J5LmNqcy5qcyIsInNvdXJjZXMiOltdLCJzb3VyY2VzQ29udGVudCI6W10sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Item } from '@fjell/core';
|
|
2
|
+
import { Cache } from './Cache';
|
|
3
|
+
import { InstanceFactory as BaseInstanceFactory } from '@fjell/registry';
|
|
4
|
+
export type InstanceFactory<V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never> = (cache: Cache<V, S, L1, L2, L3, L4, L5>) => BaseInstanceFactory<S, L1, L2, L3, L4, L5>;
|
|
5
|
+
/**
|
|
6
|
+
* Factory function for creating cache instances
|
|
7
|
+
*/
|
|
8
|
+
export declare const createInstanceFactory: <V extends Item<S, L1, L2, L3, L4, L5>, S extends string, L1 extends string = never, L2 extends string = never, L3 extends string = never, L4 extends string = never, L5 extends string = never>(cache: Cache<V, S, L1, L2, L3, L4, L5>) => BaseInstanceFactory<S, L1, L2, L3, L4, L5>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createInstance } from './Instance.es.js';
|
|
2
|
+
import LibLogger from './logger.es.js';
|
|
3
|
+
|
|
4
|
+
const logger = LibLogger.get("InstanceFactory");
|
|
5
|
+
/**
|
|
6
|
+
* Factory function for creating cache instances
|
|
7
|
+
*/ const createInstanceFactory = (cache)=>{
|
|
8
|
+
return (coordinate, context)=>{
|
|
9
|
+
logger.debug("Creating cache instance", {
|
|
10
|
+
coordinate,
|
|
11
|
+
registry: context.registry,
|
|
12
|
+
cache
|
|
13
|
+
});
|
|
14
|
+
return createInstance(context.registry, coordinate, cache);
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { createInstanceFactory };
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VGYWN0b3J5LmVzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const logger$1 = require('./logger.cjs.js');
|
|
6
|
+
const registry = require('@fjell/registry');
|
|
7
|
+
|
|
8
|
+
const logger = logger$1.default.get("Registry");
|
|
9
|
+
/**
|
|
10
|
+
* Factory function for creating cache registries
|
|
11
|
+
*/ const createRegistryFactory = ()=>{
|
|
12
|
+
return (type, registryHub)=>{
|
|
13
|
+
if (type !== 'cache') {
|
|
14
|
+
throw new Error(`Cache registry factory can only create 'cache' type registries, got: ${type}`);
|
|
15
|
+
}
|
|
16
|
+
logger.debug("Creating cache registry", {
|
|
17
|
+
type,
|
|
18
|
+
registryHub
|
|
19
|
+
});
|
|
20
|
+
const baseRegistry = registry.createRegistry(type, registryHub);
|
|
21
|
+
// Cast to Registry for type safety
|
|
22
|
+
return baseRegistry;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new cache registry instance
|
|
27
|
+
*/ const createRegistry = (registryHub)=>{
|
|
28
|
+
const baseRegistry = registry.createRegistry('cache', registryHub);
|
|
29
|
+
return {
|
|
30
|
+
...baseRegistry
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
exports.createRegistry = createRegistry;
|
|
35
|
+
exports.createRegistryFactory = createRegistryFactory;
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuY2pzLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Registry as BaseRegistry, RegistryFactory, RegistryHub } from '@fjell/registry';
|
|
2
|
+
/**
|
|
3
|
+
* Extended Registry interface for cache-specific functionality
|
|
4
|
+
*/
|
|
5
|
+
export interface Registry extends BaseRegistry {
|
|
6
|
+
type: 'cache';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Factory function for creating cache registries
|
|
10
|
+
*/
|
|
11
|
+
export declare const createRegistryFactory: () => RegistryFactory;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new cache registry instance
|
|
14
|
+
*/
|
|
15
|
+
export declare const createRegistry: (registryHub?: RegistryHub) => Registry;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import LibLogger from './logger.es.js';
|
|
2
|
+
import { createRegistry as createRegistry$1 } from '@fjell/registry';
|
|
3
|
+
|
|
4
|
+
const logger = LibLogger.get("Registry");
|
|
5
|
+
/**
|
|
6
|
+
* Factory function for creating cache registries
|
|
7
|
+
*/ const createRegistryFactory = ()=>{
|
|
8
|
+
return (type, registryHub)=>{
|
|
9
|
+
if (type !== 'cache') {
|
|
10
|
+
throw new Error(`Cache registry factory can only create 'cache' type registries, got: ${type}`);
|
|
11
|
+
}
|
|
12
|
+
logger.debug("Creating cache registry", {
|
|
13
|
+
type,
|
|
14
|
+
registryHub
|
|
15
|
+
});
|
|
16
|
+
const baseRegistry = createRegistry$1(type, registryHub);
|
|
17
|
+
// Cast to Registry for type safety
|
|
18
|
+
return baseRegistry;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new cache registry instance
|
|
23
|
+
*/ const createRegistry = (registryHub)=>{
|
|
24
|
+
const baseRegistry = createRegistry$1('cache', registryHub);
|
|
25
|
+
return {
|
|
26
|
+
...baseRegistry
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { createRegistry, createRegistryFactory };
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
|