@typespec/http-server-js 0.58.0-alpha.12-dev.0 → 0.58.0-alpha.12-dev.1

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 (61) hide show
  1. package/dist/generated-defs/helpers/datetime.d.ts +4 -0
  2. package/dist/generated-defs/helpers/datetime.d.ts.map +1 -0
  3. package/dist/generated-defs/helpers/datetime.js +256 -0
  4. package/dist/generated-defs/helpers/datetime.js.map +1 -0
  5. package/dist/generated-defs/helpers/index.d.ts.map +1 -1
  6. package/dist/generated-defs/helpers/index.js +1 -0
  7. package/dist/generated-defs/helpers/index.js.map +1 -1
  8. package/dist/src/common/declaration.js +1 -1
  9. package/dist/src/common/declaration.js.map +1 -1
  10. package/dist/src/common/reference.js +1 -1
  11. package/dist/src/common/reference.js.map +1 -1
  12. package/dist/src/common/scalar.d.ts +175 -22
  13. package/dist/src/common/scalar.d.ts.map +1 -1
  14. package/dist/src/common/scalar.js +420 -93
  15. package/dist/src/common/scalar.js.map +1 -1
  16. package/dist/src/common/serialization/index.d.ts +2 -2
  17. package/dist/src/common/serialization/index.d.ts.map +1 -1
  18. package/dist/src/common/serialization/index.js +9 -3
  19. package/dist/src/common/serialization/index.js.map +1 -1
  20. package/dist/src/common/serialization/json.d.ts +2 -2
  21. package/dist/src/common/serialization/json.d.ts.map +1 -1
  22. package/dist/src/common/serialization/json.js +144 -42
  23. package/dist/src/common/serialization/json.js.map +1 -1
  24. package/dist/src/helpers/datetime.d.ts +92 -0
  25. package/dist/src/helpers/datetime.d.ts.map +1 -0
  26. package/dist/src/helpers/datetime.js +151 -0
  27. package/dist/src/helpers/datetime.js.map +1 -0
  28. package/dist/src/http/server/index.d.ts.map +1 -1
  29. package/dist/src/http/server/index.js +17 -12
  30. package/dist/src/http/server/index.js.map +1 -1
  31. package/dist/src/http/server/multipart.js +1 -1
  32. package/dist/src/http/server/multipart.js.map +1 -1
  33. package/dist/src/lib.d.ts +10 -1
  34. package/dist/src/lib.d.ts.map +1 -1
  35. package/dist/src/lib.js +6 -0
  36. package/dist/src/lib.js.map +1 -1
  37. package/dist/src/util/case.d.ts +9 -0
  38. package/dist/src/util/case.d.ts.map +1 -1
  39. package/dist/src/util/case.js +18 -0
  40. package/dist/src/util/case.js.map +1 -1
  41. package/dist/src/util/differentiate.d.ts +4 -4
  42. package/dist/src/util/differentiate.d.ts.map +1 -1
  43. package/dist/src/util/differentiate.js +10 -10
  44. package/dist/src/util/differentiate.js.map +1 -1
  45. package/generated-defs/helpers/datetime.ts +263 -0
  46. package/generated-defs/helpers/index.ts +1 -0
  47. package/package.json +7 -7
  48. package/src/common/declaration.ts +1 -1
  49. package/src/common/reference.ts +1 -1
  50. package/src/common/scalar.ts +709 -103
  51. package/src/common/serialization/index.ts +11 -4
  52. package/src/common/serialization/json.ts +174 -52
  53. package/src/helpers/datetime.ts +235 -0
  54. package/src/http/server/index.ts +29 -15
  55. package/src/http/server/multipart.ts +1 -1
  56. package/src/lib.ts +6 -0
  57. package/src/util/case.ts +19 -0
  58. package/src/util/differentiate.ts +15 -8
  59. package/temp/tsconfig.tsbuildinfo +1 -1
  60. package/test/datetime.test.ts +226 -0
  61. package/test/scalar.test.ts +345 -0
