skir-typescript-gen 0.0.1 → 0.0.2

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAOd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,QAAA,MAAM,MAAM;;;iBAOV,CAAC;AAEH,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAErC,cAAM,uBAAwB,YAAW,aAAa,CAAC,MAAM,CAAC;IAC5D,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,UAAU;;;sBAAU;IAC7B,QAAQ,CAAC,OAAO,WAAW;IAE3B,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM;CAyBvE;AAkvBD,eAAO,MAAM,SAAS,yBAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAQd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,QAAA,MAAM,MAAM;;;iBAOV,CAAC;AAEH,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAErC,cAAM,uBAAwB,YAAW,aAAa,CAAC,MAAM,CAAC;IAC5D,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,UAAU;;;sBAAU;IAC7B,QAAQ,CAAC,OAAO,WAAW;IAE3B,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM;CAyBvE;AAg3BD,eAAO,MAAM,SAAS,yBAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -74,7 +74,7 @@ class TsModuleCodeGenerator {
74
74
  "${this.inModule.path}",
75
75
  [\n`);
76
76
  for (const recordLocation of this.inModule.records) {
77
- this.writeJsonLike(this.getRecordSpec(recordLocation));
77
+ this.pushJsonLike(this.getRecordSpec(recordLocation));
78
78
  this.push(",\n");
79
79
  }
80
80
  this.push(`
@@ -167,7 +167,12 @@ class TsModuleCodeGenerator {
167
167
  writeFrozenClassForStruct(struct) {
168
168
  const { fileType } = this;
169
169
  const { className } = struct;
170
- this.push(className.isNested ? `// Exported as '${className.type}'\n` : "export ");
170
+ this.pushDocstring([
171
+ this.getDocTextForDocstring(struct.doc),
172
+ `\nDeeply immutable. If you need mutability, use \`${className.type}.Mutable\`.`,
173
+ className.isNested ? `\n@alias ${className.type}` : "",
174
+ ]);
175
+ this.push(!className.isNested ? "export " : "");
171
176
  if (fileType === ".d.ts") {
172
177
  this.push("declare ");
173
178
  }
@@ -180,18 +185,31 @@ class TsModuleCodeGenerator {
180
185
  declarePropertiesOfFrozenClass(struct) {
181
186
  const { className, fields, indexableFields } = struct;
182
187
  this.push(`
188
+ /**
189
+ * Creates a new instance of \`${className.type}\`.
190
+ *
191
+ * You must specify all the fields unless you use \`create<"partial">({...})>\`,
192
+ * in which case missing fields are set to their default values.
193
+ */
183
194
  static create<_Wholeness extends "whole" | "partial" = "whole">(
184
195
  initializer: ${className.type}.Initializer<_Wholeness>
185
196
  ): ${className.type};\n\n`);
186
197
  this.push("private constructor();\n\n");
187
198
  for (const field of fields) {
199
+ this.pushDocstring(this.getDocTextForDocstring(field.doc));
188
200
  this.push(`readonly ${field.property}: ${field.tsTypes.frozen};\n`);
189
201
  }
190
202
  this.pushEol();
191
203
  if (indexableFields.length) {
192
204
  for (const indexableField of indexableFields) {
193
205
  const { searchMethodName } = indexableField;
194
- const { keyType, frozenValueType, searchMethodParamName } = indexableField.indexable;
206
+ const { keyExpression, keyType, frozenValueType, searchMethodParamName, } = indexableField.indexable;
207
+ this.pushDocstring([
208
+ `Searches for an item of \`${indexableField.property}\` by its key.`,
209
+ `The key of an item \`v\` is \`${keyExpression}\`.`,
210
+ "If multiple items share the same key, the last occurrence is returned.",
211
+ "Returns `undefined` if the key was not found.",
212
+ ]);
195
213
  this.push(`${searchMethodName}(`);
196
214
  this.push(`${searchMethodParamName}: ${keyType}`);
197
215
  this.push(`): ${frozenValueType} | undefined;\n`);
@@ -199,12 +217,19 @@ class TsModuleCodeGenerator {
199
217
  this.pushEol();
200
218
  }
201
219
  this.push(`
220
+ /** Returns this instance (no-op). */
202
221
  toFrozen(): this;
222
+
223
+ /** Returns a mutable shallow copy of this instance. */
203
224
  toMutable(): ${className.type}.Mutable;
204
225
 
226
+ /** Default instance with all fields set to their default values. */
205
227
  static readonly DEFAULT: ${className.type};
228
+
229
+ /** Serializer for \`${className.type}\` instances. */
206
230
  static readonly serializer: $.Serializer<${className.type}>;
207
231
 
232
+ /** Mutable version of this class. */
208
233
  static readonly Mutable: typeof ${className.value}_Mutable;\n`);
209
234
  this.declareNestedClasses(struct.nestedRecords);
210
235
  this.pushEol();
@@ -213,6 +238,7 @@ class TsModuleCodeGenerator {
213
238
  this.push("private readonly FROZEN: undefined;\n");
214
239
  }
215
240
  declareNestedClasses(nestedKeys) {
241
+ this.pushEol();
216
242
  const { typeSpeller } = this;
217
243
  // Export the constructor of every nested class as a property of this class.
218
244
  for (const nestedKey of nestedKeys) {
@@ -224,15 +250,24 @@ class TsModuleCodeGenerator {
224
250
  declareMutableClassForStruct(struct) {
225
251
  const { fileType } = this;
226
252
  const { className, fields, fieldsWithMutableGetter } = struct;
227
- this.push(`// Exported as '${className.type}.Mutable'\n`);
253
+ this.pushDocstring([
254
+ `Mutable version of \`${className.type}\`.\n`,
255
+ `@alias ${className.type}.Mutable`,
256
+ ]);
228
257
  if (fileType === ".d.ts") {
229
258
  this.push("declare ");
230
259
  }
231
260
  this.push(`class ${className.value}_Mutable {\n`);
232
261
  this.push(`
262
+ /**
263
+ * Creates a new mutable instance.
264
+ *
265
+ * Fields not specified in \`initializer\` will be set to their default values.
266
+ */
233
267
  constructor(initializer?: ${className.type}.Initializer<"partial">);\n\n`);
234
268
  // Declare the fields.
235
269
  for (const field of fields) {
270
+ this.pushDocstring(this.getDocTextForDocstring(field.doc));
236
271
  const type = field.tsTypes["maybe-mutable"];
237
272
  this.push(`${field.property}: ${type};\n`);
238
273
  }
@@ -244,9 +279,8 @@ class TsModuleCodeGenerator {
244
279
  }
245
280
  this.pushEol();
246
281
  }
247
- this.push(`
248
- toFrozen(): ${className.type};
249
- toMutable(): this;\n`);
282
+ this.pushDocstring("Returns a deeply-immutable copy of this instance.");
283
+ this.push(`toFrozen(): ${className.type};`);
250
284
  this.pushEol();
251
285
  this.push("readonly [$._INITIALIZER]: ");
252
286
  this.push(`${className.type}.Initializer | undefined;\n`);
@@ -255,7 +289,12 @@ class TsModuleCodeGenerator {
255
289
  writeClassForEnum(enumInfo) {
256
290
  const { fileType } = this;
257
291
  const { className } = enumInfo;
258
- this.push(className.isNested ? `// Exported as '${className.type}'\n` : "export ");
292
+ this.pushDocstring([
293
+ this.getDocTextForDocstring(enumInfo.doc),
294
+ "\nDeeply immutable.\n",
295
+ className.isNested ? `@alias ${className.type}` : "",
296
+ ]);
297
+ this.push(!className.isNested ? "export " : "");
259
298
  if (fileType === ".d.ts") {
260
299
  this.push("declare ");
261
300
  }
@@ -269,23 +308,53 @@ class TsModuleCodeGenerator {
269
308
  }
270
309
  }
271
310
  declarePropertiesOfClassForEnum(enumInfo) {
272
- const { className, constantVariants: constantFields, onlyConstants, } = enumInfo;
311
+ const { className, constantVariants, onlyConstants, wrapperVariants } = enumInfo;
273
312
  // Declare the enum constants.
274
- for (const field of constantFields) {
275
- this.push(`static readonly ${field.property}: ${className.type};\n`);
313
+ for (const variant of constantVariants) {
314
+ this.pushDocstring(variant.number === 0
315
+ ? [
316
+ `Constant indicating an unknown \`${className.type}\` (kind: '?').\n`,
317
+ `Default value for fields of type \`${className.type}\`.`,
318
+ ]
319
+ : this.getDocTextForDocstring(variant.doc));
320
+ this.push(`static readonly ${variant.property}: ${className.type};\n`);
276
321
  }
277
322
  this.pushEol();
278
323
  // Declare the `create` function.
324
+ {
325
+ const docLines = [
326
+ `Gets or creates a \`${className.type}\` instance from the given initializer.`,
327
+ ];
328
+ if (!onlyConstants) {
329
+ docLines.push("To create wrapper variants, use `create({kind: ..., value: ...})`.");
330
+ docLines.push("Possible values for `kind` are: " +
331
+ wrapperVariants.map((v) => `'${v.name}'`).join(", ") +
332
+ ".");
333
+ }
334
+ for (const variant of wrapperVariants) {
335
+ if (variant.doc.text.length <= 0) {
336
+ continue;
337
+ }
338
+ const variantDoc = this.getDocTextForDocstring(variant.doc);
339
+ docLines.push(`Doc for '${variant.name}': ${variantDoc}`);
340
+ }
341
+ this.pushDocstring(docLines);
342
+ }
279
343
  this.push(`static create<_Wholeness extends "whole" | "partial" = "whole">(
280
344
  initializer: ${className.type}.Initializer<_Wholeness>
281
345
  ): ${className.type};\n\n`);
282
- // Declare the `kind`, `value` and `union` properties.
283
- this.push(`readonly kind: ${className.type}.Kind;\n`);
284
- if (!onlyConstants) {
285
- this.push(`declare readonly value: ${className.type}.Value;\n`);
286
- this.push(`declare readonly union: ${className.type}.UnionView;\n`);
287
- }
346
+ // Declare the `union`.
347
+ this.pushEol();
348
+ this.pushDocstring([
349
+ "This instance as the union of all the variant types.\n",
350
+ "Use `union.kind` to determine the variant held by this instance.",
351
+ onlyConstants
352
+ ? ""
353
+ : "If it's a wrapper variant, 'union.value' is the wrapped value.",
354
+ ]);
355
+ this.push(`declare readonly union: ${className.type}.UnionView;\n`);
288
356
  this.pushEol();
357
+ this.pushDocstring(`Serializer for \`${className.type}\` instances.`);
289
358
  this.push(`static readonly serializer: $.Serializer<${className.type}>;\n`);
290
359
  this.declareNestedClasses(enumInfo.nestedRecords);
291
360
  }
@@ -314,8 +383,13 @@ class TsModuleCodeGenerator {
314
383
  this.push("}\n}\n\n");
315
384
  }
316
385
  declareMutableGetter(field) {
386
+ this.pushDocstring([
387
+ `If the value of \`${field.property}\` is already mutable, returns it as-is.`,
388
+ `Otherwise, makes a mutable copy, assigns it back to \`${field.property}\` and returns it.`,
389
+ ]);
317
390
  const { mutable } = field.tsTypes;
318
391
  this.push(`get ${field.mutableGetterName}(): ${mutable};\n`);
392
+ this.pushEol();
319
393
  }
320
394
  defineInitFunctionForStruct(record) {
321
395
  const { typeSpeller } = this;
@@ -358,6 +432,7 @@ class TsModuleCodeGenerator {
358
432
  this.push('interface _Initializer<_Wholeness extends "whole" | "partial"> {\n');
359
433
  for (const field of fields) {
360
434
  const type = field.tsTypes.initializer;
435
+ this.pushDocstring(this.getDocTextForDocstring(field.doc));
361
436
  this.push(`readonly ${field.property}: ${type};\n`);
362
437
  }
363
438
  this.push("}\n\n");
@@ -372,28 +447,27 @@ class TsModuleCodeGenerator {
372
447
  }
373
448
  // Declare the Mutable and OrMutable types.
374
449
  this.push(`
450
+ /** Mutable version of ${className.type}. */
375
451
  export type Mutable = ${className.value}_Mutable;
376
452
  export type OrMutable = ${className.name} | Mutable;\n\n`);
377
453
  }
378
454
  declareEnumSpecificTypes(enumInfo) {
379
- const { initializerType, kindType, onlyConstants, unionViewType } = enumInfo;
455
+ const { initializerType, kindType, unionViewType } = enumInfo;
456
+ this.pushDocstring("Identifies a variant.");
380
457
  this.push(`export type Kind = ${kindType};\n\n`);
381
- if (!onlyConstants) {
382
- this.push(`export type Value = ${enumInfo.valueType};\n\n`);
383
- }
384
458
  this.push(`export type Initializer<_Wholeness extends "whole" | "partial" = "whole"> = ${initializerType};\n\n`);
385
- if (!onlyConstants) {
386
- this.push(`export type UnionView = ${unionViewType};\n\n`);
387
- }
459
+ this.pushDocstring(`View of a \`${enumInfo.className.type}\` as a union type.`);
460
+ this.push(`export type UnionView = ${unionViewType};\n\n`);
388
461
  }
389
462
  writeMethod(method) {
390
463
  const { fileType, typeSpeller } = this;
391
- const { number, requestType, responseType } = method;
464
+ const { doc, number, requestType, responseType } = method;
392
465
  const name = method.name.text;
393
466
  const varName = maybeEscapeTopLevelUpperCaseName(name);
394
467
  if (fileType === ".d.ts") {
395
468
  const reqTsType = typeSpeller.getTsType(requestType, "frozen");
396
469
  const respTsType = typeSpeller.getTsType(responseType, "frozen");
470
+ this.pushDocstring(this.getDocTextForDocstring(doc));
397
471
  this.push(`
398
472
  export const ${varName}: $.Method<${reqTsType}, ${respTsType}>;\n\n`);
399
473
  }
@@ -406,7 +480,7 @@ class TsModuleCodeGenerator {
406
480
  number: ${number},
407
481
  requestSerializer: ${reqSerializer},
408
482
  responseSerializer: ${respSerializer},
409
- doc: ${JSON.stringify(method.doc.text)},
483
+ doc: ${JSON.stringify(doc.text)},
410
484
  };\n\n`);
411
485
  }
412
486
  }
@@ -532,7 +606,7 @@ class TsModuleCodeGenerator {
532
606
  }
533
607
  throw TypeError();
534
608
  }
535
- writeJsonLike(jsonLike) {
609
+ pushJsonLike(jsonLike) {
536
610
  if (jsonLike instanceof JavascriptIdentifier) {
537
611
  this.push(jsonLike.identifier);
538
612
  }
@@ -542,7 +616,7 @@ class TsModuleCodeGenerator {
542
616
  else if (Array.isArray(jsonLike)) {
543
617
  this.push("[\n");
544
618
  for (const item of jsonLike) {
545
- this.writeJsonLike(item);
619
+ this.pushJsonLike(item);
546
620
  this.push(",\n");
547
621
  }
548
622
  this.push("]");
@@ -554,7 +628,7 @@ class TsModuleCodeGenerator {
554
628
  continue;
555
629
  }
556
630
  this.push(`${name}: `);
557
- this.writeJsonLike(value);
631
+ this.pushJsonLike(value);
558
632
  this.push(",\n");
559
633
  }
560
634
  this.push("}");
@@ -565,6 +639,7 @@ class TsModuleCodeGenerator {
565
639
  const name = constant.name.text;
566
640
  if (fileType === ".d.ts") {
567
641
  const type = typeSpeller.getTsType(constant.type, "frozen");
642
+ this.pushDocstring(this.getDocTextForDocstring(constant.doc));
568
643
  this.push(`export const ${name}: ${type};\n\n`);
569
644
  }
570
645
  else {
@@ -575,6 +650,40 @@ class TsModuleCodeGenerator {
575
650
  this.push(");\n\n");
576
651
  }
577
652
  }
653
+ getDocTextForDocstring(doc) {
654
+ return doc.pieces
655
+ .map((p) => {
656
+ switch (p.kind) {
657
+ case "text":
658
+ return p.text;
659
+ case "reference":
660
+ return `\`${p.referenceRange.text.slice(1, -1)}\``;
661
+ }
662
+ })
663
+ .join("");
664
+ }
665
+ pushDocstring(textOrLines) {
666
+ const text = (typeof textOrLines === "string" ? textOrLines : textOrLines.join("\n"))
667
+ .replace(/^\s*\n+/g, "")
668
+ .replace(/\n+\s*$/g, "")
669
+ .replace(/\n{3,}/g, "\n\n");
670
+ if (text.length <= 0) {
671
+ return;
672
+ }
673
+ const lines = text.split("\n");
674
+ const escape = (line) => line.replace(/\*\//g, "* /");
675
+ if (lines.length === 1) {
676
+ const line = escape(lines[0]);
677
+ this.push(`/** ${line} */\n`);
678
+ }
679
+ else {
680
+ this.push("/**\n");
681
+ for (const line of lines.map(escape)) {
682
+ this.push(` * ${line}\n`);
683
+ }
684
+ this.push(" */\n");
685
+ }
686
+ }
578
687
  push(code) {
579
688
  this.code += code.trimStart();
580
689
  }
@@ -629,9 +738,15 @@ class TsModuleCodeGenerator {
629
738
  break;
630
739
  }
631
740
  }
632
- const indent = indentUnit.repeat(contextStack.length);
633
- result += `${indent}${line.trimEnd()}\n`;
634
- if (line.startsWith("//")) {
741
+ let indent = indentUnit.repeat(contextStack.length);
742
+ if (line.startsWith("*")) {
743
+ // Docstring: make sure the stars are aligned.
744
+ indent += " ";
745
+ }
746
+ result += `${indent}${line}\n`;
747
+ if (line.startsWith("//") ||
748
+ line.startsWith("/*") ||
749
+ line.startsWith("*")) {
635
750
  continue;
636
751
  }
637
752
  const lastChar = line.slice(-1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -34,8 +34,6 @@ export interface EnumInfo {
34
34
  readonly constantVariants: readonly EnumConstantVariant[];
35
35
  readonly wrapperVariants: readonly EnumWrapperVariant[];
36
36
  readonly kindType: TsType;
37
- /** Union of `undefined` and the frozen type of all the wrapper variants. */
38
- readonly valueType: TsType;
39
37
  readonly initializerType: TsType;
40
38
  readonly valueOnlyInitializerType: TsType;
41
39
  readonly unionViewType: TsType;
@@ -1 +1 @@
1
- {"version":3,"file":"record_info.d.ts","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record_info.d.ts","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"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"}
@@ -109,7 +109,6 @@ class RecordInfoCreator {
109
109
  const constantVariants = [];
110
110
  const wrapperVariants = [];
111
111
  const typesInKindTypeUnion = [];
112
- const typesInValueTypeUnion = [TsType.UNDEFINED];
113
112
  const typesInInitializerUnion = [];
114
113
  const typesInValueOnlyInitializerUnion = [];
115
114
  const typesInUnionView = [];
@@ -146,7 +145,6 @@ class RecordInfoCreator {
146
145
  const nameLiteral = TsType.literal(name);
147
146
  const { frozen, initializer } = enumVariant.tsTypes;
148
147
  wrapperVariants.push(enumVariant);
149
- typesInValueTypeUnion.push(frozen);
150
148
  typesInKindTypeUnion.push(nameLiteral);
151
149
  typesInInitializerUnion.push(TsType.inlineInterface({
152
150
  kind: nameLiteral,
@@ -172,7 +170,6 @@ class RecordInfoCreator {
172
170
  constantVariants: constantVariants,
173
171
  wrapperVariants: wrapperVariants,
174
172
  kindType: TsType.union(typesInKindTypeUnion),
175
- valueType: TsType.union(typesInValueTypeUnion),
176
173
  initializerType: TsType.union(typesInInitializerUnion),
177
174
  valueOnlyInitializerType: TsType.union(typesInValueOnlyInitializerUnion),
178
175
  unionViewType: TsType.union(typesInUnionView),
@@ -1 +1 @@
1
- {"version":3,"file":"record_info.js","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record_info.js","sourceRoot":"","sources":["../src/record_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,UAAU,EACV,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAA2B,MAAM,mBAAmB,CAAC;AAmI1E,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,WAAwB;IAExB,OAAO,IAAI,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,iBAAiB;IACrB,YACmB,MAAsB,EACtB,WAAwB;QADxB,WAAM,GAAN,MAAM,CAAgB;QACtB,gBAAW,GAAX,WAAW,CAAa;QAEzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAID,MAAM;QACJ,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE/B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,yBAAyB;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QAE3C,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACjE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAY;QACpC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,UAAU,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,gBAAgB,GAAG,SAAS,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,4EAA4E;QAC5E,wCAAwC;QACxC,MAAM,gBAAgB,GACpB,CAAC,KAAK,CAAC,WAAW;YAClB,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;YACxB,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;QAC3B,IAAI,SAAgC,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACtC,0BAA0B;YAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,qDAAqD;gBACrD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,eAAe,GAAG,GAAG,CAAC,IAAI;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC3D,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,KAAK,eAAe,EAAE,CAAC;YAC7C,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,qBAAqB,GAAG,GAAG,CAAC,IAAI;iBACjC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAChB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CACnE;iBACA,IAAI,CAAC,EAAE,CAAC,CAAC;YACZ,IACE,mBAAmB,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAC9C,qBAAqB,KAAK,MAAM,EAChC,CAAC;gBACD,qBAAqB,GAAG,GAAG,qBAAqB,GAAG,CAAC;YACtD,CAAC;YACD,SAAS,GAAG;gBACV,OAAO,EAAE,OAAO;gBAChB,aAAa,EAAE,aAAa;gBAC5B,kBAAkB,EAAE,kBAAkB;gBACtC,eAAe,EAAE,eAAe;gBAChC,qBAAqB,EAAE,qBAAqB;aAC7C,CAAC;QACJ,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,gBAAgB,EAAE,gBAAgB;YAClC,iBAAiB,EAAE,iBAAiB;YACpC,gBAAgB,EAAE,gBAAgB;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW;YAChC,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,gBAAgB,GAA0B,EAAE,CAAC;QACnD,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,MAAM,uBAAuB,GAAa,EAAE,CAAC;QAC7C,MAAM,gCAAgC,GAAa,EAAE,CAAC;QACtD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QAEtC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5D,MAAM,wBAAwB,GAAG,CAAC,CAAsB,EAAQ,EAAE;YAChE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,gBAAgB,CAAC,IAAI,CACnB,MAAM,CAAC,eAAe,CAAC;gBACrB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC,SAAS;aACxB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,wCAAwC;QACxC,wBAAwB,CAAC;YACvB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,CAAC;YACT,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAC9B,CAAC,CAAC;QACH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,sBAAsB;gBACtB,wBAAwB,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;gBAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;gBAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;gBACpD,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,uBAAuB,CAAC,IAAI,CAC1B,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;iBACnB,CAAC,CACH,CAAC;gBACF,gCAAgC,CAAC,IAAI,CACnC,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;iBACnB,CAAC,CACH,CAAC;gBACF,gBAAgB,CAAC,IAAI,CACnB,MAAM,CAAC,eAAe,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,MAAM;iBACd,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE;YAC7C,aAAa,EAAE,CAAC,eAAe,CAAC,MAAM;YACtC,gBAAgB,EAAE,gBAAgB;YAClC,eAAe,EAAE,eAAe;YAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC5C,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC;YACtD,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC;YACxE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;SAC9C,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAAC,OAAc;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAC;QAC/B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO;YACL,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAAC,OAAc;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,GAAG,CAAC;QAC/B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;YAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;SAClC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,cAAqB;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,gBAAgB,GAAG,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC;QACtD,MAAM,OAAO,GAAG,EAAgC,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,IAAuC;QAC3D,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;oBACvB,KAAK,MAAM,CAAC;oBACZ,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,SAAS,CAAC;oBACf,KAAK,QAAQ;wBACX,OAAO,GAAG,CAAC;oBACb,KAAK,OAAO,CAAC;oBACb,KAAK,QAAQ;wBACX,0BAA0B;wBAC1B,OAAO,cAAc,CAAC;oBACxB,KAAK,WAAW;wBACd,OAAO,cAAc,CAAC;oBACxB,KAAK,OAAO;wBACV,OAAO,cAAc,CAAC;oBACxB,OAAO,CAAC,CAAC,CAAC;wBACR,MAAM,CAAC,GAAU,IAAI,CAAC,SAAS,CAAC;wBAChC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,kCAAkC,GAAwB,IAAI,GAAG,CAAC;IACtE,UAAU;IACV,WAAW;CACZ,CAAC,CAAC;AAEH,mDAAmD;AACnD,MAAM,gCAAgC,GAAwB,IAAI,GAAG,CAAC;IACpE,SAAS;CACV,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB;IACzD,OAAO,sBAAsB,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,6BAA6B;AAC7B,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC,kCAAkC,CAAC,GAAG,CAAC,WAAW,CAAC;QACnD,CAAC,CAAC,GAAG,WAAW,GAAG;QACnB,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,uBAAuB;AACvB,gFAAgF;AAChF,6BAA6B;AAC7B,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,gCAAgC,CAAC,GAAG,CAAC,WAAW,CAAC;QACtD,CAAC,CAAC,GAAG,WAAW,GAAG;QACnB,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,UAAU;IACV,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,YAAY;IACZ,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,WAAW;IACX,KAAK;IACL,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,SAAS;IACT,aAAa;IACb,SAAS;IACT,KAAK;IACL,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,IAAI;IACJ,WAAW;IACX,OAAO;IACP,OAAO;CACR,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skir-typescript-gen",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {
@@ -45,7 +45,7 @@
45
45
  "prettier": "^3.2.4",
46
46
  "prettier-plugin-organize-imports": "^4.2.0",
47
47
  "skir": "^0.0.3",
48
- "skir-client": "^0.0.5",
48
+ "skir-client": "^0.0.10",
49
49
  "ts-node": "^10.9.2",
50
50
  "typescript": "^5.3.3"
51
51
  }
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ import * as paths from "path";
2
2
  import type {
3
3
  CodeGenerator,
4
4
  Constant,
5
+ Doc,
5
6
  Method,
6
7
  Module,
7
8
  RecordKey,
@@ -108,7 +109,7 @@ class TsModuleCodeGenerator {
108
109
  "${this.inModule.path}",
109
110
  [\n`);
110
111
  for (const recordLocation of this.inModule.records) {
111
- this.writeJsonLike(this.getRecordSpec(recordLocation));
112
+ this.pushJsonLike(this.getRecordSpec(recordLocation));
112
113
  this.push(",\n");
113
114
  }
114
115
  this.push(`
@@ -209,9 +210,12 @@ class TsModuleCodeGenerator {
209
210
  private writeFrozenClassForStruct(struct: StructInfo): void {
210
211
  const { fileType } = this;
211
212
  const { className } = struct;
212
- this.push(
213
- className.isNested ? `// Exported as '${className.type}'\n` : "export ",
214
- );
213
+ this.pushDocstring([
214
+ this.getDocTextForDocstring(struct.doc),
215
+ `\nDeeply immutable. If you need mutability, use \`${className.type}.Mutable\`.`,
216
+ className.isNested ? `\n@alias ${className.type}` : "",
217
+ ]);
218
+ this.push(!className.isNested ? "export " : "");
215
219
  if (fileType === ".d.ts") {
216
220
  this.push("declare ");
217
221
  }
@@ -227,19 +231,36 @@ class TsModuleCodeGenerator {
227
231
  private declarePropertiesOfFrozenClass(struct: StructInfo): void {
228
232
  const { className, fields, indexableFields } = struct;
229
233
  this.push(`
234
+ /**
235
+ * Creates a new instance of \`${className.type}\`.
236
+ *
237
+ * You must specify all the fields unless you use \`create<"partial">({...})>\`,
238
+ * in which case missing fields are set to their default values.
239
+ */
230
240
  static create<_Wholeness extends "whole" | "partial" = "whole">(
231
241
  initializer: ${className.type}.Initializer<_Wholeness>
232
242
  ): ${className.type};\n\n`);
233
243
  this.push("private constructor();\n\n");
234
244
  for (const field of fields) {
245
+ this.pushDocstring(this.getDocTextForDocstring(field.doc));
235
246
  this.push(`readonly ${field.property}: ${field.tsTypes.frozen};\n`);
236
247
  }
237
248
  this.pushEol();
238
249
  if (indexableFields.length) {
239
250
  for (const indexableField of indexableFields) {
240
251
  const { searchMethodName } = indexableField;
241
- const { keyType, frozenValueType, searchMethodParamName } =
242
- indexableField.indexable!;
252
+ const {
253
+ keyExpression,
254
+ keyType,
255
+ frozenValueType,
256
+ searchMethodParamName,
257
+ } = indexableField.indexable!;
258
+ this.pushDocstring([
259
+ `Searches for an item of \`${indexableField.property}\` by its key.`,
260
+ `The key of an item \`v\` is \`${keyExpression}\`.`,
261
+ "If multiple items share the same key, the last occurrence is returned.",
262
+ "Returns `undefined` if the key was not found.",
263
+ ]);
243
264
  this.push(`${searchMethodName}(`);
244
265
  this.push(`${searchMethodParamName}: ${keyType}`);
245
266
  this.push(`): ${frozenValueType} | undefined;\n`);
@@ -247,12 +268,19 @@ class TsModuleCodeGenerator {
247
268
  this.pushEol();
248
269
  }
249
270
  this.push(`
271
+ /** Returns this instance (no-op). */
250
272
  toFrozen(): this;
273
+
274
+ /** Returns a mutable shallow copy of this instance. */
251
275
  toMutable(): ${className.type}.Mutable;
252
276
 
277
+ /** Default instance with all fields set to their default values. */
253
278
  static readonly DEFAULT: ${className.type};
279
+
280
+ /** Serializer for \`${className.type}\` instances. */
254
281
  static readonly serializer: $.Serializer<${className.type}>;
255
282
 
283
+ /** Mutable version of this class. */
256
284
  static readonly Mutable: typeof ${className.value}_Mutable;\n`);
257
285
  this.declareNestedClasses(struct.nestedRecords);
258
286
  this.pushEol();
@@ -262,6 +290,7 @@ class TsModuleCodeGenerator {
262
290
  }
263
291
 
264
292
  private declareNestedClasses(nestedKeys: readonly RecordKey[]): void {
293
+ this.pushEol();
265
294
  const { typeSpeller } = this;
266
295
  // Export the constructor of every nested class as a property of this class.
267
296
  for (const nestedKey of nestedKeys) {
@@ -274,16 +303,25 @@ class TsModuleCodeGenerator {
274
303
  private declareMutableClassForStruct(struct: StructInfo): void {
275
304
  const { fileType } = this;
276
305
  const { className, fields, fieldsWithMutableGetter } = struct;
277
- this.push(`// Exported as '${className.type}.Mutable'\n`);
306
+ this.pushDocstring([
307
+ `Mutable version of \`${className.type}\`.\n`,
308
+ `@alias ${className.type}.Mutable`,
309
+ ]);
278
310
  if (fileType === ".d.ts") {
279
311
  this.push("declare ");
280
312
  }
281
313
  this.push(`class ${className.value}_Mutable {\n`);
282
314
  this.push(`
315
+ /**
316
+ * Creates a new mutable instance.
317
+ *
318
+ * Fields not specified in \`initializer\` will be set to their default values.
319
+ */
283
320
  constructor(initializer?: ${className.type}.Initializer<"partial">);\n\n`);
284
321
 
285
322
  // Declare the fields.
286
323
  for (const field of fields) {
324
+ this.pushDocstring(this.getDocTextForDocstring(field.doc));
287
325
  const type = field.tsTypes["maybe-mutable"];
288
326
  this.push(`${field.property}: ${type};\n`);
289
327
  }
@@ -297,9 +335,8 @@ class TsModuleCodeGenerator {
297
335
  this.pushEol();
298
336
  }
299
337
 
300
- this.push(`
301
- toFrozen(): ${className.type};
302
- toMutable(): this;\n`);
338
+ this.pushDocstring("Returns a deeply-immutable copy of this instance.");
339
+ this.push(`toFrozen(): ${className.type};`);
303
340
  this.pushEol();
304
341
  this.push("readonly [$._INITIALIZER]: ");
305
342
  this.push(`${className.type}.Initializer | undefined;\n`);
@@ -309,9 +346,12 @@ class TsModuleCodeGenerator {
309
346
  private writeClassForEnum(enumInfo: EnumInfo): void {
310
347
  const { fileType } = this;
311
348
  const { className } = enumInfo;
312
- this.push(
313
- className.isNested ? `// Exported as '${className.type}'\n` : "export ",
314
- );
349
+ this.pushDocstring([
350
+ this.getDocTextForDocstring(enumInfo.doc),
351
+ "\nDeeply immutable.\n",
352
+ className.isNested ? `@alias ${className.type}` : "",
353
+ ]);
354
+ this.push(!className.isNested ? "export " : "");
315
355
  if (fileType === ".d.ts") {
316
356
  this.push("declare ");
317
357
  }
@@ -327,33 +367,66 @@ class TsModuleCodeGenerator {
327
367
  }
328
368
 
329
369
  private declarePropertiesOfClassForEnum(enumInfo: EnumInfo): void {
330
- const {
331
- className,
332
- constantVariants: constantFields,
333
- onlyConstants,
334
- } = enumInfo;
370
+ const { className, constantVariants, onlyConstants, wrapperVariants } =
371
+ enumInfo;
335
372
 
336
373
  // Declare the enum constants.
337
- for (const field of constantFields) {
338
- this.push(`static readonly ${field.property}: ${className.type};\n`);
374
+ for (const variant of constantVariants) {
375
+ this.pushDocstring(
376
+ variant.number === 0
377
+ ? [
378
+ `Constant indicating an unknown \`${className.type}\` (kind: '?').\n`,
379
+ `Default value for fields of type \`${className.type}\`.`,
380
+ ]
381
+ : this.getDocTextForDocstring(variant.doc),
382
+ );
383
+ this.push(`static readonly ${variant.property}: ${className.type};\n`);
339
384
  }
340
385
  this.pushEol();
341
386
 
342
387
  // Declare the `create` function.
388
+ {
389
+ const docLines = [
390
+ `Gets or creates a \`${className.type}\` instance from the given initializer.`,
391
+ ];
392
+ if (!onlyConstants) {
393
+ docLines.push(
394
+ "To create wrapper variants, use `create({kind: ..., value: ...})`.",
395
+ );
396
+ docLines.push(
397
+ "Possible values for `kind` are: " +
398
+ wrapperVariants.map((v) => `'${v.name}'`).join(", ") +
399
+ ".",
400
+ );
401
+ }
402
+ for (const variant of wrapperVariants) {
403
+ if (variant.doc.text.length <= 0) {
404
+ continue;
405
+ }
406
+ const variantDoc = this.getDocTextForDocstring(variant.doc);
407
+ docLines.push(`Doc for '${variant.name}': ${variantDoc}`);
408
+ }
409
+ this.pushDocstring(docLines);
410
+ }
343
411
  this.push(
344
412
  `static create<_Wholeness extends "whole" | "partial" = "whole">(
345
413
  initializer: ${className.type}.Initializer<_Wholeness>
346
414
  ): ${className.type};\n\n`,
347
415
  );
348
416
 
349
- // Declare the `kind`, `value` and `union` properties.
350
- this.push(`readonly kind: ${className.type}.Kind;\n`);
351
- if (!onlyConstants) {
352
- this.push(`declare readonly value: ${className.type}.Value;\n`);
353
- this.push(`declare readonly union: ${className.type}.UnionView;\n`);
354
- }
417
+ // Declare the `union`.
418
+ this.pushEol();
419
+ this.pushDocstring([
420
+ "This instance as the union of all the variant types.\n",
421
+ "Use `union.kind` to determine the variant held by this instance.",
422
+ onlyConstants
423
+ ? ""
424
+ : "If it's a wrapper variant, 'union.value' is the wrapped value.",
425
+ ]);
426
+ this.push(`declare readonly union: ${className.type}.UnionView;\n`);
355
427
  this.pushEol();
356
428
 
429
+ this.pushDocstring(`Serializer for \`${className.type}\` instances.`);
357
430
  this.push(`static readonly serializer: $.Serializer<${className.type}>;\n`);
358
431
  this.declareNestedClasses(enumInfo.nestedRecords);
359
432
  }
@@ -388,8 +461,13 @@ class TsModuleCodeGenerator {
388
461
  }
389
462
 
390
463
  private declareMutableGetter(field: StructField): void {
464
+ this.pushDocstring([
465
+ `If the value of \`${field.property}\` is already mutable, returns it as-is.`,
466
+ `Otherwise, makes a mutable copy, assigns it back to \`${field.property}\` and returns it.`,
467
+ ]);
391
468
  const { mutable } = field.tsTypes;
392
469
  this.push(`get ${field.mutableGetterName}(): ${mutable};\n`);
470
+ this.pushEol();
393
471
  }
394
472
 
395
473
  private defineInitFunctionForStruct(record: StructInfo): void {
@@ -443,6 +521,7 @@ class TsModuleCodeGenerator {
443
521
  );
444
522
  for (const field of fields) {
445
523
  const type = field.tsTypes.initializer;
524
+ this.pushDocstring(this.getDocTextForDocstring(field.doc));
446
525
  this.push(`readonly ${field.property}: ${type};\n`);
447
526
  }
448
527
  this.push("}\n\n");
@@ -461,33 +540,33 @@ class TsModuleCodeGenerator {
461
540
 
462
541
  // Declare the Mutable and OrMutable types.
463
542
  this.push(`
543
+ /** Mutable version of ${className.type}. */
464
544
  export type Mutable = ${className.value}_Mutable;
465
545
  export type OrMutable = ${className.name} | Mutable;\n\n`);
466
546
  }
467
547
 
468
548
  private declareEnumSpecificTypes(enumInfo: EnumInfo): void {
469
- const { initializerType, kindType, onlyConstants, unionViewType } =
470
- enumInfo;
549
+ const { initializerType, kindType, unionViewType } = enumInfo;
550
+ this.pushDocstring("Identifies a variant.");
471
551
  this.push(`export type Kind = ${kindType};\n\n`);
472
- if (!onlyConstants) {
473
- this.push(`export type Value = ${enumInfo.valueType};\n\n`);
474
- }
475
552
  this.push(
476
553
  `export type Initializer<_Wholeness extends "whole" | "partial" = "whole"> = ${initializerType};\n\n`,
477
554
  );
478
- if (!onlyConstants) {
479
- this.push(`export type UnionView = ${unionViewType};\n\n`);
480
- }
555
+ this.pushDocstring(
556
+ `View of a \`${enumInfo.className.type}\` as a union type.`,
557
+ );
558
+ this.push(`export type UnionView = ${unionViewType};\n\n`);
481
559
  }
482
560
 
483
561
  private writeMethod(method: Method): void {
484
562
  const { fileType, typeSpeller } = this;
485
- const { number, requestType, responseType } = method;
563
+ const { doc, number, requestType, responseType } = method;
486
564
  const name = method.name.text;
487
565
  const varName = maybeEscapeTopLevelUpperCaseName(name);
488
566
  if (fileType === ".d.ts") {
489
567
  const reqTsType = typeSpeller.getTsType(requestType!, "frozen");
490
568
  const respTsType = typeSpeller.getTsType(responseType!, "frozen");
569
+ this.pushDocstring(this.getDocTextForDocstring(doc));
491
570
  this.push(`
492
571
  export const ${varName}: $.Method<${reqTsType}, ${respTsType}>;\n\n`);
493
572
  } else {
@@ -499,7 +578,7 @@ class TsModuleCodeGenerator {
499
578
  number: ${number},
500
579
  requestSerializer: ${reqSerializer},
501
580
  responseSerializer: ${respSerializer},
502
- doc: ${JSON.stringify(method.doc.text)},
581
+ doc: ${JSON.stringify(doc.text)},
503
582
  };\n\n`);
504
583
  }
505
584
  }
@@ -649,7 +728,7 @@ class TsModuleCodeGenerator {
649
728
  throw TypeError();
650
729
  }
651
730
 
652
- private writeJsonLike(jsonLike: JsonLike): void {
731
+ private pushJsonLike(jsonLike: JsonLike): void {
653
732
  if (jsonLike instanceof JavascriptIdentifier) {
654
733
  this.push(jsonLike.identifier);
655
734
  } else if (typeof jsonLike === "string" || typeof jsonLike === "number") {
@@ -657,7 +736,7 @@ class TsModuleCodeGenerator {
657
736
  } else if (Array.isArray(jsonLike)) {
658
737
  this.push("[\n");
659
738
  for (const item of jsonLike) {
660
- this.writeJsonLike(item);
739
+ this.pushJsonLike(item);
661
740
  this.push(",\n");
662
741
  }
663
742
  this.push("]");
@@ -668,7 +747,7 @@ class TsModuleCodeGenerator {
668
747
  continue;
669
748
  }
670
749
  this.push(`${name}: `);
671
- this.writeJsonLike(value);
750
+ this.pushJsonLike(value);
672
751
  this.push(",\n");
673
752
  }
674
753
  this.push("}");
@@ -680,6 +759,7 @@ class TsModuleCodeGenerator {
680
759
  const name = constant.name.text;
681
760
  if (fileType === ".d.ts") {
682
761
  const type = typeSpeller.getTsType(constant.type!, "frozen");
762
+ this.pushDocstring(this.getDocTextForDocstring(constant.doc));
683
763
  this.push(`export const ${name}: ${type};\n\n`);
684
764
  } else {
685
765
  this.push(`export const ${name} = /*@__PURE__*/ `);
@@ -692,6 +772,45 @@ class TsModuleCodeGenerator {
692
772
 
693
773
  private static readonly SEPARATOR = `// ${"-".repeat(80 - "// ".length)}`;
694
774
 
775
+ private getDocTextForDocstring(doc: Doc): string {
776
+ return doc.pieces
777
+ .map((p) => {
778
+ switch (p.kind) {
779
+ case "text":
780
+ return p.text;
781
+ case "reference":
782
+ return `\`${p.referenceRange.text.slice(1, -1)}\``;
783
+ }
784
+ })
785
+ .join("");
786
+ }
787
+
788
+ private pushDocstring(textOrLines: string | readonly string[]): void {
789
+ const text = (
790
+ typeof textOrLines === "string" ? textOrLines : textOrLines.join("\n")
791
+ )
792
+ .replace(/^\s*\n+/g, "")
793
+ .replace(/\n+\s*$/g, "")
794
+ .replace(/\n{3,}/g, "\n\n");
795
+
796
+ if (text.length <= 0) {
797
+ return;
798
+ }
799
+
800
+ const lines = text.split("\n");
801
+ const escape = (line: string): string => line.replace(/\*\//g, "* /");
802
+ if (lines.length === 1) {
803
+ const line = escape(lines[0]!);
804
+ this.push(`/** ${line} */\n`);
805
+ } else {
806
+ this.push("/**\n");
807
+ for (const line of lines.map(escape)) {
808
+ this.push(` * ${line}\n`);
809
+ }
810
+ this.push(" */\n");
811
+ }
812
+ }
813
+
695
814
  private push(code: string): void {
696
815
  this.code += code.trimStart();
697
816
  }
@@ -749,9 +868,17 @@ class TsModuleCodeGenerator {
749
868
  break;
750
869
  }
751
870
  }
752
- const indent = indentUnit.repeat(contextStack.length);
753
- result += `${indent}${line.trimEnd()}\n`;
754
- if (line.startsWith("//")) {
871
+ let indent = indentUnit.repeat(contextStack.length);
872
+ if (line.startsWith("*")) {
873
+ // Docstring: make sure the stars are aligned.
874
+ indent += " ";
875
+ }
876
+ result += `${indent}${line}\n`;
877
+ if (
878
+ line.startsWith("//") ||
879
+ line.startsWith("/*") ||
880
+ line.startsWith("*")
881
+ ) {
755
882
  continue;
756
883
  }
757
884
  const lastChar = line.slice(-1);
@@ -50,8 +50,6 @@ export interface EnumInfo {
50
50
  readonly constantVariants: readonly EnumConstantVariant[];
51
51
  readonly wrapperVariants: readonly EnumWrapperVariant[];
52
52
  readonly kindType: TsType;
53
- /** Union of `undefined` and the frozen type of all the wrapper variants. */
54
- readonly valueType: TsType;
55
53
  readonly initializerType: TsType;
56
54
  readonly valueOnlyInitializerType: TsType;
57
55
  readonly unionViewType: TsType;
@@ -270,7 +268,6 @@ class RecordInfoCreator {
270
268
  const constantVariants: EnumConstantVariant[] = [];
271
269
  const wrapperVariants: EnumWrapperVariant[] = [];
272
270
  const typesInKindTypeUnion: TsType[] = [];
273
- const typesInValueTypeUnion: TsType[] = [TsType.UNDEFINED];
274
271
  const typesInInitializerUnion: TsType[] = [];
275
272
  const typesInValueOnlyInitializerUnion: TsType[] = [];
276
273
  const typesInUnionView: TsType[] = [];
@@ -311,7 +308,6 @@ class RecordInfoCreator {
311
308
  const nameLiteral = TsType.literal(name);
312
309
  const { frozen, initializer } = enumVariant.tsTypes;
313
310
  wrapperVariants.push(enumVariant);
314
- typesInValueTypeUnion.push(frozen);
315
311
  typesInKindTypeUnion.push(nameLiteral);
316
312
  typesInInitializerUnion.push(
317
313
  TsType.inlineInterface({
@@ -344,7 +340,6 @@ class RecordInfoCreator {
344
340
  constantVariants: constantVariants,
345
341
  wrapperVariants: wrapperVariants,
346
342
  kindType: TsType.union(typesInKindTypeUnion),
347
- valueType: TsType.union(typesInValueTypeUnion),
348
343
  initializerType: TsType.union(typesInInitializerUnion),
349
344
  valueOnlyInitializerType: TsType.union(typesInValueOnlyInitializerUnion),
350
345
  unionViewType: TsType.union(typesInUnionView),