ajsc 4.0.0 → 5.0.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.
Files changed (35) hide show
  1. package/dist/TypescriptBaseConverter.d.ts +14 -1
  2. package/dist/TypescriptBaseConverter.js +28 -3
  3. package/dist/TypescriptBaseConverter.js.map +1 -1
  4. package/dist/TypescriptConverter.additionalProperties.test.js +110 -0
  5. package/dist/TypescriptConverter.additionalProperties.test.js.map +1 -0
  6. package/dist/TypescriptConverter.arrays.test.js +130 -0
  7. package/dist/TypescriptConverter.arrays.test.js.map +1 -0
  8. package/dist/TypescriptConverter.composites.test.d.ts +1 -0
  9. package/dist/TypescriptConverter.composites.test.js +13 -0
  10. package/dist/TypescriptConverter.composites.test.js.map +1 -0
  11. package/dist/TypescriptConverter.d.ts +56 -9
  12. package/dist/TypescriptConverter.js +105 -7
  13. package/dist/TypescriptConverter.js.map +1 -1
  14. package/dist/TypescriptConverter.objects.test.d.ts +1 -0
  15. package/dist/TypescriptConverter.objects.test.js +258 -0
  16. package/dist/TypescriptConverter.objects.test.js.map +1 -0
  17. package/dist/TypescriptConverter.options.test.d.ts +1 -0
  18. package/dist/TypescriptConverter.options.test.js +430 -0
  19. package/dist/TypescriptConverter.options.test.js.map +1 -0
  20. package/dist/TypescriptConverter.primitives.test.d.ts +1 -0
  21. package/dist/TypescriptConverter.primitives.test.js +26 -0
  22. package/dist/TypescriptConverter.primitives.test.js.map +1 -0
  23. package/dist/index.d.ts +0 -1
  24. package/dist/index.js +0 -1
  25. package/dist/index.js.map +1 -1
  26. package/package.json +5 -3
  27. package/dist/TypescriptConverter.test.js +0 -325
  28. package/dist/TypescriptConverter.test.js.map +0 -1
  29. package/dist/TypescriptProcedureConverter.d.ts +0 -19
  30. package/dist/TypescriptProcedureConverter.js +0 -54
  31. package/dist/TypescriptProcedureConverter.js.map +0 -1
  32. package/dist/TypescriptProcedureConverter.test.js +0 -997
  33. package/dist/TypescriptProcedureConverter.test.js.map +0 -1
  34. /package/dist/{TypescriptConverter.test.d.ts → TypescriptConverter.additionalProperties.test.d.ts} +0 -0
  35. /package/dist/{TypescriptProcedureConverter.test.d.ts → TypescriptConverter.arrays.test.d.ts} +0 -0