@@ -0,0 +1,4 @@
1
+ import { Module } from "../../src/ctx.js";
2
+ export declare let module: Module;
3
+ export declare function createModule(parent: Module): Promise<Module>;
4
+ //# sourceMappingURL=datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../generated-defs/helpers/datetime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,IAAI,MAAM,EAAE,MAAyB,CAAC;AAkP7C,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAelE"}
@@ -0,0 +1,256 @@
1
+ // Copyright (c) Microsoft Corporation
2
+ // Licensed under the MIT license.
3
+ export let module = undefined;
4
+ // prettier-ignore
5
+ const lines = [
6
+ "// Copyright (c) Microsoft Corporation",
7
+ "// Licensed under the MIT license.",
8
+ "",
9
+ "// #region Duration",
10
+ "",
11
+ "/**",
12
+ " * Regular expression for matching ISO8601 duration strings.",
13
+ " *",
14
+ " * Yields:",
15
+ " * - 0: the full match",
16
+ " * - 1: the sign (optional)",
17
+ " * - 2: years (optional)",
18
+ " * - 3: months (optional)",
19
+ " * - 4: weeks (optional)",
20
+ " * - 5: days (optional)",
21
+ " * - 6: hours (optional)",
22
+ " * - 7: minutes (optional)",
23
+ " * - 8: seconds (optional)",
24
+ " */",
25
+ "const ISO8601_DURATION_REGEX =",
26
+ " /^(-)?P(?:((?:\\d*[.,])?\\d+)Y)?(?:((?:\\d*[.,])?\\d+)M)?(?:((?:\\d*[.,])?\\d+)W)?(?:((?:\\d*[.,])?\\d+)D)?(?:T(?:((?:\\d*[.,])?\\d+)H)?(?:((?:\\d*[.,])?\\d+)M)?(?:((?:\\d*[.,])?\\d+)S)?)?$/;",
27
+ "",
28
+ "/**",
29
+ " * A duration of time, measured in years, months, weeks, days, hours, minutes, and seconds.",
30
+ " *",
31
+ " * The values may be fractional and are not normalized (e.g. 36 hours is not the same duration as 1 day and 12 hours",
32
+ " * when accounting for Daylight Saving Time changes or leap seconds).",
33
+ " *",
34
+ " * @see https://en.wikipedia.org/wiki/ISO_8601#Durations",
35
+ " */",
36
+ "export interface Duration {",
37
+ " /**",
38
+ " * \"+\" if the duration is positive, \"-\" if the duration is negative.",
39
+ " */",
40
+ " sign: \"+\" | \"-\";",
41
+ " /**",
42
+ " * The number of years in the duration.",
43
+ " */",
44
+ " years: number;",
45
+ " /**",
46
+ " * The number of months in the duration.",
47
+ " */",
48
+ " months: number;",
49
+ " /**",
50
+ " * The number of weeks in the duration.",
51
+ " */",
52
+ " weeks: number;",
53
+ " /**",
54
+ " * The number of days in the duration.",
55
+ " */",
56
+ " days: number;",
57
+ " /**",
58
+ " * The number of hours in the duration.",
59
+ " */",
60
+ " hours: number;",
61
+ " /**",
62
+ " * The number of minutes in the duration.",
63
+ " */",
64
+ " minutes: number;",
65
+ " /**",
66
+ " * The number of seconds in the duration.",
67
+ " */",
68
+ " seconds: number;",
69
+ "}",
70
+ "",
71
+ "export const Duration = Object.freeze({",
72
+ " /**",
73
+ " * Parses an ISO8601 duration string into an object.",
74
+ " *",
75
+ " * @see https://en.wikipedia.org/wiki/ISO_8601#Durations",
76
+ " *",
77
+ " * @param duration - the duration string to parse",
78
+ " * @returns an object containing the parsed duration",
79
+ " */",
80
+ " parseISO8601(duration: string, maxLength: number = 100): Duration {",
81
+ " duration = duration.trim();",
82
+ " if (duration.length > maxLength)",
83
+ " throw new Error(`ISO8601 duration string is too long: ${duration}`);",
84
+ "",
85
+ " const match = duration.match(ISO8601_DURATION_REGEX);",
86
+ "",
87
+ " if (!match) throw new Error(`Invalid ISO8601 duration: ${duration}`);",
88
+ "",
89
+ " return {",
90
+ " sign: match[1] === undefined ? \"+\" : (match[1] as Duration[\"sign\"]),",
91
+ " years: parseFloatNormal(match[2]),",
92
+ " months: parseFloatNormal(match[3]),",
93
+ " weeks: parseFloatNormal(match[4]),",
94
+ " days: parseFloatNormal(match[5]),",
95
+ " hours: parseFloatNormal(match[6]),",
96
+ " minutes: parseFloatNormal(match[7]),",
97
+ " seconds: parseFloatNormal(match[8]),",
98
+ " };",
99
+ "",
100
+ " function parseFloatNormal(match: string | undefined): number {",
101
+ " if (match === undefined) return 0;",
102
+ "",
103
+ " const normalized = match.replace(\",\", \".\");",
104
+ "",
105
+ " const parsed = parseFloat(normalized);",
106
+ "",
107
+ " if (isNaN(parsed))",
108
+ " throw new Error(`Unreachable: Invalid number in ISO8601 duration string: ${match}`);",
109
+ "",
110
+ " return parsed;",
111
+ " }",
112
+ " },",
113
+ " /**",
114
+ " * Writes a Duration to an ISO8601 duration string.",
115
+ " *",
116
+ " * @see https://en.wikipedia.org/wiki/ISO_8601#Durations",
117
+ " *",
118
+ " * @param duration - the duration to write to a string",
119
+ " * @returns a string in ISO8601 duration format",
120
+ " */",
121
+ " toISO8601(duration: Duration): string {",
122
+ " const sign = duration.sign === \"+\" ? \"\" : \"-\";",
123
+ "",
124
+ " const years =",
125
+ " duration.years !== 0 && !isNaN(Number(duration.years)) ? `${duration.years}Y` : \"\";",
126
+ " const months =",
127
+ " duration.months !== 0 && !isNaN(Number(duration.months)) ? `${duration.months}M` : \"\";",
128
+ " const weeks =",
129
+ " duration.weeks !== 0 && !isNaN(Number(duration.weeks)) ? `${duration.weeks}W` : \"\";",
130
+ " const days = duration.days !== 0 && !isNaN(Number(duration.days)) ? `${duration.days}D` : \"\";",
131
+ "",
132
+ " let time = \"\";",
133
+ "",
134
+ " const _hours = duration.hours !== 0 && !isNaN(Number(duration.hours));",
135
+ " const _minutes = duration.minutes !== 0 && !isNaN(Number(duration.minutes));",
136
+ " const _seconds = duration.seconds !== 0 && !isNaN(Number(duration.seconds));",
137
+ "",
138
+ " if (_hours || _minutes || _seconds) {",
139
+ " const hours = _hours ? `${duration.hours}H` : \"\";",
140
+ " const minutes = _minutes ? `${duration.minutes}M` : \"\";",
141
+ " const seconds = _seconds ? `${duration.seconds}S` : \"\";",
142
+ "",
143
+ " time = `T${hours}${minutes}${seconds}`;",
144
+ " }",
145
+ "",
146
+ " return `${sign}P${years}${months}${weeks}${days}${time}`;",
147
+ " },",
148
+ "",
149
+ " /**",
150
+ " * Gets the total number of seconds in a duration.",
151
+ " *",
152
+ " * This method will throw an Error if the duration contains any years, months, weeks, or days, as those require a reference",
153
+ " * point to calculate the total number of seconds.",
154
+ " *",
155
+ " * WARNING: If the total number of seconds is larger than the maximum safe integer in JavaScript, this method will",
156
+ " * lose precision. @see Duration.totalSecondsBigInt for a BigInt alternative.",
157
+ " *",
158
+ " * @param duration - the duration to calculate the total number of seconds for",
159
+ " * @returns the total number of seconds in the duration",
160
+ " */",
161
+ " totalSeconds(duration: Duration): number {",
162
+ " if (",
163
+ " duration.years !== 0 ||",
164
+ " duration.months !== 0 ||",
165
+ " duration.weeks !== 0 ||",
166
+ " duration.days !== 0",
167
+ " ) {",
168
+ " throw new Error(",
169
+ " \"Cannot calculate total seconds for a duration with years, months, weeks, or days.\",",
170
+ " );",
171
+ " }",
172
+ "",
173
+ " return (",
174
+ " duration.seconds +",
175
+ " duration.minutes * 60 +",
176
+ " duration.hours * 60 * 60 +",
177
+ " duration.weeks * 7 * 24 * 60 * 60",
178
+ " );",
179
+ " },",
180
+ "",
181
+ " /**",
182
+ " * Gets the total number of seconds in a duration.",
183
+ " *",
184
+ " * This method will throw an Error if the duration contains any years, months, weeks, or days, as those require a reference",
185
+ " * point to calculate the total number of seconds. It will also throw an error if any of the components are not integers.",
186
+ " *",
187
+ " * @param duration - the duration to calculate the total number of seconds for",
188
+ " * @returns the total number of seconds in the duration",
189
+ " */",
190
+ " totalSecondsBigInt(duration: Duration): bigint {",
191
+ " if (",
192
+ " duration.years !== 0 ||",
193
+ " duration.months !== 0 ||",
194
+ " duration.weeks !== 0 ||",
195
+ " duration.days !== 0",
196
+ " ) {",
197
+ " throw new Error(",
198
+ " \"Cannot calculate total seconds for a duration with years, months, weeks, or days.\",",
199
+ " );",
200
+ " }",
201
+ "",
202
+ " if (",
203
+ " !Number.isInteger(duration.seconds) ||",
204
+ " !Number.isInteger(duration.minutes) ||",
205
+ " !Number.isInteger(duration.hours) ||",
206
+ " !Number.isInteger(duration.weeks)",
207
+ " ) {",
208
+ " throw new Error(",
209
+ " \"Cannot calculate total seconds as a BigInt for a duration with non-integer components.\",",
210
+ " );",
211
+ " }",
212
+ "",
213
+ " return (",
214
+ " BigInt(duration.seconds) +",
215
+ " BigInt(duration.minutes) * 60n +",
216
+ " BigInt(duration.hours) * 60n * 60n +",
217
+ " BigInt(duration.weeks) * 7n * 24n * 60n * 60n",
218
+ " );",
219
+ " },",
220
+ "",
221
+ " /**",
222
+ " * Creates a duration from a total number of seconds.",
223
+ " *",
224
+ " * The result is not normalized, so it will only contain a seconds field.",
225
+ " */",
226
+ " fromTotalSeconds(seconds: number): Duration {",
227
+ " return {",
228
+ " sign: seconds < 0 ? \"-\" : \"+\",",
229
+ " years: 0,",
230
+ " months: 0,",
231
+ " weeks: 0,",
232
+ " days: 0,",
233
+ " hours: 0,",
234
+ " minutes: 0,",
235
+ " seconds: Math.abs(seconds),",
236
+ " };",
237
+ " },",
238
+ "});",
239
+ "",
240
+ "// #endregion",
241
+ "",
242
+ ];
243
+ export async function createModule(parent) {
244
+ if (module)
245
+ return module;
246
+ module = {
247
+ name: "datetime",
248
+ cursor: parent.cursor.enter("datetime"),
249
+ imports: [],
250
+ declarations: [],
251
+ };
252
+ module.declarations.push(lines);
253
+ parent.declarations.push(module);
254
+ return module;
255
+ }
256
+ //# sourceMappingURL=datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../generated-defs/helpers/datetime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../generated-defs/helpers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,IAAI,MAAM,EAAE,MAAyB,CAAC;AAE7C,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../generated-defs/helpers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,IAAI,MAAM,EAAE,MAAyB,CAAC;AAE7C,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlE"}
@@ -11,6 +11,7 @@ export async function createModule(parent) {
11
11
  declarations: [],
12
12
  };
