@decaf-ts/decoration 0.8.3 → 0.8.5
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 -1
- package/dist/decoration.cjs +1 -1
- package/dist/decoration.cjs.map +1 -1
- package/dist/decoration.js +1 -1
- package/dist/decoration.js.map +1 -1
- package/lib/decoration/Decoration.cjs +42 -16
- package/lib/decoration/Decoration.d.ts +1 -0
- package/lib/decoration/Decoration.js.map +1 -1
- package/lib/decoration/flavourRegistry.cjs +29 -0
- package/lib/decoration/flavourRegistry.d.ts +9 -0
- package/lib/decoration/flavourRegistry.js.map +1 -0
- package/lib/decoration/index.cjs +2 -0
- package/lib/decoration/index.d.ts +2 -0
- package/lib/decoration/index.js.map +1 -1
- package/lib/decoration/metadataLink.cjs +26 -0
- package/lib/decoration/metadataLink.d.ts +8 -0
- package/lib/decoration/metadataLink.js.map +1 -0
- package/lib/decorators.cjs +17 -197
- package/lib/decorators.d.ts +1 -107
- package/lib/decorators.js.map +1 -1
- package/lib/esm/decoration/Decoration.d.ts +1 -0
- package/lib/esm/decoration/Decoration.js +40 -14
- package/lib/esm/decoration/Decoration.js.map +1 -1
- package/lib/esm/decoration/flavourRegistry.d.ts +9 -0
- package/lib/esm/decoration/flavourRegistry.js +26 -0
- package/lib/esm/decoration/flavourRegistry.js.map +1 -0
- package/lib/esm/decoration/index.d.ts +2 -0
- package/lib/esm/decoration/index.js +2 -0
- package/lib/esm/decoration/index.js.map +1 -1
- package/lib/esm/decoration/metadataLink.d.ts +8 -0
- package/lib/esm/decoration/metadataLink.js +20 -0
- package/lib/esm/decoration/metadataLink.js.map +1 -0
- package/lib/esm/decorators.d.ts +1 -107
- package/lib/esm/decorators.js +6 -187
- package/lib/esm/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/metadata/Metadata.d.ts +5 -0
- package/lib/esm/metadata/Metadata.js +34 -4
- package/lib/esm/metadata/Metadata.js.map +1 -1
- package/lib/esm/shared/core.d.ts +107 -0
- package/lib/esm/shared/core.js +184 -0
- package/lib/esm/shared/core.js.map +1 -0
- package/lib/esm/shared/index.d.ts +1 -0
- package/lib/esm/shared/index.js +2 -0
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/index.cjs +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js.map +1 -1
- package/lib/metadata/Metadata.cjs +34 -4
- package/lib/metadata/Metadata.d.ts +5 -0
- package/lib/metadata/Metadata.js.map +1 -1
- package/lib/shared/core.cjs +195 -0
- package/lib/shared/core.d.ts +107 -0
- package/lib/shared/core.js.map +1 -0
- package/lib/shared/index.cjs +18 -0
- package/lib/shared/index.d.ts +1 -0
- package/lib/shared/index.js.map +1 -0
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +3 -2
- package/workdocs/assets/slogans.json +198 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Assigns arbitrary metadata to a target using a string key.
|
|
3
|
+
* @summary Decorator factory that stores a key/value pair in the central metadata store for the provided class or member.
|
|
4
|
+
* @param {string} key Metadata key to associate with the target.
|
|
5
|
+
* @param {any} value Metadata value to store under the given key.
|
|
6
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator that writes the metadata when applied.
|
|
7
|
+
* @function metadata
|
|
8
|
+
* @category Decorators
|
|
9
|
+
*/
|
|
10
|
+
export declare function metadata(key: string, value: any): (model: any, prop?: any, descriptor?: PropertyDescriptor | number) => void;
|
|
11
|
+
export declare function metadataArray(key: string, ...data: any[]): (target: any, propertyKey?: any, descriptor?: any) => void;
|
|
12
|
+
/**
|
|
13
|
+
* @description Captures and stores a property's design type.
|
|
14
|
+
* @summary Decorator factory that reads the reflected `design:type` for a property and registers it in the metadata store under the properties map.
|
|
15
|
+
* @return {PropertyDecorator} Decorator that records the property's type metadata when applied.
|
|
16
|
+
* @function prop
|
|
17
|
+
* @category Property Decorators
|
|
18
|
+
*/
|
|
19
|
+
export declare function prop(): (model: object, prop?: any) => void;
|
|
20
|
+
/**
|
|
21
|
+
* @description Captures a single parameter type for the decorated method.
|
|
22
|
+
* @summary Decorator factory that ensures the method metadata is initialised and stores the reflected parameter constructor at the provided index.
|
|
23
|
+
* @return {ParameterDecorator} Decorator that records the parameter type when applied.
|
|
24
|
+
* @function param
|
|
25
|
+
* @category Parameter Decorators
|
|
26
|
+
* @mermaid
|
|
27
|
+
* sequenceDiagram
|
|
28
|
+
* participant U as User Code
|
|
29
|
+
* participant P as param()
|
|
30
|
+
* participant M as Metadata
|
|
31
|
+
* U->>P: param()(target, key, index)
|
|
32
|
+
* P->>U: method()(target, key, descriptor)
|
|
33
|
+
* P->>M: params(constructor, key)
|
|
34
|
+
* M-->>P: parameter constructors[]
|
|
35
|
+
* P->>M: set(methods.key.index, constructor)
|
|
36
|
+
* P-->>U: parameter recorded
|
|
37
|
+
*/
|
|
38
|
+
export declare function param(): (model: object, prop?: any, index?: number) => void;
|
|
39
|
+
/**
|
|
40
|
+
* @description Extends a parameter decorator with additional metadata.
|
|
41
|
+
* @summary Applies the default `param()` decorator and augments the stored metadata with an arbitrary key/value pair.
|
|
42
|
+
* @param {string} key Metadata key to associate with the parameter.
|
|
43
|
+
* @param {any} value Metadata value persisted under the given key.
|
|
44
|
+
* @return {ParameterDecorator} Decorator that records both the parameter design type and additional metadata.
|
|
45
|
+
* @function paramMetadata
|
|
46
|
+
* @category Parameter Decorators
|
|
47
|
+
*/
|
|
48
|
+
export declare function paramMetadata(key: string, value: any): (target: any, prop: any, index: number) => void;
|
|
49
|
+
/**
|
|
50
|
+
* @description Records method design-time metadata.
|
|
51
|
+
* @summary Decorator factory that captures a method's reflected parameter and return types, storing them under the appropriate metadata keys so they can be inspected at runtime.
|
|
52
|
+
* @return {MethodDecorator} Decorator that persists the method's signature information into the metadata store when applied.
|
|
53
|
+
* @function method
|
|
54
|
+
* @mermaid
|
|
55
|
+
* sequenceDiagram
|
|
56
|
+
* participant U as User Code
|
|
57
|
+
* participant F as method()
|
|
58
|
+
* participant M as Metadata
|
|
59
|
+
* U->>F: method()(target, key, descriptor)
|
|
60
|
+
* F->>U: Reflect.getOwnMetadata(design:paramtypes)
|
|
61
|
+
* F->>U: Reflect.getOwnMetadata(design:returntype)
|
|
62
|
+
* F->>M: set(methods.key.design:paramtypes, params)
|
|
63
|
+
* F->>M: set(methods.key.design:returntype, returnType)
|
|
64
|
+
* F-->>U: decorated function
|
|
65
|
+
* @category Method Decorators
|
|
66
|
+
*/
|
|
67
|
+
export declare function method(): (obj: any, prop?: any, descriptor?: any) => void;
|
|
68
|
+
/**
|
|
69
|
+
* @description Decorator factory that applies multiple decorators to a single target.
|
|
70
|
+
* @summary Creates a composite decorator that applies multiple decorators in sequence, correctly handling class, method, property, and parameter decorators.
|
|
71
|
+
* @param {Array<ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator>} decorators Collection of decorators to apply.
|
|
72
|
+
* @return {ClassDecorator|MethodDecorator|PropertyDecorator|ParameterDecorator} Decorator function that applies all provided decorators to the target.
|
|
73
|
+
* @function apply
|
|
74
|
+
* @mermaid
|
|
75
|
+
* sequenceDiagram
|
|
76
|
+
* participant U as User Code
|
|
77
|
+
* participant A as apply(...decorators)
|
|
78
|
+
* participant D as Decorator
|
|
79
|
+
* U->>A: get decorator(...decorators)
|
|
80
|
+
* A->>U: returns (target, key?, desc?) => void
|
|
81
|
+
* U->>A: invoke on target
|
|
82
|
+
* loop for each decorator
|
|
83
|
+
* A->>D: invoke appropriate decorator type
|
|
84
|
+
* end
|
|
85
|
+
* @category Decorators
|
|
86
|
+
*/
|
|
87
|
+
export declare function apply(...decorators: Array<ClassDecorator | MethodDecorator | PropertyDecorator | ParameterDecorator>): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
88
|
+
/**
|
|
89
|
+
* @description Creates a property metadata decorator.
|
|
90
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `prop()` to both set an arbitrary metadata key and record the property's design type.
|
|
91
|
+
* @param {string} key Metadata key to set for the property.
|
|
92
|
+
* @param {any} value Metadata value to associate with the key.
|
|
93
|
+
* @return {PropertyDecorator} Decorator that sets the metadata and captures the property's type.
|
|
94
|
+
* @function propMetadata
|
|
95
|
+
* @category Property Decorators
|
|
96
|
+
*/
|
|
97
|
+
export declare function propMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
98
|
+
/**
|
|
99
|
+
* @description Creates a method metadata decorator.
|
|
100
|
+
* @summary Convenience factory that combines `metadata(key, value)` and `method()` to both set an arbitrary metadata key and record the method's design return and param types.
|
|
101
|
+
* @param {string} key Metadata key to set for the property.
|
|
102
|
+
* @param {any} value Metadata value to associate with the key.
|
|
103
|
+
* @return {MethodDecorator} Decorator that sets the metadata and captures the method's signature metadata.
|
|
104
|
+
* @function methodMetadata
|
|
105
|
+
* @category Method Decorators
|
|
106
|
+
*/
|
|
107
|
+
export declare function methodMetadata(key: string, value: any): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/shared/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./core.cjs"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./core";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAAuB"}
|
package/lib/version.cjs
CHANGED
package/lib/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/decoration",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"description": "Decoration and metadata mechanisms for decaf-ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
},
|
|
53
53
|
"files": [
|
|
54
54
|
"lib",
|
|
55
|
-
"dist"
|
|
55
|
+
"dist",
|
|
56
|
+
"workdocs/assets/slogans.json"
|
|
56
57
|
],
|
|
57
58
|
"keywords": [
|
|
58
59
|
"decoration",
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"Slogan": "Decaf-TS Decoration: Metadata, but make it fabulous.",
|
|
4
|
+
"Tags": "Decorators, Fun, Metadata"
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"Slogan": "Decorate your code like it's going to a TypeScript prom.",
|
|
8
|
+
"Tags": "TS, Humor, Annotation"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"Slogan": "Add some flair. Annotate with care.",
|
|
12
|
+
"Tags": "Decorators, Calm, DX"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"Slogan": "Because raw classes are so last season.",
|
|
16
|
+
"Tags": "Decorator, Fashion, Humor"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"Slogan": "No chaos, just classy metadata.",
|
|
20
|
+
"Tags": "Metadata, Calm, Technical"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"Slogan": "Turn boring code into well-dressed functions.",
|
|
24
|
+
"Tags": "Code Styling, Humor, Decorators"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"Slogan": "Decorators that don’t crash the party (or the app).",
|
|
28
|
+
"Tags": "Safe, Humor, DevX"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"Slogan": "TypeScript just got a glow-up.",
|
|
32
|
+
"Tags": "TS, Humor, Beauty"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"Slogan": "Wrap your logic in elegance.",
|
|
36
|
+
"Tags": "Functional, Calm, Decorators"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"Slogan": "Annotation so smooth, it should come with a jazz playlist.",
|
|
40
|
+
"Tags": "Smooth, Metadata, Chill"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"Slogan": "Less boilerplate, more sparkle.",
|
|
44
|
+
"Tags": "Code Efficiency, Humor, Decorators"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"Slogan": "Give your code the decorator it deserves, not the one it fears.",
|
|
48
|
+
"Tags": "Dark Humor, Decorators, DevX"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"Slogan": "Make your classes feel seen.",
|
|
52
|
+
"Tags": "Annotation, Developer Empathy, Metadata"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"Slogan": "Syntax sugar, now 100% gluten-free.",
|
|
56
|
+
"Tags": "Humor, Technical, Decorators"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"Slogan": "Decorators so chill, they come with their own latte foam art.",
|
|
60
|
+
"Tags": "Coffee-themed, Chill, Decorators"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"Slogan": "Transform your functions into fancy, metadata-laced showoffs.",
|
|
64
|
+
"Tags": "Decorators, Fun, Tech"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"Slogan": "Now serving annotations with extra chill.",
|
|
68
|
+
"Tags": "Chill, Decorators, Calm"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"Slogan": "Decaf-TS Decoration: For code that wants to be more than just functional.",
|
|
72
|
+
"Tags": "Decorators, Metadata, Humor"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"Slogan": "Your functions. Now with personality.",
|
|
76
|
+
"Tags": "Decorators, Metadata, Fun"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"Slogan": "Add context. Subtract chaos.",
|
|
80
|
+
"Tags": "Annotation, Calm, Developer"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"Slogan": "Why just write code when you can accessorize it?",
|
|
84
|
+
"Tags": "Humor, Decorators, Style"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"Slogan": "Put the 'extra' in 'extract metadata'.",
|
|
88
|
+
"Tags": "Metadata, Decorators, Fun"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"Slogan": "Less mess. More metadata.",
|
|
92
|
+
"Tags": "Developer Experience, Clean Code, Decorators"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"Slogan": "Because your code deserves a little pampering.",
|
|
96
|
+
"Tags": "Humor, Calm, DevX"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"Slogan": "Type-safe, over-caffeinated styling for your code’s ego.",
|
|
100
|
+
"Tags": "Coffee-themed, Decorators, Fun"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"Slogan": "Your backend just put on its Sunday best.",
|
|
104
|
+
"Tags": "Decorator, Humor, Tech"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"Slogan": "Annotation for humans. Metadata for machines. Sass for everyone.",
|
|
108
|
+
"Tags": "Decorators, Humor, Metadata"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"Slogan": "Turn ‘meh’ code into ‘damn, son’.",
|
|
112
|
+
"Tags": "Humor, Decorators, Style"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"Slogan": "The eyeliner of your API surface.",
|
|
116
|
+
"Tags": "Decorators, Metaphor, Fun"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"Slogan": "Decorators: Because function signatures weren’t dramatic enough.",
|
|
120
|
+
"Tags": "Humor, Drama, TS"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"Slogan": "Code with more sparkle than a teenage vampire.",
|
|
124
|
+
"Tags": "Decorators, Humor, Metadata"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"Slogan": "Put a ring on your logic. It’s committed now.",
|
|
128
|
+
"Tags": "Humor, Decorators, Marriage Metaphor"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"Slogan": "Less ‘raw function’, more ‘Michelin-star method’.",
|
|
132
|
+
"Tags": "Decorators, Food Metaphor, Tech"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"Slogan": "Your code. Curated by Vogue.",
|
|
136
|
+
"Tags": "Humor, Style, Decorators"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"Slogan": "Decorators so smooth they come with a barista.",
|
|
140
|
+
"Tags": "Coffee-themed, Smooth, DevX"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"Slogan": "Add intent. Ditch the boilerplate therapy sessions.",
|
|
144
|
+
"Tags": "Developer Humor, Decorators, Clean Code"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"Slogan": "Let your classes speak fluent metadata.",
|
|
148
|
+
"Tags": "Decorators, Metadata, DX"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"Slogan": "The accessories that actually improve performance.",
|
|
152
|
+
"Tags": "Decorators, Performance, Humor"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"Slogan": "Be the kind of code that comments itself — in metadata.",
|
|
156
|
+
"Tags": "Decorators, Self-aware, Humor"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"Slogan": "Syntax that slaps — politely.",
|
|
160
|
+
"Tags": "Decorators, Humor, Calm"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"Slogan": "Chill annotations for chill developers.",
|
|
164
|
+
"Tags": "Calm, Decorators, DevX"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"Slogan": "Decorate once, impress forever.",
|
|
168
|
+
"Tags": "Efficiency, Decorators, Branding"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"Slogan": "From bland to branded with one line.",
|
|
172
|
+
"Tags": "Decorator, DevX, Humor"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"Slogan": "Because decorators shouldn’t come with existential dread.",
|
|
176
|
+
"Tags": "Developer Humor, Calm, Decorators"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"Slogan": "Write less code. Decorate more personality.",
|
|
180
|
+
"Tags": "Humor, Decorators, Minimalism"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"Slogan": "Functionality meets flair.",
|
|
184
|
+
"Tags": "Decorators, Fun, Tech"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"Slogan": "The sprinkle of syntactic joy your code forgot it needed.",
|
|
188
|
+
"Tags": "Decorators, Joy, Calm"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"Slogan": "Tell your logic it's pretty. It deserves it.",
|
|
192
|
+
"Tags": "Humor, Decorators, Developer Empathy"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"Slogan": "Code annotation that doesn’t scream in ALL CAPS.",
|
|
196
|
+
"Tags": "Calm, Decorators, DX"
|
|
197
|
+
}
|
|
198
|
+
]
|