@travetto/schema 8.0.0-alpha.21 → 8.0.0-alpha.22

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.
@@ -1,5 +1,7 @@
1
1
  import ts from 'typescript';
2
- import { type TransformerState, DocUtil, DeclarationUtil, DecoratorUtil, TransformerHandler } from '@travetto/transformer';
2
+
3
+ import { DeclarationUtil, DecoratorUtil, DocUtil, TransformerHandler, type TransformerState } from '@travetto/transformer';
4
+
3
5
  import { SchemaTransformUtil } from './transformer/util.ts';
4
6
 
5
7
  const CONSTRUCTOR_PROPERTY = 'CONSTRUCTOR';
@@ -21,7 +23,6 @@ interface AutoState {
21
23
  * Processes `@Schema` to register class as a valid Schema
22
24
  */
23
25
  export class SchemaTransformer {
24
-
25
26
  static {
26
27
  TransformerHandler(this, this.startSchema, 'before', 'class', ['Schema']);
27
28
  TransformerHandler(this, this.finalizeSchema, 'after', 'class', ['Schema']);
@@ -74,7 +75,8 @@ export class SchemaTransformer {
74
75
  for (const item of state.getDecoratorList(node)) {
75
76
  if (item.targets?.includes('@travetto/schema:Schema')) {
76
77
  state[IsOptIn] ||= item.options?.includes('opt-in') ?? false;
77
- const methodEnrolls = item.options?.filter(option => option.startsWith('method:'))?.map(option => option.replace('method:', '')) ?? [];
78
+ const methodEnrolls =
79
+ item.options?.filter(option => option.startsWith('method:'))?.map(option => option.replace('method:', '')) ?? [];
78
80
  for (const method of methodEnrolls) {
79
81
  state[AutoEnrollMethods].add(method);
80
82
  }
@@ -123,7 +125,7 @@ export class SchemaTransformer {
123
125
  [CONSTRUCTOR_PROPERTY]: {
124
126
  parameters: cons.parameters
125
127
  .map((parameter, i) => SchemaTransformUtil.computeInputDecoratorParams(state, parameter, { index: i }))
126
- .map(expr => state.extendObjectLiteral({}, ...expr)),
128
+ .map(expr => state.extendObjectLiteral({}, ...expr))
127
129
  }
128
130
  };
129
131
  }
@@ -138,17 +140,15 @@ export class SchemaTransformer {
138
140
  if (accessors.length > 0) {
139
141
  node = DeclarationUtil.ensureConstructor(state.factory, node);
140
142
 
141
- const accessorStatements = accessors.map(accessorName =>
142
- SchemaTransformUtil.createAccessorDefineProperty(state, accessorName)
143
- );
143
+ const accessorStatements = accessors.map(accessorName => SchemaTransformUtil.createAccessorDefineProperty(state, accessorName));
144
144
 
145
145
  const consIndex = node.members.findIndex(member => ts.isConstructorDeclaration(member));
146
146
  const consNode = node.members[consIndex] as ts.ConstructorDeclaration;
147
147
  const insertIndex = DeclarationUtil.getConstructorInsertIndex(consNode);
148
148
  const newStatements = [
149
- ...consNode.body?.statements.slice(0, insertIndex) ?? [],
149
+ ...(consNode.body?.statements.slice(0, insertIndex) ?? []),
150
150
  ...accessorStatements,
151
- ...consNode.body?.statements.slice(insertIndex) ?? []
151
+ ...(consNode.body?.statements.slice(insertIndex) ?? [])
152
152
  ];
153
153
  const updatedCons = state.factory.updateConstructorDeclaration(
154
154
  consNode,
@@ -156,11 +156,7 @@ export class SchemaTransformer {
156
156
  consNode.parameters,
157
157
  state.factory.createBlock(newStatements, true)
158
158
  );
159
- newMembers = ts.factory.createNodeArray([
160
- ...node.members.slice(0, consIndex),
161
- updatedCons,
162
- ...node.members.slice(consIndex + 1)
163
- ]);
159
+ newMembers = ts.factory.createNodeArray([...node.members.slice(0, consIndex), updatedCons, ...node.members.slice(consIndex + 1)]);
164
160
  }
165
161
 
166
162
  delete state[InSchema];
@@ -171,9 +167,7 @@ export class SchemaTransformer {
171
167
 
172
168
  return state.factory.updateClassDeclaration(
173
169
  node,
174
- DecoratorUtil.spliceDecorators(node, existing, [
175
- state.createDecorator(SchemaTransformUtil.SCHEMA_IMPORT, 'Schema', ...params)
176
- ]),
170
+ DecoratorUtil.spliceDecorators(node, existing, [state.createDecorator(SchemaTransformUtil.SCHEMA_IMPORT, 'Schema', ...params)]),
177
171
  node.name,
178
172
  node.typeParameters,
179
173
  node.heritageClauses,
@@ -186,8 +180,13 @@ export class SchemaTransformer {
186
180
  */
187
181
  static processSchemaMethod(state: TransformerState & AutoState, node: ts.MethodDeclaration): ts.MethodDeclaration {
188
182
  if (
189
- this.isInvisible(state, node, node.modifiers?.some(m => m.kind === ts.SyntaxKind.StaticKeyword)) &&
190
- !state[AutoEnrollMethods]?.has(node.name.getText())) {
183
+ this.isInvisible(
184
+ state,
185
+ node,
186
+ node.modifiers?.some(m => m.kind === ts.SyntaxKind.StaticKeyword)
187
+ ) &&
188
+ !state[AutoEnrollMethods]?.has(node.name.getText())
189
+ ) {
191
190
  return node;
192
191
  }
193
192
 
@@ -205,9 +204,7 @@ export class SchemaTransformer {
205
204
 
206
205
  return state.factory.updateMethodDeclaration(
207
206
  node,
208
- DecoratorUtil.spliceDecorators(node, existing, [
209
- state.createDecorator(SchemaTransformUtil.METHOD_IMPORT, 'Method', ...params)
210
- ]),
207
+ DecoratorUtil.spliceDecorators(node, existing, [state.createDecorator(SchemaTransformUtil.METHOD_IMPORT, 'Method', ...params)]),
211
208
  node.asteriskToken,
212
209
  node.name,
213
210
  node.questionToken,
@@ -258,4 +255,4 @@ export class SchemaTransformer {
258
255
  return SchemaTransformUtil.computeInput(state, node);
259
256
  }
260
257
  }
261
- }
258
+ }