lombok-typescript 0.1.0
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/LICENSE +21 -0
- package/README.md +98 -0
- package/dist/backend-CkLBcDd8.d.cts +59 -0
- package/dist/backend-CkLBcDd8.d.ts +59 -0
- package/dist/cli/index.cjs +585 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +14 -0
- package/dist/cli/index.d.ts +14 -0
- package/dist/cli/index.js +579 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/codegen/index.cjs +450 -0
- package/dist/codegen/index.cjs.map +1 -0
- package/dist/codegen/index.d.cts +109 -0
- package/dist/codegen/index.d.ts +109 -0
- package/dist/codegen/index.js +443 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/core/index.cjs +132 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +73 -0
- package/dist/core/index.d.ts +73 -0
- package/dist/core/index.js +128 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.cjs +142 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +93 -0
- package/dist/index.d.ts +93 -0
- package/dist/index.js +136 -0
- package/dist/index.js.map +1 -0
- package/dist/legacy/index.cjs +271 -0
- package/dist/legacy/index.cjs.map +1 -0
- package/dist/legacy/index.d.cts +32 -0
- package/dist/legacy/index.d.ts +32 -0
- package/dist/legacy/index.js +252 -0
- package/dist/legacy/index.js.map +1 -0
- package/dist/memoize-Bj9pm_cK.d.cts +48 -0
- package/dist/memoize-DvelzGDl.d.ts +48 -0
- package/dist/stage3/index.cjs +275 -0
- package/dist/stage3/index.cjs.map +1 -0
- package/dist/stage3/index.d.cts +97 -0
- package/dist/stage3/index.d.ts +97 -0
- package/dist/stage3/index.js +255 -0
- package/dist/stage3/index.js.map +1 -0
- package/package.json +120 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/metadata-store.ts","../../src/core/metadata-keys.ts"],"names":["bucket"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { MetadataKeyList, PropertyName } from './types.js';\n\n/**\n * Storage interface used by both decorator backends. Legacy delegates to\n * `reflect-metadata`; Stage 3 uses the WeakMap implementation below.\n */\nexport interface MetadataStore {\n /** Store `value` under `key`. Omit `propertyKey` for class-level scope. */\n set<V>(key: string, target: object, propertyKey: PropertyName | undefined, value: V): void;\n\n /** Read the value stored under `key`, or `undefined`. */\n get<V>(key: string, target: object, propertyKey?: PropertyName): V | undefined;\n\n /** True if `key` exists at the given scope. */\n has(key: string, target: object, propertyKey?: PropertyName): boolean;\n\n /** Remove the entry. Returns true if it existed. */\n delete(key: string, target: object, propertyKey?: PropertyName): boolean;\n\n /** All keys at the given scope. */\n list(target: object, propertyKey?: PropertyName): MetadataKeyList;\n}\n\n/**\n * WeakMap-backed `MetadataStore`. Used directly by the Stage 3 backend.\n * Layout: target -> (propertyKey or class-level) -> key -> value.\n */\nexport class WeakMapMetadataStore implements MetadataStore {\n private readonly classScopes = new WeakMap<object, Map<string, unknown>>();\n private readonly memberScopes = new WeakMap<object, Map<string | symbol, Map<string, unknown>>>();\n\n set<V>(key: string, target: object, propertyKey: PropertyName | undefined, value: V): void {\n const bucket = this.bucket(target, propertyKey, true)!;\n bucket.set(key, value);\n }\n\n get<V>(key: string, target: object, propertyKey?: PropertyName): V | undefined {\n const bucket = this.bucket(target, propertyKey, false);\n return bucket?.get(key) as V | undefined;\n }\n\n has(key: string, target: object, propertyKey?: PropertyName): boolean {\n const bucket = this.bucket(target, propertyKey, false);\n return bucket?.has(key) ?? false;\n }\n\n delete(key: string, target: object, propertyKey?: PropertyName): boolean {\n const bucket = this.bucket(target, propertyKey, false);\n if (!bucket) return false;\n return bucket.delete(key);\n }\n\n list(target: object, propertyKey?: PropertyName): MetadataKeyList {\n const bucket = this.bucket(target, propertyKey, false);\n if (!bucket) return [];\n return Array.from(bucket.keys());\n }\n\n private bucket(\n target: object,\n propertyKey: PropertyName | undefined,\n createIfMissing: boolean,\n ): Map<string, unknown> | undefined {\n if (propertyKey === undefined) {\n let bucket = this.classScopes.get(target);\n if (!bucket && createIfMissing) {\n bucket = new Map();\n this.classScopes.set(target, bucket);\n }\n return bucket;\n }\n\n let perTarget = this.memberScopes.get(target);\n if (!perTarget) {\n if (!createIfMissing) return undefined;\n perTarget = new Map();\n this.memberScopes.set(target, perTarget);\n }\n\n let bucket = perTarget.get(propertyKey);\n if (!bucket) {\n if (!createIfMissing) return undefined;\n bucket = new Map();\n perTarget.set(propertyKey, bucket);\n }\n return bucket;\n }\n}\n","/**\n * Metadata keys used across the library. Adding one? Use the `lombok-ts:`\n * prefix and check `metadata-keys.test.ts` so uniqueness stays enforced.\n */\n\nconst PREFIX = 'lombok-ts:';\n\nexport const MetadataKeys = {\n // Class-level (Lombok)\n DATA: `${PREFIX}data`,\n VALUE: `${PREFIX}value`,\n BUILDER: `${PREFIX}builder`,\n TO_STRING: `${PREFIX}toString`,\n EQUALS: `${PREFIX}equals`,\n UTILITY_CLASS: `${PREFIX}utilityClass`,\n FIELD_DEFAULTS: `${PREFIX}fieldDefaults`,\n ACCESSORS: `${PREFIX}accessors`,\n LOG: `${PREFIX}log`,\n\n // Class-level (TS-only)\n OBSERVABLE: `${PREFIX}observable`,\n SERIALIZABLE: `${PREFIX}serializable`,\n DEEP_FREEZE: `${PREFIX}deepFreeze`,\n TRACE: `${PREFIX}trace`,\n\n // Class-level (GoF)\n SINGLETON: `${PREFIX}singleton`,\n FACTORY: `${PREFIX}factory`,\n ABSTRACT_FACTORY: `${PREFIX}abstractFactory`,\n PROTOTYPE: `${PREFIX}prototype`,\n ADAPTER: `${PREFIX}adapter`,\n BRIDGE: `${PREFIX}bridge`,\n COMPOSITE: `${PREFIX}composite`,\n WRAPS: `${PREFIX}wraps`,\n FACADE: `${PREFIX}facade`,\n FLYWEIGHT: `${PREFIX}flyweight`,\n PROXY: `${PREFIX}proxy`,\n CHAIN_OF_RESPONSIBILITY: `${PREFIX}chainOfResponsibility`,\n COMMAND: `${PREFIX}command`,\n INTERPRETER: `${PREFIX}interpreter`,\n ITERABLE: `${PREFIX}iterable`,\n MEDIATOR: `${PREFIX}mediator`,\n MEMENTO: `${PREFIX}memento`,\n STATE: `${PREFIX}state`,\n STRATEGY: `${PREFIX}strategy`,\n TEMPLATE_METHOD: `${PREFIX}templateMethod`,\n VISITABLE: `${PREFIX}visitable`,\n VISITOR: `${PREFIX}visitor`,\n\n // Field-level\n GETTER: `${PREFIX}getter`,\n SETTER: `${PREFIX}setter`,\n NON_NULL: `${PREFIX}nonNull`,\n WITH: `${PREFIX}with`,\n DELEGATE: `${PREFIX}delegate`,\n VALIDATE: `${PREFIX}validate`,\n TO_STRING_EXCLUDE: `${PREFIX}toString:exclude`,\n TO_STRING_INCLUDE: `${PREFIX}toString:include`,\n EQUALS_EXCLUDE: `${PREFIX}equals:exclude`,\n SERIALIZABLE_EXCLUDE: `${PREFIX}serializable:exclude`,\n SERIALIZABLE_TRANSFORM: `${PREFIX}serializable:transform`,\n SERIALIZABLE_ALIAS: `${PREFIX}serializable:alias`,\n BUILDER_DEFAULT: `${PREFIX}builder:default`,\n SINGULAR: `${PREFIX}singular`,\n ITERATE_OVER: `${PREFIX}iterateOver`,\n\n // Method-level\n MEMOIZE: `${PREFIX}memoize`,\n DEBOUNCE: `${PREFIX}debounce`,\n THROTTLE: `${PREFIX}throttle`,\n RETRY: `${PREFIX}retry`,\n HANDLER: `${PREFIX}handler`,\n TRANSITION: `${PREFIX}transition`,\n HOOK: `${PREFIX}hook`,\n\n // Parameter-level\n NON_NULL_PARAM: `${PREFIX}nonNull:param`,\n\n // Internal, framework-managed\n FIELDS: `${PREFIX}internal:fields`,\n CONSTRUCTOR_PARAMS: `${PREFIX}internal:constructorParams`,\n BACKEND: `${PREFIX}internal:backend`,\n} as const;\n\nexport type MetadataKey = (typeof MetadataKeys)[keyof typeof MetadataKeys];\n\nexport const METADATA_KEY_PREFIX = PREFIX;\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export { a as Backend, B as BackendKind, D as DecoratorKind, b as MetadataKeyList, c as MetadataScope, M as MetadataStore, P as PropertyName, W as WeakMapMetadataStore } from '../backend-CkLBcDd8.cjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Metadata keys used across the library. Adding one? Use the `lombok-ts:`
|
|
5
|
+
* prefix and check `metadata-keys.test.ts` so uniqueness stays enforced.
|
|
6
|
+
*/
|
|
7
|
+
declare const MetadataKeys: {
|
|
8
|
+
readonly DATA: "lombok-ts:data";
|
|
9
|
+
readonly VALUE: "lombok-ts:value";
|
|
10
|
+
readonly BUILDER: "lombok-ts:builder";
|
|
11
|
+
readonly TO_STRING: "lombok-ts:toString";
|
|
12
|
+
readonly EQUALS: "lombok-ts:equals";
|
|
13
|
+
readonly UTILITY_CLASS: "lombok-ts:utilityClass";
|
|
14
|
+
readonly FIELD_DEFAULTS: "lombok-ts:fieldDefaults";
|
|
15
|
+
readonly ACCESSORS: "lombok-ts:accessors";
|
|
16
|
+
readonly LOG: "lombok-ts:log";
|
|
17
|
+
readonly OBSERVABLE: "lombok-ts:observable";
|
|
18
|
+
readonly SERIALIZABLE: "lombok-ts:serializable";
|
|
19
|
+
readonly DEEP_FREEZE: "lombok-ts:deepFreeze";
|
|
20
|
+
readonly TRACE: "lombok-ts:trace";
|
|
21
|
+
readonly SINGLETON: "lombok-ts:singleton";
|
|
22
|
+
readonly FACTORY: "lombok-ts:factory";
|
|
23
|
+
readonly ABSTRACT_FACTORY: "lombok-ts:abstractFactory";
|
|
24
|
+
readonly PROTOTYPE: "lombok-ts:prototype";
|
|
25
|
+
readonly ADAPTER: "lombok-ts:adapter";
|
|
26
|
+
readonly BRIDGE: "lombok-ts:bridge";
|
|
27
|
+
readonly COMPOSITE: "lombok-ts:composite";
|
|
28
|
+
readonly WRAPS: "lombok-ts:wraps";
|
|
29
|
+
readonly FACADE: "lombok-ts:facade";
|
|
30
|
+
readonly FLYWEIGHT: "lombok-ts:flyweight";
|
|
31
|
+
readonly PROXY: "lombok-ts:proxy";
|
|
32
|
+
readonly CHAIN_OF_RESPONSIBILITY: "lombok-ts:chainOfResponsibility";
|
|
33
|
+
readonly COMMAND: "lombok-ts:command";
|
|
34
|
+
readonly INTERPRETER: "lombok-ts:interpreter";
|
|
35
|
+
readonly ITERABLE: "lombok-ts:iterable";
|
|
36
|
+
readonly MEDIATOR: "lombok-ts:mediator";
|
|
37
|
+
readonly MEMENTO: "lombok-ts:memento";
|
|
38
|
+
readonly STATE: "lombok-ts:state";
|
|
39
|
+
readonly STRATEGY: "lombok-ts:strategy";
|
|
40
|
+
readonly TEMPLATE_METHOD: "lombok-ts:templateMethod";
|
|
41
|
+
readonly VISITABLE: "lombok-ts:visitable";
|
|
42
|
+
readonly VISITOR: "lombok-ts:visitor";
|
|
43
|
+
readonly GETTER: "lombok-ts:getter";
|
|
44
|
+
readonly SETTER: "lombok-ts:setter";
|
|
45
|
+
readonly NON_NULL: "lombok-ts:nonNull";
|
|
46
|
+
readonly WITH: "lombok-ts:with";
|
|
47
|
+
readonly DELEGATE: "lombok-ts:delegate";
|
|
48
|
+
readonly VALIDATE: "lombok-ts:validate";
|
|
49
|
+
readonly TO_STRING_EXCLUDE: "lombok-ts:toString:exclude";
|
|
50
|
+
readonly TO_STRING_INCLUDE: "lombok-ts:toString:include";
|
|
51
|
+
readonly EQUALS_EXCLUDE: "lombok-ts:equals:exclude";
|
|
52
|
+
readonly SERIALIZABLE_EXCLUDE: "lombok-ts:serializable:exclude";
|
|
53
|
+
readonly SERIALIZABLE_TRANSFORM: "lombok-ts:serializable:transform";
|
|
54
|
+
readonly SERIALIZABLE_ALIAS: "lombok-ts:serializable:alias";
|
|
55
|
+
readonly BUILDER_DEFAULT: "lombok-ts:builder:default";
|
|
56
|
+
readonly SINGULAR: "lombok-ts:singular";
|
|
57
|
+
readonly ITERATE_OVER: "lombok-ts:iterateOver";
|
|
58
|
+
readonly MEMOIZE: "lombok-ts:memoize";
|
|
59
|
+
readonly DEBOUNCE: "lombok-ts:debounce";
|
|
60
|
+
readonly THROTTLE: "lombok-ts:throttle";
|
|
61
|
+
readonly RETRY: "lombok-ts:retry";
|
|
62
|
+
readonly HANDLER: "lombok-ts:handler";
|
|
63
|
+
readonly TRANSITION: "lombok-ts:transition";
|
|
64
|
+
readonly HOOK: "lombok-ts:hook";
|
|
65
|
+
readonly NON_NULL_PARAM: "lombok-ts:nonNull:param";
|
|
66
|
+
readonly FIELDS: "lombok-ts:internal:fields";
|
|
67
|
+
readonly CONSTRUCTOR_PARAMS: "lombok-ts:internal:constructorParams";
|
|
68
|
+
readonly BACKEND: "lombok-ts:internal:backend";
|
|
69
|
+
};
|
|
70
|
+
type MetadataKey = (typeof MetadataKeys)[keyof typeof MetadataKeys];
|
|
71
|
+
declare const METADATA_KEY_PREFIX = "lombok-ts:";
|
|
72
|
+
|
|
73
|
+
export { METADATA_KEY_PREFIX, type MetadataKey, MetadataKeys };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export { a as Backend, B as BackendKind, D as DecoratorKind, b as MetadataKeyList, c as MetadataScope, M as MetadataStore, P as PropertyName, W as WeakMapMetadataStore } from '../backend-CkLBcDd8.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Metadata keys used across the library. Adding one? Use the `lombok-ts:`
|
|
5
|
+
* prefix and check `metadata-keys.test.ts` so uniqueness stays enforced.
|
|
6
|
+
*/
|
|
7
|
+
declare const MetadataKeys: {
|
|
8
|
+
readonly DATA: "lombok-ts:data";
|
|
9
|
+
readonly VALUE: "lombok-ts:value";
|
|
10
|
+
readonly BUILDER: "lombok-ts:builder";
|
|
11
|
+
readonly TO_STRING: "lombok-ts:toString";
|
|
12
|
+
readonly EQUALS: "lombok-ts:equals";
|
|
13
|
+
readonly UTILITY_CLASS: "lombok-ts:utilityClass";
|
|
14
|
+
readonly FIELD_DEFAULTS: "lombok-ts:fieldDefaults";
|
|
15
|
+
readonly ACCESSORS: "lombok-ts:accessors";
|
|
16
|
+
readonly LOG: "lombok-ts:log";
|
|
17
|
+
readonly OBSERVABLE: "lombok-ts:observable";
|
|
18
|
+
readonly SERIALIZABLE: "lombok-ts:serializable";
|
|
19
|
+
readonly DEEP_FREEZE: "lombok-ts:deepFreeze";
|
|
20
|
+
readonly TRACE: "lombok-ts:trace";
|
|
21
|
+
readonly SINGLETON: "lombok-ts:singleton";
|
|
22
|
+
readonly FACTORY: "lombok-ts:factory";
|
|
23
|
+
readonly ABSTRACT_FACTORY: "lombok-ts:abstractFactory";
|
|
24
|
+
readonly PROTOTYPE: "lombok-ts:prototype";
|
|
25
|
+
readonly ADAPTER: "lombok-ts:adapter";
|
|
26
|
+
readonly BRIDGE: "lombok-ts:bridge";
|
|
27
|
+
readonly COMPOSITE: "lombok-ts:composite";
|
|
28
|
+
readonly WRAPS: "lombok-ts:wraps";
|
|
29
|
+
readonly FACADE: "lombok-ts:facade";
|
|
30
|
+
readonly FLYWEIGHT: "lombok-ts:flyweight";
|
|
31
|
+
readonly PROXY: "lombok-ts:proxy";
|
|
32
|
+
readonly CHAIN_OF_RESPONSIBILITY: "lombok-ts:chainOfResponsibility";
|
|
33
|
+
readonly COMMAND: "lombok-ts:command";
|
|
34
|
+
readonly INTERPRETER: "lombok-ts:interpreter";
|
|
35
|
+
readonly ITERABLE: "lombok-ts:iterable";
|
|
36
|
+
readonly MEDIATOR: "lombok-ts:mediator";
|
|
37
|
+
readonly MEMENTO: "lombok-ts:memento";
|
|
38
|
+
readonly STATE: "lombok-ts:state";
|
|
39
|
+
readonly STRATEGY: "lombok-ts:strategy";
|
|
40
|
+
readonly TEMPLATE_METHOD: "lombok-ts:templateMethod";
|
|
41
|
+
readonly VISITABLE: "lombok-ts:visitable";
|
|
42
|
+
readonly VISITOR: "lombok-ts:visitor";
|
|
43
|
+
readonly GETTER: "lombok-ts:getter";
|
|
44
|
+
readonly SETTER: "lombok-ts:setter";
|
|
45
|
+
readonly NON_NULL: "lombok-ts:nonNull";
|
|
46
|
+
readonly WITH: "lombok-ts:with";
|
|
47
|
+
readonly DELEGATE: "lombok-ts:delegate";
|
|
48
|
+
readonly VALIDATE: "lombok-ts:validate";
|
|
49
|
+
readonly TO_STRING_EXCLUDE: "lombok-ts:toString:exclude";
|
|
50
|
+
readonly TO_STRING_INCLUDE: "lombok-ts:toString:include";
|
|
51
|
+
readonly EQUALS_EXCLUDE: "lombok-ts:equals:exclude";
|
|
52
|
+
readonly SERIALIZABLE_EXCLUDE: "lombok-ts:serializable:exclude";
|
|
53
|
+
readonly SERIALIZABLE_TRANSFORM: "lombok-ts:serializable:transform";
|
|
54
|
+
readonly SERIALIZABLE_ALIAS: "lombok-ts:serializable:alias";
|
|
55
|
+
readonly BUILDER_DEFAULT: "lombok-ts:builder:default";
|
|
56
|
+
readonly SINGULAR: "lombok-ts:singular";
|
|
57
|
+
readonly ITERATE_OVER: "lombok-ts:iterateOver";
|
|
58
|
+
readonly MEMOIZE: "lombok-ts:memoize";
|
|
59
|
+
readonly DEBOUNCE: "lombok-ts:debounce";
|
|
60
|
+
readonly THROTTLE: "lombok-ts:throttle";
|
|
61
|
+
readonly RETRY: "lombok-ts:retry";
|
|
62
|
+
readonly HANDLER: "lombok-ts:handler";
|
|
63
|
+
readonly TRANSITION: "lombok-ts:transition";
|
|
64
|
+
readonly HOOK: "lombok-ts:hook";
|
|
65
|
+
readonly NON_NULL_PARAM: "lombok-ts:nonNull:param";
|
|
66
|
+
readonly FIELDS: "lombok-ts:internal:fields";
|
|
67
|
+
readonly CONSTRUCTOR_PARAMS: "lombok-ts:internal:constructorParams";
|
|
68
|
+
readonly BACKEND: "lombok-ts:internal:backend";
|
|
69
|
+
};
|
|
70
|
+
type MetadataKey = (typeof MetadataKeys)[keyof typeof MetadataKeys];
|
|
71
|
+
declare const METADATA_KEY_PREFIX = "lombok-ts:";
|
|
72
|
+
|
|
73
|
+
export { METADATA_KEY_PREFIX, type MetadataKey, MetadataKeys };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// src/core/metadata-store.ts
|
|
2
|
+
var WeakMapMetadataStore = class {
|
|
3
|
+
classScopes = /* @__PURE__ */ new WeakMap();
|
|
4
|
+
memberScopes = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
set(key, target, propertyKey, value) {
|
|
6
|
+
const bucket = this.bucket(target, propertyKey, true);
|
|
7
|
+
bucket.set(key, value);
|
|
8
|
+
}
|
|
9
|
+
get(key, target, propertyKey) {
|
|
10
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
11
|
+
return bucket?.get(key);
|
|
12
|
+
}
|
|
13
|
+
has(key, target, propertyKey) {
|
|
14
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
15
|
+
return bucket?.has(key) ?? false;
|
|
16
|
+
}
|
|
17
|
+
delete(key, target, propertyKey) {
|
|
18
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
19
|
+
if (!bucket) return false;
|
|
20
|
+
return bucket.delete(key);
|
|
21
|
+
}
|
|
22
|
+
list(target, propertyKey) {
|
|
23
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
24
|
+
if (!bucket) return [];
|
|
25
|
+
return Array.from(bucket.keys());
|
|
26
|
+
}
|
|
27
|
+
bucket(target, propertyKey, createIfMissing) {
|
|
28
|
+
if (propertyKey === void 0) {
|
|
29
|
+
let bucket2 = this.classScopes.get(target);
|
|
30
|
+
if (!bucket2 && createIfMissing) {
|
|
31
|
+
bucket2 = /* @__PURE__ */ new Map();
|
|
32
|
+
this.classScopes.set(target, bucket2);
|
|
33
|
+
}
|
|
34
|
+
return bucket2;
|
|
35
|
+
}
|
|
36
|
+
let perTarget = this.memberScopes.get(target);
|
|
37
|
+
if (!perTarget) {
|
|
38
|
+
if (!createIfMissing) return void 0;
|
|
39
|
+
perTarget = /* @__PURE__ */ new Map();
|
|
40
|
+
this.memberScopes.set(target, perTarget);
|
|
41
|
+
}
|
|
42
|
+
let bucket = perTarget.get(propertyKey);
|
|
43
|
+
if (!bucket) {
|
|
44
|
+
if (!createIfMissing) return void 0;
|
|
45
|
+
bucket = /* @__PURE__ */ new Map();
|
|
46
|
+
perTarget.set(propertyKey, bucket);
|
|
47
|
+
}
|
|
48
|
+
return bucket;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// src/core/metadata-keys.ts
|
|
53
|
+
var PREFIX = "lombok-ts:";
|
|
54
|
+
var MetadataKeys = {
|
|
55
|
+
// Class-level (Lombok)
|
|
56
|
+
DATA: `${PREFIX}data`,
|
|
57
|
+
VALUE: `${PREFIX}value`,
|
|
58
|
+
BUILDER: `${PREFIX}builder`,
|
|
59
|
+
TO_STRING: `${PREFIX}toString`,
|
|
60
|
+
EQUALS: `${PREFIX}equals`,
|
|
61
|
+
UTILITY_CLASS: `${PREFIX}utilityClass`,
|
|
62
|
+
FIELD_DEFAULTS: `${PREFIX}fieldDefaults`,
|
|
63
|
+
ACCESSORS: `${PREFIX}accessors`,
|
|
64
|
+
LOG: `${PREFIX}log`,
|
|
65
|
+
// Class-level (TS-only)
|
|
66
|
+
OBSERVABLE: `${PREFIX}observable`,
|
|
67
|
+
SERIALIZABLE: `${PREFIX}serializable`,
|
|
68
|
+
DEEP_FREEZE: `${PREFIX}deepFreeze`,
|
|
69
|
+
TRACE: `${PREFIX}trace`,
|
|
70
|
+
// Class-level (GoF)
|
|
71
|
+
SINGLETON: `${PREFIX}singleton`,
|
|
72
|
+
FACTORY: `${PREFIX}factory`,
|
|
73
|
+
ABSTRACT_FACTORY: `${PREFIX}abstractFactory`,
|
|
74
|
+
PROTOTYPE: `${PREFIX}prototype`,
|
|
75
|
+
ADAPTER: `${PREFIX}adapter`,
|
|
76
|
+
BRIDGE: `${PREFIX}bridge`,
|
|
77
|
+
COMPOSITE: `${PREFIX}composite`,
|
|
78
|
+
WRAPS: `${PREFIX}wraps`,
|
|
79
|
+
FACADE: `${PREFIX}facade`,
|
|
80
|
+
FLYWEIGHT: `${PREFIX}flyweight`,
|
|
81
|
+
PROXY: `${PREFIX}proxy`,
|
|
82
|
+
CHAIN_OF_RESPONSIBILITY: `${PREFIX}chainOfResponsibility`,
|
|
83
|
+
COMMAND: `${PREFIX}command`,
|
|
84
|
+
INTERPRETER: `${PREFIX}interpreter`,
|
|
85
|
+
ITERABLE: `${PREFIX}iterable`,
|
|
86
|
+
MEDIATOR: `${PREFIX}mediator`,
|
|
87
|
+
MEMENTO: `${PREFIX}memento`,
|
|
88
|
+
STATE: `${PREFIX}state`,
|
|
89
|
+
STRATEGY: `${PREFIX}strategy`,
|
|
90
|
+
TEMPLATE_METHOD: `${PREFIX}templateMethod`,
|
|
91
|
+
VISITABLE: `${PREFIX}visitable`,
|
|
92
|
+
VISITOR: `${PREFIX}visitor`,
|
|
93
|
+
// Field-level
|
|
94
|
+
GETTER: `${PREFIX}getter`,
|
|
95
|
+
SETTER: `${PREFIX}setter`,
|
|
96
|
+
NON_NULL: `${PREFIX}nonNull`,
|
|
97
|
+
WITH: `${PREFIX}with`,
|
|
98
|
+
DELEGATE: `${PREFIX}delegate`,
|
|
99
|
+
VALIDATE: `${PREFIX}validate`,
|
|
100
|
+
TO_STRING_EXCLUDE: `${PREFIX}toString:exclude`,
|
|
101
|
+
TO_STRING_INCLUDE: `${PREFIX}toString:include`,
|
|
102
|
+
EQUALS_EXCLUDE: `${PREFIX}equals:exclude`,
|
|
103
|
+
SERIALIZABLE_EXCLUDE: `${PREFIX}serializable:exclude`,
|
|
104
|
+
SERIALIZABLE_TRANSFORM: `${PREFIX}serializable:transform`,
|
|
105
|
+
SERIALIZABLE_ALIAS: `${PREFIX}serializable:alias`,
|
|
106
|
+
BUILDER_DEFAULT: `${PREFIX}builder:default`,
|
|
107
|
+
SINGULAR: `${PREFIX}singular`,
|
|
108
|
+
ITERATE_OVER: `${PREFIX}iterateOver`,
|
|
109
|
+
// Method-level
|
|
110
|
+
MEMOIZE: `${PREFIX}memoize`,
|
|
111
|
+
DEBOUNCE: `${PREFIX}debounce`,
|
|
112
|
+
THROTTLE: `${PREFIX}throttle`,
|
|
113
|
+
RETRY: `${PREFIX}retry`,
|
|
114
|
+
HANDLER: `${PREFIX}handler`,
|
|
115
|
+
TRANSITION: `${PREFIX}transition`,
|
|
116
|
+
HOOK: `${PREFIX}hook`,
|
|
117
|
+
// Parameter-level
|
|
118
|
+
NON_NULL_PARAM: `${PREFIX}nonNull:param`,
|
|
119
|
+
// Internal, framework-managed
|
|
120
|
+
FIELDS: `${PREFIX}internal:fields`,
|
|
121
|
+
CONSTRUCTOR_PARAMS: `${PREFIX}internal:constructorParams`,
|
|
122
|
+
BACKEND: `${PREFIX}internal:backend`
|
|
123
|
+
};
|
|
124
|
+
var METADATA_KEY_PREFIX = PREFIX;
|
|
125
|
+
|
|
126
|
+
export { METADATA_KEY_PREFIX, MetadataKeys, WeakMapMetadataStore };
|
|
127
|
+
//# sourceMappingURL=index.js.map
|
|
128
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/metadata-store.ts","../../src/core/metadata-keys.ts"],"names":["bucket"],"mappings":"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","file":"index.js","sourcesContent":["import type { MetadataKeyList, PropertyName } from './types.js';\n\n/**\n * Storage interface used by both decorator backends. Legacy delegates to\n * `reflect-metadata`; Stage 3 uses the WeakMap implementation below.\n */\nexport interface MetadataStore {\n /** Store `value` under `key`. Omit `propertyKey` for class-level scope. */\n set<V>(key: string, target: object, propertyKey: PropertyName | undefined, value: V): void;\n\n /** Read the value stored under `key`, or `undefined`. */\n get<V>(key: string, target: object, propertyKey?: PropertyName): V | undefined;\n\n /** True if `key` exists at the given scope. */\n has(key: string, target: object, propertyKey?: PropertyName): boolean;\n\n /** Remove the entry. Returns true if it existed. */\n delete(key: string, target: object, propertyKey?: PropertyName): boolean;\n\n /** All keys at the given scope. */\n list(target: object, propertyKey?: PropertyName): MetadataKeyList;\n}\n\n/**\n * WeakMap-backed `MetadataStore`. Used directly by the Stage 3 backend.\n * Layout: target -> (propertyKey or class-level) -> key -> value.\n */\nexport class WeakMapMetadataStore implements MetadataStore {\n private readonly classScopes = new WeakMap<object, Map<string, unknown>>();\n private readonly memberScopes = new WeakMap<object, Map<string | symbol, Map<string, unknown>>>();\n\n set<V>(key: string, target: object, propertyKey: PropertyName | undefined, value: V): void {\n const bucket = this.bucket(target, propertyKey, true)!;\n bucket.set(key, value);\n }\n\n get<V>(key: string, target: object, propertyKey?: PropertyName): V | undefined {\n const bucket = this.bucket(target, propertyKey, false);\n return bucket?.get(key) as V | undefined;\n }\n\n has(key: string, target: object, propertyKey?: PropertyName): boolean {\n const bucket = this.bucket(target, propertyKey, false);\n return bucket?.has(key) ?? false;\n }\n\n delete(key: string, target: object, propertyKey?: PropertyName): boolean {\n const bucket = this.bucket(target, propertyKey, false);\n if (!bucket) return false;\n return bucket.delete(key);\n }\n\n list(target: object, propertyKey?: PropertyName): MetadataKeyList {\n const bucket = this.bucket(target, propertyKey, false);\n if (!bucket) return [];\n return Array.from(bucket.keys());\n }\n\n private bucket(\n target: object,\n propertyKey: PropertyName | undefined,\n createIfMissing: boolean,\n ): Map<string, unknown> | undefined {\n if (propertyKey === undefined) {\n let bucket = this.classScopes.get(target);\n if (!bucket && createIfMissing) {\n bucket = new Map();\n this.classScopes.set(target, bucket);\n }\n return bucket;\n }\n\n let perTarget = this.memberScopes.get(target);\n if (!perTarget) {\n if (!createIfMissing) return undefined;\n perTarget = new Map();\n this.memberScopes.set(target, perTarget);\n }\n\n let bucket = perTarget.get(propertyKey);\n if (!bucket) {\n if (!createIfMissing) return undefined;\n bucket = new Map();\n perTarget.set(propertyKey, bucket);\n }\n return bucket;\n }\n}\n","/**\n * Metadata keys used across the library. Adding one? Use the `lombok-ts:`\n * prefix and check `metadata-keys.test.ts` so uniqueness stays enforced.\n */\n\nconst PREFIX = 'lombok-ts:';\n\nexport const MetadataKeys = {\n // Class-level (Lombok)\n DATA: `${PREFIX}data`,\n VALUE: `${PREFIX}value`,\n BUILDER: `${PREFIX}builder`,\n TO_STRING: `${PREFIX}toString`,\n EQUALS: `${PREFIX}equals`,\n UTILITY_CLASS: `${PREFIX}utilityClass`,\n FIELD_DEFAULTS: `${PREFIX}fieldDefaults`,\n ACCESSORS: `${PREFIX}accessors`,\n LOG: `${PREFIX}log`,\n\n // Class-level (TS-only)\n OBSERVABLE: `${PREFIX}observable`,\n SERIALIZABLE: `${PREFIX}serializable`,\n DEEP_FREEZE: `${PREFIX}deepFreeze`,\n TRACE: `${PREFIX}trace`,\n\n // Class-level (GoF)\n SINGLETON: `${PREFIX}singleton`,\n FACTORY: `${PREFIX}factory`,\n ABSTRACT_FACTORY: `${PREFIX}abstractFactory`,\n PROTOTYPE: `${PREFIX}prototype`,\n ADAPTER: `${PREFIX}adapter`,\n BRIDGE: `${PREFIX}bridge`,\n COMPOSITE: `${PREFIX}composite`,\n WRAPS: `${PREFIX}wraps`,\n FACADE: `${PREFIX}facade`,\n FLYWEIGHT: `${PREFIX}flyweight`,\n PROXY: `${PREFIX}proxy`,\n CHAIN_OF_RESPONSIBILITY: `${PREFIX}chainOfResponsibility`,\n COMMAND: `${PREFIX}command`,\n INTERPRETER: `${PREFIX}interpreter`,\n ITERABLE: `${PREFIX}iterable`,\n MEDIATOR: `${PREFIX}mediator`,\n MEMENTO: `${PREFIX}memento`,\n STATE: `${PREFIX}state`,\n STRATEGY: `${PREFIX}strategy`,\n TEMPLATE_METHOD: `${PREFIX}templateMethod`,\n VISITABLE: `${PREFIX}visitable`,\n VISITOR: `${PREFIX}visitor`,\n\n // Field-level\n GETTER: `${PREFIX}getter`,\n SETTER: `${PREFIX}setter`,\n NON_NULL: `${PREFIX}nonNull`,\n WITH: `${PREFIX}with`,\n DELEGATE: `${PREFIX}delegate`,\n VALIDATE: `${PREFIX}validate`,\n TO_STRING_EXCLUDE: `${PREFIX}toString:exclude`,\n TO_STRING_INCLUDE: `${PREFIX}toString:include`,\n EQUALS_EXCLUDE: `${PREFIX}equals:exclude`,\n SERIALIZABLE_EXCLUDE: `${PREFIX}serializable:exclude`,\n SERIALIZABLE_TRANSFORM: `${PREFIX}serializable:transform`,\n SERIALIZABLE_ALIAS: `${PREFIX}serializable:alias`,\n BUILDER_DEFAULT: `${PREFIX}builder:default`,\n SINGULAR: `${PREFIX}singular`,\n ITERATE_OVER: `${PREFIX}iterateOver`,\n\n // Method-level\n MEMOIZE: `${PREFIX}memoize`,\n DEBOUNCE: `${PREFIX}debounce`,\n THROTTLE: `${PREFIX}throttle`,\n RETRY: `${PREFIX}retry`,\n HANDLER: `${PREFIX}handler`,\n TRANSITION: `${PREFIX}transition`,\n HOOK: `${PREFIX}hook`,\n\n // Parameter-level\n NON_NULL_PARAM: `${PREFIX}nonNull:param`,\n\n // Internal, framework-managed\n FIELDS: `${PREFIX}internal:fields`,\n CONSTRUCTOR_PARAMS: `${PREFIX}internal:constructorParams`,\n BACKEND: `${PREFIX}internal:backend`,\n} as const;\n\nexport type MetadataKey = (typeof MetadataKeys)[keyof typeof MetadataKeys];\n\nexport const METADATA_KEY_PREFIX = PREFIX;\n"]}
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/core/metadata-store.ts
|
|
4
|
+
var WeakMapMetadataStore = class {
|
|
5
|
+
classScopes = /* @__PURE__ */ new WeakMap();
|
|
6
|
+
memberScopes = /* @__PURE__ */ new WeakMap();
|
|
7
|
+
set(key, target, propertyKey, value) {
|
|
8
|
+
const bucket = this.bucket(target, propertyKey, true);
|
|
9
|
+
bucket.set(key, value);
|
|
10
|
+
}
|
|
11
|
+
get(key, target, propertyKey) {
|
|
12
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
13
|
+
return bucket?.get(key);
|
|
14
|
+
}
|
|
15
|
+
has(key, target, propertyKey) {
|
|
16
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
17
|
+
return bucket?.has(key) ?? false;
|
|
18
|
+
}
|
|
19
|
+
delete(key, target, propertyKey) {
|
|
20
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
21
|
+
if (!bucket) return false;
|
|
22
|
+
return bucket.delete(key);
|
|
23
|
+
}
|
|
24
|
+
list(target, propertyKey) {
|
|
25
|
+
const bucket = this.bucket(target, propertyKey, false);
|
|
26
|
+
if (!bucket) return [];
|
|
27
|
+
return Array.from(bucket.keys());
|
|
28
|
+
}
|
|
29
|
+
bucket(target, propertyKey, createIfMissing) {
|
|
30
|
+
if (propertyKey === void 0) {
|
|
31
|
+
let bucket2 = this.classScopes.get(target);
|
|
32
|
+
if (!bucket2 && createIfMissing) {
|
|
33
|
+
bucket2 = /* @__PURE__ */ new Map();
|
|
34
|
+
this.classScopes.set(target, bucket2);
|
|
35
|
+
}
|
|
36
|
+
return bucket2;
|
|
37
|
+
}
|
|
38
|
+
let perTarget = this.memberScopes.get(target);
|
|
39
|
+
if (!perTarget) {
|
|
40
|
+
if (!createIfMissing) return void 0;
|
|
41
|
+
perTarget = /* @__PURE__ */ new Map();
|
|
42
|
+
this.memberScopes.set(target, perTarget);
|
|
43
|
+
}
|
|
44
|
+
let bucket = perTarget.get(propertyKey);
|
|
45
|
+
if (!bucket) {
|
|
46
|
+
if (!createIfMissing) return void 0;
|
|
47
|
+
bucket = /* @__PURE__ */ new Map();
|
|
48
|
+
perTarget.set(propertyKey, bucket);
|
|
49
|
+
}
|
|
50
|
+
return bucket;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// src/core/metadata-keys.ts
|
|
55
|
+
var PREFIX = "lombok-ts:";
|
|
56
|
+
var MetadataKeys = {
|
|
57
|
+
// Class-level (Lombok)
|
|
58
|
+
DATA: `${PREFIX}data`,
|
|
59
|
+
VALUE: `${PREFIX}value`,
|
|
60
|
+
BUILDER: `${PREFIX}builder`,
|
|
61
|
+
TO_STRING: `${PREFIX}toString`,
|
|
62
|
+
EQUALS: `${PREFIX}equals`,
|
|
63
|
+
UTILITY_CLASS: `${PREFIX}utilityClass`,
|
|
64
|
+
FIELD_DEFAULTS: `${PREFIX}fieldDefaults`,
|
|
65
|
+
ACCESSORS: `${PREFIX}accessors`,
|
|
66
|
+
LOG: `${PREFIX}log`,
|
|
67
|
+
// Class-level (TS-only)
|
|
68
|
+
OBSERVABLE: `${PREFIX}observable`,
|
|
69
|
+
SERIALIZABLE: `${PREFIX}serializable`,
|
|
70
|
+
DEEP_FREEZE: `${PREFIX}deepFreeze`,
|
|
71
|
+
TRACE: `${PREFIX}trace`,
|
|
72
|
+
// Class-level (GoF)
|
|
73
|
+
SINGLETON: `${PREFIX}singleton`,
|
|
74
|
+
FACTORY: `${PREFIX}factory`,
|
|
75
|
+
ABSTRACT_FACTORY: `${PREFIX}abstractFactory`,
|
|
76
|
+
PROTOTYPE: `${PREFIX}prototype`,
|
|
77
|
+
ADAPTER: `${PREFIX}adapter`,
|
|
78
|
+
BRIDGE: `${PREFIX}bridge`,
|
|
79
|
+
COMPOSITE: `${PREFIX}composite`,
|
|
80
|
+
WRAPS: `${PREFIX}wraps`,
|
|
81
|
+
FACADE: `${PREFIX}facade`,
|
|
82
|
+
FLYWEIGHT: `${PREFIX}flyweight`,
|
|
83
|
+
PROXY: `${PREFIX}proxy`,
|
|
84
|
+
CHAIN_OF_RESPONSIBILITY: `${PREFIX}chainOfResponsibility`,
|
|
85
|
+
COMMAND: `${PREFIX}command`,
|
|
86
|
+
INTERPRETER: `${PREFIX}interpreter`,
|
|
87
|
+
ITERABLE: `${PREFIX}iterable`,
|
|
88
|
+
MEDIATOR: `${PREFIX}mediator`,
|
|
89
|
+
MEMENTO: `${PREFIX}memento`,
|
|
90
|
+
STATE: `${PREFIX}state`,
|
|
91
|
+
STRATEGY: `${PREFIX}strategy`,
|
|
92
|
+
TEMPLATE_METHOD: `${PREFIX}templateMethod`,
|
|
93
|
+
VISITABLE: `${PREFIX}visitable`,
|
|
94
|
+
VISITOR: `${PREFIX}visitor`,
|
|
95
|
+
// Field-level
|
|
96
|
+
GETTER: `${PREFIX}getter`,
|
|
97
|
+
SETTER: `${PREFIX}setter`,
|
|
98
|
+
NON_NULL: `${PREFIX}nonNull`,
|
|
99
|
+
WITH: `${PREFIX}with`,
|
|
100
|
+
DELEGATE: `${PREFIX}delegate`,
|
|
101
|
+
VALIDATE: `${PREFIX}validate`,
|
|
102
|
+
TO_STRING_EXCLUDE: `${PREFIX}toString:exclude`,
|
|
103
|
+
TO_STRING_INCLUDE: `${PREFIX}toString:include`,
|
|
104
|
+
EQUALS_EXCLUDE: `${PREFIX}equals:exclude`,
|
|
105
|
+
SERIALIZABLE_EXCLUDE: `${PREFIX}serializable:exclude`,
|
|
106
|
+
SERIALIZABLE_TRANSFORM: `${PREFIX}serializable:transform`,
|
|
107
|
+
SERIALIZABLE_ALIAS: `${PREFIX}serializable:alias`,
|
|
108
|
+
BUILDER_DEFAULT: `${PREFIX}builder:default`,
|
|
109
|
+
SINGULAR: `${PREFIX}singular`,
|
|
110
|
+
ITERATE_OVER: `${PREFIX}iterateOver`,
|
|
111
|
+
// Method-level
|
|
112
|
+
MEMOIZE: `${PREFIX}memoize`,
|
|
113
|
+
DEBOUNCE: `${PREFIX}debounce`,
|
|
114
|
+
THROTTLE: `${PREFIX}throttle`,
|
|
115
|
+
RETRY: `${PREFIX}retry`,
|
|
116
|
+
HANDLER: `${PREFIX}handler`,
|
|
117
|
+
TRANSITION: `${PREFIX}transition`,
|
|
118
|
+
HOOK: `${PREFIX}hook`,
|
|
119
|
+
// Parameter-level
|
|
120
|
+
NON_NULL_PARAM: `${PREFIX}nonNull:param`,
|
|
121
|
+
// Internal, framework-managed
|
|
122
|
+
FIELDS: `${PREFIX}internal:fields`,
|
|
123
|
+
CONSTRUCTOR_PARAMS: `${PREFIX}internal:constructorParams`,
|
|
124
|
+
BACKEND: `${PREFIX}internal:backend`
|
|
125
|
+
};
|
|
126
|
+
var METADATA_KEY_PREFIX = PREFIX;
|
|
127
|
+
|
|
128
|
+
// src/config.ts
|
|
129
|
+
function defineConfig(config) {
|
|
130
|
+
return config;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// src/index.ts
|
|
134
|
+
var VERSION = "0.1.0-pre";
|
|
135
|
+
|
|
136
|
+
exports.METADATA_KEY_PREFIX = METADATA_KEY_PREFIX;
|
|
137
|
+
exports.MetadataKeys = MetadataKeys;
|
|
138
|
+
exports.VERSION = VERSION;
|
|
139
|
+
exports.WeakMapMetadataStore = WeakMapMetadataStore;
|
|
140
|
+
exports.defineConfig = defineConfig;
|
|
141
|
+
//# sourceMappingURL=index.cjs.map
|
|
142
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/metadata-store.ts","../src/core/metadata-keys.ts","../src/config.ts","../src/index.ts"],"names":["bucket"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { MetadataKeyList, PropertyName } from './types.js';\n\n/**\n * Storage interface used by both decorator backends. Legacy delegates to\n * `reflect-metadata`; Stage 3 uses the WeakMap implementation below.\n */\nexport interface MetadataStore {\n /** Store `value` under `key`. Omit `propertyKey` for class-level scope. */\n set<V>(key: string, target: object, propertyKey: PropertyName | undefined, value: V): void;\n\n /** Read the value stored under `key`, or `undefined`. */\n get<V>(key: string, target: object, propertyKey?: PropertyName): V | undefined;\n\n /** True if `key` exists at the given scope. */\n has(key: string, target: object, propertyKey?: PropertyName): boolean;\n\n /** Remove the entry. Returns true if it existed. */\n delete(key: string, target: object, propertyKey?: PropertyName): boolean;\n\n /** All keys at the given scope. */\n list(target: object, propertyKey?: PropertyName): MetadataKeyList;\n}\n\n/**\n * WeakMap-backed `MetadataStore`. Used directly by the Stage 3 backend.\n * Layout: target -> (propertyKey or class-level) -> key -> value.\n */\nexport class WeakMapMetadataStore implements MetadataStore {\n private readonly classScopes = new WeakMap<object, Map<string, unknown>>();\n private readonly memberScopes = new WeakMap<object, Map<string | symbol, Map<string, unknown>>>();\n\n set<V>(key: string, target: object, propertyKey: PropertyName | undefined, value: V): void {\n const bucket = this.bucket(target, propertyKey, true)!;\n bucket.set(key, value);\n }\n\n get<V>(key: string, target: object, propertyKey?: PropertyName): V | undefined {\n const bucket = this.bucket(target, propertyKey, false);\n return bucket?.get(key) as V | undefined;\n }\n\n has(key: string, target: object, propertyKey?: PropertyName): boolean {\n const bucket = this.bucket(target, propertyKey, false);\n return bucket?.has(key) ?? false;\n }\n\n delete(key: string, target: object, propertyKey?: PropertyName): boolean {\n const bucket = this.bucket(target, propertyKey, false);\n if (!bucket) return false;\n return bucket.delete(key);\n }\n\n list(target: object, propertyKey?: PropertyName): MetadataKeyList {\n const bucket = this.bucket(target, propertyKey, false);\n if (!bucket) return [];\n return Array.from(bucket.keys());\n }\n\n private bucket(\n target: object,\n propertyKey: PropertyName | undefined,\n createIfMissing: boolean,\n ): Map<string, unknown> | undefined {\n if (propertyKey === undefined) {\n let bucket = this.classScopes.get(target);\n if (!bucket && createIfMissing) {\n bucket = new Map();\n this.classScopes.set(target, bucket);\n }\n return bucket;\n }\n\n let perTarget = this.memberScopes.get(target);\n if (!perTarget) {\n if (!createIfMissing) return undefined;\n perTarget = new Map();\n this.memberScopes.set(target, perTarget);\n }\n\n let bucket = perTarget.get(propertyKey);\n if (!bucket) {\n if (!createIfMissing) return undefined;\n bucket = new Map();\n perTarget.set(propertyKey, bucket);\n }\n return bucket;\n }\n}\n","/**\n * Metadata keys used across the library. Adding one? Use the `lombok-ts:`\n * prefix and check `metadata-keys.test.ts` so uniqueness stays enforced.\n */\n\nconst PREFIX = 'lombok-ts:';\n\nexport const MetadataKeys = {\n // Class-level (Lombok)\n DATA: `${PREFIX}data`,\n VALUE: `${PREFIX}value`,\n BUILDER: `${PREFIX}builder`,\n TO_STRING: `${PREFIX}toString`,\n EQUALS: `${PREFIX}equals`,\n UTILITY_CLASS: `${PREFIX}utilityClass`,\n FIELD_DEFAULTS: `${PREFIX}fieldDefaults`,\n ACCESSORS: `${PREFIX}accessors`,\n LOG: `${PREFIX}log`,\n\n // Class-level (TS-only)\n OBSERVABLE: `${PREFIX}observable`,\n SERIALIZABLE: `${PREFIX}serializable`,\n DEEP_FREEZE: `${PREFIX}deepFreeze`,\n TRACE: `${PREFIX}trace`,\n\n // Class-level (GoF)\n SINGLETON: `${PREFIX}singleton`,\n FACTORY: `${PREFIX}factory`,\n ABSTRACT_FACTORY: `${PREFIX}abstractFactory`,\n PROTOTYPE: `${PREFIX}prototype`,\n ADAPTER: `${PREFIX}adapter`,\n BRIDGE: `${PREFIX}bridge`,\n COMPOSITE: `${PREFIX}composite`,\n WRAPS: `${PREFIX}wraps`,\n FACADE: `${PREFIX}facade`,\n FLYWEIGHT: `${PREFIX}flyweight`,\n PROXY: `${PREFIX}proxy`,\n CHAIN_OF_RESPONSIBILITY: `${PREFIX}chainOfResponsibility`,\n COMMAND: `${PREFIX}command`,\n INTERPRETER: `${PREFIX}interpreter`,\n ITERABLE: `${PREFIX}iterable`,\n MEDIATOR: `${PREFIX}mediator`,\n MEMENTO: `${PREFIX}memento`,\n STATE: `${PREFIX}state`,\n STRATEGY: `${PREFIX}strategy`,\n TEMPLATE_METHOD: `${PREFIX}templateMethod`,\n VISITABLE: `${PREFIX}visitable`,\n VISITOR: `${PREFIX}visitor`,\n\n // Field-level\n GETTER: `${PREFIX}getter`,\n SETTER: `${PREFIX}setter`,\n NON_NULL: `${PREFIX}nonNull`,\n WITH: `${PREFIX}with`,\n DELEGATE: `${PREFIX}delegate`,\n VALIDATE: `${PREFIX}validate`,\n TO_STRING_EXCLUDE: `${PREFIX}toString:exclude`,\n TO_STRING_INCLUDE: `${PREFIX}toString:include`,\n EQUALS_EXCLUDE: `${PREFIX}equals:exclude`,\n SERIALIZABLE_EXCLUDE: `${PREFIX}serializable:exclude`,\n SERIALIZABLE_TRANSFORM: `${PREFIX}serializable:transform`,\n SERIALIZABLE_ALIAS: `${PREFIX}serializable:alias`,\n BUILDER_DEFAULT: `${PREFIX}builder:default`,\n SINGULAR: `${PREFIX}singular`,\n ITERATE_OVER: `${PREFIX}iterateOver`,\n\n // Method-level\n MEMOIZE: `${PREFIX}memoize`,\n DEBOUNCE: `${PREFIX}debounce`,\n THROTTLE: `${PREFIX}throttle`,\n RETRY: `${PREFIX}retry`,\n HANDLER: `${PREFIX}handler`,\n TRANSITION: `${PREFIX}transition`,\n HOOK: `${PREFIX}hook`,\n\n // Parameter-level\n NON_NULL_PARAM: `${PREFIX}nonNull:param`,\n\n // Internal, framework-managed\n FIELDS: `${PREFIX}internal:fields`,\n CONSTRUCTOR_PARAMS: `${PREFIX}internal:constructorParams`,\n BACKEND: `${PREFIX}internal:backend`,\n} as const;\n\nexport type MetadataKey = (typeof MetadataKeys)[keyof typeof MetadataKeys];\n\nexport const METADATA_KEY_PREFIX = PREFIX;\n","import type { BackendKind } from './core/types.js';\n\nexport interface LogConfig {\n /** Logging provider. Default `'console'`. */\n provider: 'console' | 'winston' | 'pino' | 'bunyan';\n\n /** Default log level. Default `'info'`. */\n defaultLevel: 'debug' | 'info' | 'warn' | 'error';\n}\n\nexport interface BuilderConfig {\n /** Prefix for builder setter methods. Default `''` (so `name()`, not `withName()`). */\n prefix: string;\n\n /** Name of the build method. Default `'build'`. */\n buildMethodName: string;\n\n /** Name of the static builder method. Default `'builder'`. */\n builderMethodName: string;\n}\n\nexport interface ToStringConfig {\n /** Output format. Default `'pretty'`. */\n format: 'pretty' | 'json' | 'compact';\n\n /** Include the class name in output. Default `true`. */\n includeClassName: boolean;\n}\n\nexport interface ValidateConfig {\n /** Validation library. Default `'zod'`. */\n provider: 'zod' | 'yup' | 'class-validator';\n\n /** Throw on validation failure. Default `true`. */\n throwOnError: boolean;\n}\n\nexport interface CodegenConfig {\n /** Where to write generated companion files. Default `'.lombok'`. */\n outputDir: string;\n\n /** Glob patterns for files to process. Default `['src/** /*.ts']`. */\n include: string[];\n\n /** Glob patterns for files to skip. Defaults exclude tests, `dist`, and `.lombok`. */\n exclude: string[];\n\n /** Path to the project's tsconfig. Default `'tsconfig.json'`. */\n tsConfigPath: string;\n\n /** Watch for source changes. Not implemented yet. Default `false`. */\n watch: boolean;\n}\n\n/**\n * Top-level lombok-typescript config.\n *\n * `backend` chooses which decorator standard to assume:\n * - `'legacy'`: `experimentalDecorators` (NestJS / class-validator ecosystem)\n * - `'stage3'`: Stage 3 ECMAScript decorators (TS 5.0+)\n * - `'auto'`: detect from the project's tsconfig\n *\n * The `@ToString` config field is named `formatToString` (not `toString`) so it\n * doesn't clash with `Object.prototype.toString`.\n */\nexport interface LombokConfig {\n /** Decorator backend. Default `'auto'`. */\n backend?: BackendKind | 'auto';\n\n log?: Partial<LogConfig>;\n builder?: Partial<BuilderConfig>;\n /** Settings for the `@ToString` decorator. */\n formatToString?: Partial<ToStringConfig>;\n validate?: Partial<ValidateConfig>;\n codegen?: Partial<CodegenConfig>;\n}\n\n/**\n * Identity helper that gives you autocomplete in `lombok.config.ts`.\n *\n * @example\n * import { defineConfig } from 'lombok-typescript';\n *\n * export default defineConfig({\n * backend: 'legacy',\n * log: { provider: 'winston' },\n * builder: { prefix: 'with' },\n * });\n */\nexport function defineConfig(config: LombokConfig): LombokConfig {\n return config;\n}\n","/**\n * `lombok-typescript`: a TypeScript port of Project Lombok plus GoF design\n * patterns as decorators.\n *\n * Sub-paths:\n * - `lombok-typescript/legacy`: legacy `experimentalDecorators` backend\n * - `lombok-typescript/stage3`: Stage 3 ECMAScript decorators backend\n * - `lombok-typescript/core`: backend-agnostic primitives\n * - `lombok-typescript/codegen`: ts-morph powered code generation\n *\n * @see https://github.com/A-Dev-Kit/lombok-typescript\n */\n\nexport type {\n Backend,\n MetadataStore,\n BackendKind,\n DecoratorKind,\n PropertyName,\n} from './core/index.js';\nexport { MetadataKeys, METADATA_KEY_PREFIX, WeakMapMetadataStore } from './core/index.js';\nexport type { MetadataKey } from './core/index.js';\n\nexport { defineConfig } from './config.js';\nexport type {\n LombokConfig,\n LogConfig,\n BuilderConfig,\n ToStringConfig,\n ValidateConfig,\n CodegenConfig,\n} from './config.js';\n\nexport const VERSION = '0.1.0-pre';\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { B as BackendKind } from './backend-CkLBcDd8.cjs';
|
|
2
|
+
export { a as Backend, D as DecoratorKind, M as MetadataStore, P as PropertyName, W as WeakMapMetadataStore } from './backend-CkLBcDd8.cjs';
|
|
3
|
+
export { METADATA_KEY_PREFIX, MetadataKey, MetadataKeys } from './core/index.cjs';
|
|
4
|
+
|
|
5
|
+
interface LogConfig {
|
|
6
|
+
/** Logging provider. Default `'console'`. */
|
|
7
|
+
provider: 'console' | 'winston' | 'pino' | 'bunyan';
|
|
8
|
+
/** Default log level. Default `'info'`. */
|
|
9
|
+
defaultLevel: 'debug' | 'info' | 'warn' | 'error';
|
|
10
|
+
}
|
|
11
|
+
interface BuilderConfig {
|
|
12
|
+
/** Prefix for builder setter methods. Default `''` (so `name()`, not `withName()`). */
|
|
13
|
+
prefix: string;
|
|
14
|
+
/** Name of the build method. Default `'build'`. */
|
|
15
|
+
buildMethodName: string;
|
|
16
|
+
/** Name of the static builder method. Default `'builder'`. */
|
|
17
|
+
builderMethodName: string;
|
|
18
|
+
}
|
|
19
|
+
interface ToStringConfig {
|
|
20
|
+
/** Output format. Default `'pretty'`. */
|
|
21
|
+
format: 'pretty' | 'json' | 'compact';
|
|
22
|
+
/** Include the class name in output. Default `true`. */
|
|
23
|
+
includeClassName: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface ValidateConfig {
|
|
26
|
+
/** Validation library. Default `'zod'`. */
|
|
27
|
+
provider: 'zod' | 'yup' | 'class-validator';
|
|
28
|
+
/** Throw on validation failure. Default `true`. */
|
|
29
|
+
throwOnError: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface CodegenConfig {
|
|
32
|
+
/** Where to write generated companion files. Default `'.lombok'`. */
|
|
33
|
+
outputDir: string;
|
|
34
|
+
/** Glob patterns for files to process. Default `['src/** /*.ts']`. */
|
|
35
|
+
include: string[];
|
|
36
|
+
/** Glob patterns for files to skip. Defaults exclude tests, `dist`, and `.lombok`. */
|
|
37
|
+
exclude: string[];
|
|
38
|
+
/** Path to the project's tsconfig. Default `'tsconfig.json'`. */
|
|
39
|
+
tsConfigPath: string;
|
|
40
|
+
/** Watch for source changes. Not implemented yet. Default `false`. */
|
|
41
|
+
watch: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Top-level lombok-typescript config.
|
|
45
|
+
*
|
|
46
|
+
* `backend` chooses which decorator standard to assume:
|
|
47
|
+
* - `'legacy'`: `experimentalDecorators` (NestJS / class-validator ecosystem)
|
|
48
|
+
* - `'stage3'`: Stage 3 ECMAScript decorators (TS 5.0+)
|
|
49
|
+
* - `'auto'`: detect from the project's tsconfig
|
|
50
|
+
*
|
|
51
|
+
* The `@ToString` config field is named `formatToString` (not `toString`) so it
|
|
52
|
+
* doesn't clash with `Object.prototype.toString`.
|
|
53
|
+
*/
|
|
54
|
+
interface LombokConfig {
|
|
55
|
+
/** Decorator backend. Default `'auto'`. */
|
|
56
|
+
backend?: BackendKind | 'auto';
|
|
57
|
+
log?: Partial<LogConfig>;
|
|
58
|
+
builder?: Partial<BuilderConfig>;
|
|
59
|
+
/** Settings for the `@ToString` decorator. */
|
|
60
|
+
formatToString?: Partial<ToStringConfig>;
|
|
61
|
+
validate?: Partial<ValidateConfig>;
|
|
62
|
+
codegen?: Partial<CodegenConfig>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Identity helper that gives you autocomplete in `lombok.config.ts`.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* import { defineConfig } from 'lombok-typescript';
|
|
69
|
+
*
|
|
70
|
+
* export default defineConfig({
|
|
71
|
+
* backend: 'legacy',
|
|
72
|
+
* log: { provider: 'winston' },
|
|
73
|
+
* builder: { prefix: 'with' },
|
|
74
|
+
* });
|
|
75
|
+
*/
|
|
76
|
+
declare function defineConfig(config: LombokConfig): LombokConfig;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* `lombok-typescript`: a TypeScript port of Project Lombok plus GoF design
|
|
80
|
+
* patterns as decorators.
|
|
81
|
+
*
|
|
82
|
+
* Sub-paths:
|
|
83
|
+
* - `lombok-typescript/legacy`: legacy `experimentalDecorators` backend
|
|
84
|
+
* - `lombok-typescript/stage3`: Stage 3 ECMAScript decorators backend
|
|
85
|
+
* - `lombok-typescript/core`: backend-agnostic primitives
|
|
86
|
+
* - `lombok-typescript/codegen`: ts-morph powered code generation
|
|
87
|
+
*
|
|
88
|
+
* @see https://github.com/A-Dev-Kit/lombok-typescript
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
declare const VERSION = "0.1.0-pre";
|
|
92
|
+
|
|
93
|
+
export { BackendKind, type BuilderConfig, type CodegenConfig, type LogConfig, type LombokConfig, type ToStringConfig, VERSION, type ValidateConfig, defineConfig };
|