13
13
  // Child modules
14
+ await import("./datetime.js").then((m) => m.createModule(module));
14
15
  await import("./header.js").then((m) => m.createModule(module));
15
16
  await import("./http.js").then((m) => m.createModule(module));
16
17
  await import("./multipart.js").then((m) => m.createModule(module));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../generated-defs/helpers/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,kCAAkC;AAIlC,MAAM,CAAC,IAAI,MAAM,GAAW,SAAgB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG;QACP,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,gBAAgB;IAChB,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../generated-defs/helpers/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,kCAAkC;AAIlC,MAAM,CAAC,IAAI,MAAM,GAAW,SAAgB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG;QACP,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,gBAAgB;IAChB,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEhE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -34,7 +34,7 @@ export function* emitDeclaration(ctx, type, module, altName) {
34
34
  break;
35
35
  }
36
36
  case "Scalar": {
37
- yield emitScalar(ctx, type);
37
+ yield emitScalar(ctx, type, module);
38
38
  break;
39
39
  }
40
40
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../../src/common/declaration.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,kCAAkC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,SAAS,CAAC,CAAC,eAAe,CAC9B,GAAc,EACd,IAAqB,EACrB,MAAc,EACd,OAAgB;IAEhB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,qCAAsC,IAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"declaration.js","sourceRoot":"","sources":["../../../src/common/declaration.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,kCAAkC;AAGlC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,SAAS,CAAC,CAAC,eAAe,CAC9B,GAAc,EACd,IAAqB,EACrB,MAAc,EACd,OAAgB;IAEhB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3B,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpC,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,qCAAsC,IAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -34,7 +34,7 @@ export function emitTypeReference(ctx, type, position, module, options = {}) {
34
34
  switch (type.kind) {
35
35
  case "Scalar":
36
36
  // Get the scalar and return it directly, as it is a primitive.
37
- return getJsScalar(ctx.program, type, position);
37
+ return getJsScalar(ctx, module, type, position).type;
38
38
  case "Model": {
39
39
  // First handle arrays.
40
40
  if (isArrayModelType(ctx.program, type)) {
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/common/reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/common/reference.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,192 @@
1
- import { DiagnosticTarget, NoTarget, Program, Scalar } from "@typespec/compiler";
2
- import { JsContext } from "../ctx.js";
1
+ import { DiagnosticTarget, NoTarget, Scalar } from "@typespec/compiler";
2
+ import { JsContext, Module } from "../ctx.js";
3
+ import { HttpOperationParameter } from "@typespec/http";
4
+ /**
5
+ * A specification of a TypeSpec scalar type.
6
+ */
7
+ export interface ScalarInfo {
8
+ /**
9
+ * The TypeScript type that represents the scalar, or a function if the scalar requires a representation
10
+ * that is not built-in.
11
+ */
12
+ type: MaybeDependent<string>;
13
+ /**
14
+ * A map of supported encodings for the scalar.
15
+ */
16
+ encodings?: {
17
+ [target: string]: {
18
+ /**
19
+ * The default encoding for the target.
20
+ */
21
+ default?: MaybeDependent<ScalarEncoding>;
22
+ /**
23
+ * The encoding for the scalar when encoded using a particular method.
24
+ */
25
+ [encoding: string]: MaybeDependent<ScalarEncoding> | undefined;
26
+ };
27
+ };
28
+ /**
29
+ * A map of default encodings for the scalar.
30
+ */
31
+ defaultEncodings?: {
32
+ /**
33
+ * The default encoding pair to use for a given MIME type.
34
+ */
35
+ byMimeType?: {
36
+ [contentType: string]: [string, string];
37
+ };
38
+ /**
39
+ * The default encoding pair to use in the context of HTTP metadata.
40
+ */
41
+ http?: {
42
+ [K in HttpOperationParameter["type"]]?: [string, string];
43
+ };
44
+ };
45
+ /**
46
+ * Whether or not this scalar can serve as a JSON-compatible type.
47
+ *
48
+ * If JSON serialization reaches a non-compatible scalar and no more encodings are available, it is treated as
49
+ * an unknown type.
50
+ */
51
+ isJsonCompatible: boolean;
52
+ }
53
+ /**
54
+ * A function that resolves a value dependent on the context and module it's requested from.
55
+ */
56
+ export interface Dependent<T> {
57
+ (ctx: JsContext, module: Module): T;
58
+ }
59
+ /**
60
+ * A value that might be dependent.
61
+ */
62
+ export type MaybeDependent<T> = T | Dependent<T>;
63
+ /**
64
+ * A definition of a scalar encoding.
65
+ */
66
+ export type ScalarEncoding = ScalarEncodingTemplates | ScalarEncodingVia;
67
+ /**
68
+ * A definition of a scalar encoding with templates.
69
+ */
70
+ export interface ScalarEncodingTemplates {
71
+ /**
72
+ * The template to use to encode the scalar.
73
+ *
74
+ * The position of the string "{}" in the template will be replaced with the value to encode.
75
+ */
76
+ encodeTemplate: MaybeDependent<string>;
77
+ /**
78
+ * The template to use to decode the scalar.
79
+ *
80
+ * The position of the string "{}" in the template will be replaced with the value to decode.
81
+ */
82
+ decodeTemplate: MaybeDependent<string>;
83
+ }
84
+ export interface ScalarEncodingVia {
85
+ /**
86
+ * If set, the name of the encoding to use as a base for this encoding.
87
+ *
88
+ * This can be used to define an encoding that is a modification of another encoding, such as a URL-encoded version
89
+ * of a base64-encoded value, which depends on the base64 encoding.
90
+ */
91
+ via: string;
92
+ /**
93
+ * Optional encoding template, defaults to "{}"
94
+ */
95
+ encodeTemplate?: MaybeDependent<string>;
96
+ /**
97
+ * Optional decoding template, defaults to "{}"
98
+ */
99
+ decodeTemplate?: MaybeDependent<string>;
100
+ }
3
101
  /**
4
102
  * Emits a declaration for a scalar type.
5
103
  *
6
104
  * This is rare in TypeScript, as the scalar will ordinarily be used inline, but may be desirable in some cases.
7
105
  *
8
106
  * @param ctx - The emitter context.
107
+ * @param module - The module that the scalar is being emitted in.
9
108
  * @param scalar - The scalar to emit.
10
109
  * @returns a string that declares an alias to the scalar type in TypeScript.
11
110
  */
12
- export declare function emitScalar(ctx: JsContext, scalar: Scalar): string;
111
+ export declare function emitScalar(ctx: JsContext, scalar: Scalar, module: Module): string;
13
112
  /**
14
- * Get the string parsing template for a given scalar.
15
- *
16
- * It is common that a scalar type is encoded as a string. For example, in HTTP path parameters or query parameters
17
- * where the value may be an integer, but the APIs expose it as a string. In such cases the parse template may be
18
- * used to coerce the string value to the correct scalar type.
19
- *
20
- * The result of this function contains the string "{}" exactly once, which should be replaced with the text of an
21
- * expression evaluating to the string representation of the scalar.
22
- *
23
- * For example, scalars that are represented by JS `number` are parsed with the template `Number({})`, which will
24
- * convert the string to a number.
113
+ * Reports a scalar as unrecognized, so that the spec author knows it is treated as `unknown`.
25
114
  *
26
115
  * @param ctx - The emitter context.
27
- * @param scalar - The scalar to parse from a string
28
- * @returns a template expression string that can be used to parse a string into the scalar type.
116
+ * @param scalar - The scalar that was not recognized.
117
+ * @param target - The diagnostic target to report the error on.
118
+ */
119
+ export declare function reportUnrecognizedScalar(ctx: JsContext, scalar: Scalar, target: DiagnosticTarget | typeof NoTarget): void;
120
+ /**
121
+ * An encoder that encodes a scalar type to the `target` scalar type.
122
+ *
123
+ * The type that this encoder encodes _from_ is the type of the scalar that it is bound to. It _MUST_ be used only with expressions
124
+ * of the type that represents the source scalar.
125
+ */
126
+ export interface Encoder {
127
+ /**
128
+ * The target scalar type that this encoder encodes to.
129
+ */
130
+ readonly target: JsScalar;
131
+ /**
132
+ * Produces an expression that encodes the `subject` expression of the source type into the target.
133
+ *
134
+ * @param subject - An expression of the type that represents the source scalar.
135
+ */
136
+ encode(subject: string): string;
137
+ /**
138
+ * Produces an expression that decodes the `subject` expression from the target into the source type.
139
+ *
140
+ * @param subject - An expression of the type that represents the target scalar.
141
+ */
142
+ decode(subject: string): string;
143
+ }
144
+ /**
145
+ * A representation of a TypeSpec scalar in TypeScript.
29
146
  */
30
- export declare function parseTemplateForScalar(ctx: JsContext, scalar: Scalar): string;
147
+ export interface JsScalar {
148
+ /**
149
+ * The TypeScript type that represents the scalar.
150
+ */
151
+ readonly type: string;
152
+ /**
153
+ * The TypeSpec scalar that it represents, or "unknown" if the Scalar is not recognized.
154
+ */
155
+ readonly scalar: Scalar | "unknown";
156
+ /**
157
+ * Get an encoder that encodes this scalar type to a different scalar type using a given encoding.
158
+ *
159
+ * @param encoding - the encoding to use (e.g. "base64", "base64url", etc.)
160
+ * @param target - the target scalar type to encode to
161
+ * @returns an encoder that encodes this scalar type to the target scalar type using the given encoding, or undefined
162
+ * if the encoding is not supported.
163
+ */
164
+ getEncoding(encoding: string, target: Scalar): Encoder | undefined;
165
+ /**
166
+ * Get the default encoder for a given media type.
167
+ *
168
+ * @param mimeType - the media type to get the default encoder for (e.g. "application/json", "text/plain", etc.)
169
+ * @returns an encoder that encodes this scalar type to the target scalar type using the given encoding, or undefined
170
+ * if no default encoder is defined for the given media type.
171
+ */
172
+ getDefaultMimeEncoding(mimeType: string): Encoder | undefined;
173
+ /**
174
+ * Whether this scalar can be used directly in JSON serialization.
175
+ *
176
+ * If true, this scalar will be represented faithfully if it is passed to JSON.stringify or JSON.parse.
177
+ */
178
+ isJsonCompatible: boolean;
179
+ /**
180
+ * A map of encoders when this type is used in HTTP metadata.
181
+ */
182
+ readonly http: {
183
+ readonly [K in HttpOperationParameter["type"]]: Encoder;
184
+ };
185
+ }
31
186
  /**
32
- * Get the string encoding template for a given scalar.
33
- * @param ctx
34
- * @param scalar
187
+ * A JsScalar value that represents an unknown scalar.
35
188
  */
36
- export declare function encodeTemplateForScalar(ctx: JsContext, scalar: Scalar): string;
189
+ export declare const JS_SCALAR_UNKNOWN: JsScalar;
37
190
  /**
38
191
  * Gets a TypeScript type that can represent a given TypeSpec scalar.
39
192
  *
@@ -46,5 +199,5 @@ export declare function encodeTemplateForScalar(ctx: JsContext, scalar: Scalar):
46
199
  * @param diagnosticTarget - Where to report a diagnostic if the scalar is not recognized.
47
200
  * @returns a string containing a TypeScript type that can represent the scalar
48
201
  */
49
- export declare function getJsScalar(program: Program, scalar: Scalar, diagnosticTarget: DiagnosticTarget | typeof NoTarget): string;
202
+ export declare function getJsScalar(ctx: JsContext, module: Module, scalar: Scalar, diagnosticTarget: DiagnosticTarget | typeof NoTarget): JsScalar;
50
203
  //# sourceMappingURL=scalar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../../src/common/scalar.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAoB,MAAM,oBAAoB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAMtC;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAe7E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAe9E;AAmDD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,QAAQ,GACnD,MAAM,CAwBR"}
1
+ {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../../src/common/scalar.ts"],"names":[],"mappings":"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"}