@@ -1,325 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { TypescriptConverter } from "./TypescriptConverter.js";
3
- describe("TypeScriptLanguagePlugin", () => {
4
- it("should convert strings", () => {
5
- expect(new TypescriptConverter({ type: "string" }).code).toMatch("string");
6
- });
7
- it("should convert numbers", () => {
8
- expect(new TypescriptConverter({ type: "number" }).code).toMatch("number");
9
- });
10
- it("should convert booleans", () => {
11
- expect(new TypescriptConverter({ type: "boolean" }).code).toMatch("boolean");
12
- });
13
- it("should convert null", () => {
14
- expect(new TypescriptConverter({ type: "null" }).code).toMatch("null");
15
- });
16
- it("should convert literals", () => {
17
- expect(new TypescriptConverter({ const: "fixedValue" }).code).toMatch("fixedValue");
18
- });
19
- it("should convert enums", () => {
20
- expect(new TypescriptConverter({
21
- type: "string",
22
- enum: ["value1", "value2", "value3"],
23
- }).code).toMatch(`"value1" | "value2" | "value3"`);
24
- });
25
- it("should convert unions", () => {
26
- expect(new TypescriptConverter({ type: ["string", "number"] }).code).toMatch(`string | number`);
27
- });
28
- it("should convert intersections", () => {
29
- expect(new TypescriptConverter({
30
- allOf: [{ type: "string" }, { type: "number" }],
31
- }).code).toMatch(`string & number`);
32
- });
33
- it("should convert arrays", () => {
34
- expect(new TypescriptConverter({
35
- title: "MyArray",
36
- type: "array",
37
- items: {
38
- type: "object",
39
- properties: { name: { type: "string" } },
40
- required: ["name"],
41
- },
42
- }, {
43
- inlineTypes: true,
44
- }).code.replace(/\s/g, "")).toEqual("Array<{name:string;}>".replace(/\s/g, ""));
45
- });
46
- it("should convert objects", () => {
47
- expect(new TypescriptConverter({
48
- type: "object",
49
- properties: {
50
- title: { type: "string" },
51
- year: { type: "number" },
52
- },
53
- required: ["title"],
54
- }).code).toMatch(`{ title: string; year?: number; }`);
55
- });
56
- it("should convert an array of objects", () => {
57
- expect(new TypescriptConverter({
58
- type: "array",
59
- items: {
60
- anyOf: [
61
- {
62
- type: "object",
63
- properties: {
64
- year: { type: "number" },
65
- },
66
- required: ["year"],
67
- },
68
- {
69
- type: "object",
70
- properties: {
71
- title: { type: "string" },
72
- },
73
- },
74
- ],
75
- },
76
- }, {
77
- inlineTypes: true,
78
- }).code).toMatch(`Array<{ year: number; } | { title?: string; }>`);
79
- });
80
- it("should convert a simple JSON schema to Typescript", () => {
81
- expect(new TypescriptConverter({
82
- type: "object",
83
- properties: {
84
- name: { type: "string" },
85
- age: { type: "number" },
86
- contacts: {
87
- type: "array",
88
- items: {
89
- type: "object",
90
- properties: {
91
- email: { type: "string" },
92
- },
93
- required: ["email"],
94
- },
95
- },
96
- profile: {
97
- type: "object",
98
- properties: {
99
- email: { type: "string" },
100
- },
101
- required: ["email"],
102
- },
103
- },
104
- required: ["name", "age"],
105
- }, {
106
- inlineTypes: true,
107
- }).code.replace(/\s/g, "")).toMatch(`{
108
- name: string;
109
- age: number;
110
- contacts?: Array<{ email: string; }>;
111
- profile?: { email: string; };
112
- }`.replace(/\s/g, ""));
113
- });
114
- it("should convert a named JSON schema top-level object to Typescript", () => {
115
- expect(new TypescriptConverter({
116
- $schema: "http://json-schema.org/draft-07/schema#",
117
- title: "Person",
118
- type: "object",
119
- properties: {
120
- name: { type: "string" },
121
- age: { type: "number" },
122
- contacts: {
123
- type: "array",
124
- items: {
125
- type: "object",
126
- properties: {
127
- email: { type: "string" },
128
- },
129
- required: ["email"],
130
- },
131
- },
132
- profile: {
133
- type: "object",
134
- properties: {
135
- email: { type: "string" },
136
- },
137
- required: ["email"],
138
- },
139
- },
140
- required: ["name", "age"],
141
- }, {
142
- inlineTypes: true,
143
- }).code.replace(/\s/g, "")).toEqual(`{ name: string; age: number; contacts?: Array<{ email: string; }>; profile?: { email: string; }; }`.replace(/\s/g, ""));
144
- });
145
- it("should convert a named JSON schema top-level array to Typescript", () => {
146
- expect(new TypescriptConverter({
147
- $schema: "http://json-schema.org/draft-07/schema#",
148
- title: "People",
149
- type: "array",
150
- items: {
151
- type: "object",
152
- properties: {
153
- name: { type: "string" },
154
- age: { type: "number" },
155
- },
156
- required: ["name", "age"],
157
- },
158
- }, {
159
- inlineTypes: true,
160
- }).code.replace(/\s/g, "")).toEqual(`Array<{ name: string; age: number; }>`.replace(/\s/g, ""));
161
- });
162
- it("should convert JSON schema with top-level re-used objects in Typescript", async () => {
163
- expect(new TypescriptConverter({
164
- $schema: "http://json-schema.org/draft-07/schema#",
165
- title: "Person",
166
- type: "object",
167
- properties: {
168
- contacts: {
169
- type: "array",
170
- items: {
171
- type: "object",
172
- properties: {
173
- email: { type: "string" },
174
- },
175
- required: ["email"],
176
- },
177
- },
178
- profile: {
179
- type: "object",
180
- properties: {
181
- email: { type: "string" },
182
- },
183
- required: ["email"],
184
- },
185
- contact: {
186
- type: "object",
187
- properties: {
188
- email: { type: "string" },
189
- },
190
- required: ["email"],
191
- },
192
- email: {
193
- type: "object",
194
- properties: {
195
- email: { type: "string" },
196
- },
197
- required: ["email"],
198
- },
199
- },
200
- required: ["name", "age"],
201
- }, {
202
- inlineTypes: true,
203
- }).code.replace(/\s/g, "")).toEqual(`{contacts?:Array<{email:string;}>;profile?:{email:string;};contact?:{email:string;};email?:{email:string;};}`.replace(/\s/g, ""));
204
- });
205
- it("should convert JSON schema objects with only additionalProperties to Typescript", async () => {
206
- expect(new TypescriptConverter({
207
- type: "object",
208
- properties: {
209
- metadata: {
210
- type: "object",
211
- additionalProperties: { type: "string" },
212
- },
213
- },
214
- required: ["metadata"],
215
- }, {
216
- inlineTypes: true,
217
- }).code.replace(/\s/g, "")).toEqual(`{metadata: Record<string, string>; }`.replace(/\s/g, ""));
218
- });
219
- it("should convert JSON schema objects mixed properties & additionalProperties to Typescript", async () => {
220
- expect(new TypescriptConverter({
221
- type: "object",
222
- properties: {
223
- metadata: {
224
- type: "object",
225
- additionalProperties: { type: "string" },
226
- },
227
- },
228
- additionalProperties: { type: "string" },
229
- required: ["metadata"],
230
- }, {
231
- inlineTypes: true,
232
- }).code.replace(/\s/g, "")).toEqual(`({metadata:Record<string,string>;}&(Record<string,string>))`.replace(/\s/g, ""));
233
- });
234
- it("should convert JSON schema objects complex additionalProperties to Typescript", async () => {
235
- expect(new TypescriptConverter({
236
- type: "object",
237
- properties: {
238
- specificProp: {
239
- type: "string",
240
- },
241
- },
242
- additionalProperties: {
243
- type: "object",
244
- properties: {
245
- subAdditionalProp: { type: "string" },
246
- },
247
- additionalProperties: { type: "string" },
248
- },
249
- required: ["metadata"],
250
- }, {
251
- inlineTypes: true,
252
- }).code.replace(/\s/g, "")).toEqual(`({specificProp?:string;}&(Record<string,({subAdditionalProp?:string;}&(Record<string,string>))>))`.replace(/\s/g, ""));
253
- });
254
- it("should render tuple types as [T1, T2, ...]", () => {
255
- expect(new TypescriptConverter({
256
- type: "array",
257
- items: [{ type: "string" }, { type: "number" }],
258
- }, { inlineTypes: true }).code).toBe("[string, number]");
259
- });
260
- it("should render never type for boolean schema false", () => {
261
- expect(new TypescriptConverter({
262
- type: "object",
263
- properties: {
264
- forbidden: false,
265
- },
266
- }, { inlineTypes: true }).code.replace(/\s/g, "")).toEqual("{ forbidden?: never; }".replace(/\s/g, ""));
267
- });
268
- it("should convert { type: 'object', additionalProperties: true } to Record<string, any>", () => {
269
- expect(new TypescriptConverter({
270
- type: "object",
271
- additionalProperties: true,
272
- }, { inlineTypes: true }).code.replace(/\s/g, "")).toEqual("Record<string,any>".replace(/\s/g, ""));
273
- });
274
- it("should render additionalProperties: false without extra Record types", () => {
275
- expect(new TypescriptConverter({
276
- type: "object",
277
- properties: {
278
- name: { type: "string" },
279
- },
280
- additionalProperties: false,
281
- required: ["name"],
282
- }, { inlineTypes: true }).code.replace(/\s/g, "")).toEqual("{ name: string; }".replace(/\s/g, ""));
283
- });
284
- it("should convert a JSON schema with pattern properties", () => {
285
- expect(new TypescriptConverter({
286
- type: "object",
287
- properties: {
288
- totalTodo: {
289
- type: "number",
290
- },
291
- totalPastDue: {
292
- type: "number",
293
- },
294
- unassignedTodo: {
295
- type: "number",
296
- },
297
- todoByAssignee: {
298
- type: "object",
299
- patternProperties: {
300
- "^(.*)$": {
301
- type: "object",
302
- properties: {
303
- todo: {
304
- type: "number",
305
- },
306
- pastDue: {
307
- type: "number",
308
- },
309
- },
310
- required: ["todo", "pastDue"],
311
- },
312
- },
313
- },
314
- },
315
- required: [
316
- "totalTodo",
317
- "totalPastDue",
318
- "unassignedTodo",
319
- "todoByAssignee",
320
- ],
321
- title: "Root",
322
- }).code.replace(/\s/g, "")).toEqual("export type TodoByAssignee = Record<string, { todo: number; pastDue: number; }>;export type Root = { totalTodo: number; totalPastDue: number; unassignedTodo: number; todoByAssignee: TodoByAssignee; };".replace(/\s/g, ""));
323
- });
324
- });
325
- //# sourceMappingURL=TypescriptConverter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypescriptConverter.test.js","sourceRoot":"","sources":["../src/TypescriptConverter.test.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { ILanguageConverter } from "./types.js";
2
- import { JSONSchema7Definition } from "json-schema";
3
- import { RefTypeNamingConfig, TypescriptBaseConverter } from "./TypescriptBaseConverter.js";
4
- /**
5
- * A TypeScript language converter plugin that implements namespace scoping.
6
- *
7
- * Referenced/Shared typings are moved to the top level of the namespace scope
8
- * that is created for each IR node.
9
- */
10
- export declare class TypescriptProcedureConverter extends TypescriptBaseConverter implements ILanguageConverter {
11
- readonly language = "typescript";
12
- private schemaConverters;
13
- readonly code: string;
14
- constructor(scopeName: string, rpcJsonSchemas: {
15
- args: JSONSchema7Definition | undefined;
16
- data: JSONSchema7Definition | undefined;
17
- });
18
- protected getRefTypeNamingConfig(): RefTypeNamingConfig;
19
- }
@@ -1,54 +0,0 @@
1
- import { JSONSchemaConverter } from "./JSONSchemaConverter.js";
2
- import { TypescriptBaseConverter, } from "./TypescriptBaseConverter.js";
3
- /**
4
- * A TypeScript language converter plugin that implements namespace scoping.
5
- *
6
- * Referenced/Shared typings are moved to the top level of the namespace scope
7
- * that is created for each IR node.
8
- */
9
- export class TypescriptProcedureConverter extends TypescriptBaseConverter {
10
- constructor(scopeName, rpcJsonSchemas) {
11
- super();
12
- this.language = "typescript";
13
- this.schemaConverters = {
14
- args: rpcJsonSchemas.args
15
- ? new JSONSchemaConverter(rpcJsonSchemas.args)
16
- : undefined,
17
- data: rpcJsonSchemas.data
18
- ? new JSONSchemaConverter(rpcJsonSchemas.data)
19
- : undefined,
20
- };
21
- const argsCode = this.schemaConverters.args
22
- ? this.generateType(this.schemaConverters.args.irNode, {
23
- getReferencedType: this.getReferencedType.bind(this),
24
- })
25
- : undefined;
26
- const dataCode = this.schemaConverters.data
27
- ? this.generateType(this.schemaConverters.data.irNode, {
28
- getReferencedType: this.getReferencedType.bind(this),
29
- })
30
- : undefined;
31
- // use 'type' instead of 'interface' for the generated types because we can get `{} & {}` or `Record<string,string>`
32
- this.code = `export namespace ${scopeName} {
33
- ${this.refTypes
34
- .map(([_sig, name, { code }]) => `export type ${name} = ${code}`)
35
- .join("\n")}
36
-
37
- export type Args = ${argsCode ? argsCode : "unknown"}
38
-
39
- export type Data = ${dataCode ? dataCode : "unknown"}
40
- }`;
41
- }
42
- getRefTypeNamingConfig() {
43
- return {
44
- postfixes: [
45
- "Type", "Element", "Schema", "Object", "Shape",
46
- "1", "2", "3", "4", "5", "6",
47
- ],
48
- handleAnySymbol: false,
49
- stripLeadingAnySymbol: false,
50
- depluralize: true,
51
- };
52
- }
53
- }
54
- //# sourceMappingURL=TypescriptProcedureConverter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypescriptProcedureConverter.js","sourceRoot":"","sources":["../src/TypescriptProcedureConverter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAEL,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,OAAO,4BACX,SAAQ,uBAAuB;IAY/B,YACE,SAAiB,EACjB,cAGC;QAED,KAAK,EAAE,CAAC;QAhBM,aAAQ,GAAG,YAAY,CAAC;QAkBtC,IAAI,CAAC,gBAAgB,GAAG;YACtB,IAAI,EAAE,cAAc,CAAC,IAAI;gBACvB,CAAC,CAAC,IAAI,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC9C,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,IAAI;gBACvB,CAAC,CAAC,IAAI,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC;gBAC9C,CAAC,CAAC,SAAS;SACd,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI;YACzC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;aACrD,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI;YACzC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;aACrD,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,oHAAoH;QACpH,IAAI,CAAC,IAAI,GAAG,oBAAoB,SAAS;UACnC,IAAI,CAAC,QAAQ;aACZ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,IAAI,MAAM,IAAI,EAAE,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;;6BAEQ,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;;6BAE/B,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;MACtD,CAAC;IACL,CAAC;IAES,sBAAsB;QAC9B,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO;gBAC9C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;aAC7B;YACD,eAAe,EAAE,KAAK;YACtB,qBAAqB,EAAE,KAAK;YAC5B,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;CACF"}