@azure-tools/typespec-go 0.1.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.
- package/LICENSE +21 -0
- package/README.md +16 -0
- package/dist/codegen.go/src/clientFactory.d.ts +3 -0
- package/dist/codegen.go/src/clientFactory.d.ts.map +1 -0
- package/dist/codegen.go/src/clientFactory.js +77 -0
- package/dist/codegen.go/src/clientFactory.js.map +1 -0
- package/dist/codegen.go/src/constants.d.ts +3 -0
- package/dist/codegen.go/src/constants.d.ts.map +1 -0
- package/dist/codegen.go/src/constants.js +59 -0
- package/dist/codegen.go/src/constants.js.map +1 -0
- package/dist/codegen.go/src/fake/factory.d.ts +3 -0
- package/dist/codegen.go/src/fake/factory.d.ts.map +1 -0
- package/dist/codegen.go/src/fake/factory.js +69 -0
- package/dist/codegen.go/src/fake/factory.js.map +1 -0
- package/dist/codegen.go/src/fake/internal.d.ts +14 -0
- package/dist/codegen.go/src/fake/internal.d.ts.map +1 -0
- package/dist/codegen.go/src/fake/internal.js +197 -0
- package/dist/codegen.go/src/fake/internal.js.map +1 -0
- package/dist/codegen.go/src/fake/servers.d.ts +14 -0
- package/dist/codegen.go/src/fake/servers.d.ts.map +1 -0
- package/dist/codegen.go/src/fake/servers.js +1255 -0
- package/dist/codegen.go/src/fake/servers.js.map +1 -0
- package/dist/codegen.go/src/gomod.d.ts +3 -0
- package/dist/codegen.go/src/gomod.d.ts.map +1 -0
- package/dist/codegen.go/src/gomod.js +55 -0
- package/dist/codegen.go/src/gomod.js.map +1 -0
- package/dist/codegen.go/src/helpers.d.ts +32 -0
- package/dist/codegen.go/src/helpers.d.ts.map +1 -0
- package/dist/codegen.go/src/helpers.js +586 -0
- package/dist/codegen.go/src/helpers.js.map +1 -0
- package/dist/codegen.go/src/imports.d.ts +11 -0
- package/dist/codegen.go/src/imports.d.ts.map +1 -0
- package/dist/codegen.go/src/imports.js +65 -0
- package/dist/codegen.go/src/imports.js.map +1 -0
- package/dist/codegen.go/src/interfaces.d.ts +3 -0
- package/dist/codegen.go/src/interfaces.d.ts.map +1 -0
- package/dist/codegen.go/src/interfaces.js +36 -0
- package/dist/codegen.go/src/interfaces.js.map +1 -0
- package/dist/codegen.go/src/models.d.ts +9 -0
- package/dist/codegen.go/src/models.d.ts.map +1 -0
- package/dist/codegen.go/src/models.js +849 -0
- package/dist/codegen.go/src/models.js.map +1 -0
- package/dist/codegen.go/src/operations.d.ts +9 -0
- package/dist/codegen.go/src/operations.d.ts.map +1 -0
- package/dist/codegen.go/src/operations.js +1337 -0
- package/dist/codegen.go/src/operations.js.map +1 -0
- package/dist/codegen.go/src/options.d.ts +3 -0
- package/dist/codegen.go/src/options.d.ts.map +1 -0
- package/dist/codegen.go/src/options.js +64 -0
- package/dist/codegen.go/src/options.js.map +1 -0
- package/dist/codegen.go/src/polymorphics.d.ts +3 -0
- package/dist/codegen.go/src/polymorphics.d.ts.map +1 -0
- package/dist/codegen.go/src/polymorphics.js +169 -0
- package/dist/codegen.go/src/polymorphics.js.map +1 -0
- package/dist/codegen.go/src/responses.d.ts +7 -0
- package/dist/codegen.go/src/responses.d.ts.map +1 -0
- package/dist/codegen.go/src/responses.js +167 -0
- package/dist/codegen.go/src/responses.js.map +1 -0
- package/dist/codegen.go/src/time.d.ts +8 -0
- package/dist/codegen.go/src/time.d.ts.map +1 -0
- package/dist/codegen.go/src/time.js +511 -0
- package/dist/codegen.go/src/time.js.map +1 -0
- package/dist/codemodel.go/src/client.d.ts +96 -0
- package/dist/codemodel.go/src/client.d.ts.map +1 -0
- package/dist/codemodel.go/src/client.js +114 -0
- package/dist/codemodel.go/src/client.js.map +1 -0
- package/dist/codemodel.go/src/index.d.ts +6 -0
- package/dist/codemodel.go/src/index.d.ts.map +1 -0
- package/dist/codemodel.go/src/index.js +10 -0
- package/dist/codemodel.go/src/index.js.map +1 -0
- package/dist/codemodel.go/src/package.d.ts +49 -0
- package/dist/codemodel.go/src/package.d.ts.map +1 -0
- package/dist/codemodel.go/src/package.js +86 -0
- package/dist/codemodel.go/src/package.js.map +1 -0
- package/dist/codemodel.go/src/param.d.ts +162 -0
- package/dist/codemodel.go/src/param.d.ts.map +1 -0
- package/dist/codemodel.go/src/param.js +189 -0
- package/dist/codemodel.go/src/param.js.map +1 -0
- package/dist/codemodel.go/src/result.d.ts +102 -0
- package/dist/codemodel.go/src/result.d.ts.map +1 -0
- package/dist/codemodel.go/src/result.js +119 -0
- package/dist/codemodel.go/src/result.js.map +1 -0
- package/dist/codemodel.go/src/type.d.ts +181 -0
- package/dist/codemodel.go/src/type.d.ts.map +1 -0
- package/dist/codemodel.go/src/type.js +242 -0
- package/dist/codemodel.go/src/type.js.map +1 -0
- package/dist/naming.go/src/mappings.d.ts +3 -0
- package/dist/naming.go/src/mappings.d.ts.map +1 -0
- package/dist/naming.go/src/mappings.js +128 -0
- package/dist/naming.go/src/mappings.js.map +1 -0
- package/dist/naming.go/src/naming.d.ts +10 -0
- package/dist/naming.go/src/naming.d.ts.map +1 -0
- package/dist/naming.go/src/naming.js +114 -0
- package/dist/naming.go/src/naming.js.map +1 -0
- package/dist/typespec-go/src/emitter.d.ts +5 -0
- package/dist/typespec-go/src/emitter.d.ts.map +1 -0
- package/dist/typespec-go/src/emitter.js +122 -0
- package/dist/typespec-go/src/emitter.js.map +1 -0
- package/dist/typespec-go/src/index.d.ts +3 -0
- package/dist/typespec-go/src/index.d.ts.map +1 -0
- package/dist/typespec-go/src/index.js +7 -0
- package/dist/typespec-go/src/index.js.map +1 -0
- package/dist/typespec-go/src/lib.d.ts +25 -0
- package/dist/typespec-go/src/lib.d.ts.map +1 -0
- package/dist/typespec-go/src/lib.js +36 -0
- package/dist/typespec-go/src/lib.js.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +5 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.js +119 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts +26 -0
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/clients.js +621 -0
- package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/types.d.ts +29 -0
- package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/types.js +975 -0
- package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { values } from '@azure-tools/linq';
|
|
6
|
+
import * as go from '../../codemodel.go/src/index.js';
|
|
7
|
+
import { contentPreamble, recursiveUnwrapMapSlice } from './helpers.js';
|
|
8
|
+
import { ImportManager } from './imports.js';
|
|
9
|
+
// represents the generated content for an operation group
|
|
10
|
+
export class Content {
|
|
11
|
+
constructor(name, content) {
|
|
12
|
+
this.name = name;
|
|
13
|
+
this.content = content;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// Creates the content for required time marshalling helpers.
|
|
17
|
+
// Will be empty if no helpers are required.
|
|
18
|
+
export async function generateTimeHelpers(codeModel, packageName) {
|
|
19
|
+
let needsDateHelper = false;
|
|
20
|
+
let needsDateTimeRFC1123Helper = false;
|
|
21
|
+
let needsDateTimeRFC3339Helper = false;
|
|
22
|
+
let needsTimeRFC3339Helper = false;
|
|
23
|
+
let needsUnixTimeHelper = false;
|
|
24
|
+
const setHelper = function (dateTimeFormat) {
|
|
25
|
+
switch (dateTimeFormat) {
|
|
26
|
+
case 'dateTimeRFC1123':
|
|
27
|
+
needsDateTimeRFC1123Helper = true;
|
|
28
|
+
break;
|
|
29
|
+
case 'dateTimeRFC3339':
|
|
30
|
+
needsDateTimeRFC3339Helper = true;
|
|
31
|
+
break;
|
|
32
|
+
case 'dateType':
|
|
33
|
+
needsDateHelper = true;
|
|
34
|
+
break;
|
|
35
|
+
case 'timeRFC3339':
|
|
36
|
+
needsTimeRFC3339Helper = true;
|
|
37
|
+
break;
|
|
38
|
+
case 'timeUnix':
|
|
39
|
+
needsUnixTimeHelper = true;
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
throw new Error(`unhandled date-time format ${dateTimeFormat}`);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// find the required helpers. we must check params, response envelopes, and models
|
|
46
|
+
for (const client of codeModel.clients) {
|
|
47
|
+
for (const method of client.methods) {
|
|
48
|
+
for (const param of method.parameters) {
|
|
49
|
+
const unwrappedParam = recursiveUnwrapMapSlice(param.type);
|
|
50
|
+
if (!go.isTimeType(unwrappedParam)) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
// for body params, the helpers are always required.
|
|
54
|
+
// for header/path/query params, the conversion happens in place. the only
|
|
55
|
+
// exceptions are for timeRFC3339 and timeUnix
|
|
56
|
+
// TODO: clean this up when moving to DateTime type in azcore
|
|
57
|
+
if (go.isBodyParameter(param) || (unwrappedParam.dateTimeFormat === 'timeRFC3339' || unwrappedParam.dateTimeFormat === 'timeUnix')) {
|
|
58
|
+
setHelper(unwrappedParam.dateTimeFormat);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
for (const respEnv of codeModel.responseEnvelopes) {
|
|
64
|
+
if (!respEnv.result || !go.isMonomorphicResult(respEnv.result) || respEnv.result.format !== 'JSON') {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const unwrappedResult = recursiveUnwrapMapSlice(respEnv.result.monomorphicType);
|
|
68
|
+
if (!go.isTimeType(unwrappedResult)) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
setHelper(unwrappedResult.dateTimeFormat);
|
|
72
|
+
}
|
|
73
|
+
// needsSerDeHelpers is only required when time.Time is a struct field
|
|
74
|
+
let needsSerDeHelpers = false;
|
|
75
|
+
for (const model of codeModel.models) {
|
|
76
|
+
for (const field of values(model.fields)) {
|
|
77
|
+
const unwrappedField = recursiveUnwrapMapSlice(field.type);
|
|
78
|
+
if (!go.isTimeType(unwrappedField)) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
if (model.format === 'json') {
|
|
82
|
+
// needsSerDeHelpers helpers are for JSON only
|
|
83
|
+
needsSerDeHelpers = true;
|
|
84
|
+
}
|
|
85
|
+
setHelper(unwrappedField.dateTimeFormat);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const content = new Array();
|
|
89
|
+
if (!needsDateHelper &&
|
|
90
|
+
!needsDateTimeRFC1123Helper &&
|
|
91
|
+
!needsDateTimeRFC3339Helper &&
|
|
92
|
+
!needsTimeRFC3339Helper &&
|
|
93
|
+
!needsUnixTimeHelper) {
|
|
94
|
+
return content;
|
|
95
|
+
}
|
|
96
|
+
const preamble = contentPreamble(codeModel, packageName);
|
|
97
|
+
if (needsDateTimeRFC1123Helper) {
|
|
98
|
+
content.push(new Content('time_rfc1123', generateRFC1123Helper(preamble, needsSerDeHelpers)));
|
|
99
|
+
}
|
|
100
|
+
if (needsDateTimeRFC3339Helper || needsTimeRFC3339Helper) {
|
|
101
|
+
content.push(new Content('time_rfc3339', generateRFC3339Helper(preamble, needsDateTimeRFC3339Helper, needsTimeRFC3339Helper, needsSerDeHelpers)));
|
|
102
|
+
}
|
|
103
|
+
if (needsUnixTimeHelper) {
|
|
104
|
+
content.push(new Content('time_unix', generateUnixTimeHelper(preamble, needsSerDeHelpers)));
|
|
105
|
+
}
|
|
106
|
+
if (needsDateHelper) {
|
|
107
|
+
content.push(new Content('date_type', generateDateHelper(preamble, needsSerDeHelpers)));
|
|
108
|
+
}
|
|
109
|
+
return content;
|
|
110
|
+
}
|
|
111
|
+
function generateRFC1123Helper(preamble, needsPopulate) {
|
|
112
|
+
const imports = new ImportManager();
|
|
113
|
+
imports.add('strings');
|
|
114
|
+
imports.add('time');
|
|
115
|
+
if (needsPopulate) {
|
|
116
|
+
imports.add('encoding/json');
|
|
117
|
+
imports.add('fmt');
|
|
118
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore');
|
|
119
|
+
imports.add('reflect');
|
|
120
|
+
}
|
|
121
|
+
let text = `${preamble}
|
|
122
|
+
|
|
123
|
+
${imports.text()}
|
|
124
|
+
|
|
125
|
+
const (
|
|
126
|
+
dateTimeRFC1123JSON = \`"\` + time.RFC1123 + \`"\`
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
type dateTimeRFC1123 time.Time
|
|
130
|
+
|
|
131
|
+
func (t dateTimeRFC1123) MarshalJSON() ([]byte, error) {
|
|
132
|
+
b := []byte(time.Time(t).Format(dateTimeRFC1123JSON))
|
|
133
|
+
return b, nil
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
func (t dateTimeRFC1123) MarshalText() ([]byte, error) {
|
|
137
|
+
b := []byte(time.Time(t).Format(time.RFC1123))
|
|
138
|
+
return b, nil
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
func (t *dateTimeRFC1123) UnmarshalJSON(data []byte) error {
|
|
142
|
+
p, err := time.Parse(dateTimeRFC1123JSON, strings.ToUpper(string(data)))
|
|
143
|
+
*t = dateTimeRFC1123(p)
|
|
144
|
+
return err
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
func (t *dateTimeRFC1123) UnmarshalText(data []byte) error {
|
|
148
|
+
if len(data) == 0 {
|
|
149
|
+
return nil
|
|
150
|
+
}
|
|
151
|
+
p, err := time.Parse(time.RFC1123, string(data))
|
|
152
|
+
*t = dateTimeRFC1123(p)
|
|
153
|
+
return err
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
func (t dateTimeRFC1123) String() string {
|
|
157
|
+
return time.Time(t).Format(time.RFC1123)
|
|
158
|
+
}
|
|
159
|
+
`;
|
|
160
|
+
if (needsPopulate) {
|
|
161
|
+
text +=
|
|
162
|
+
`
|
|
163
|
+
|
|
164
|
+
func populateDateTimeRFC1123(m map[string]any, k string, t *time.Time) {
|
|
165
|
+
if t == nil {
|
|
166
|
+
return
|
|
167
|
+
} else if azcore.IsNullValue(t) {
|
|
168
|
+
m[k] = nil
|
|
169
|
+
return
|
|
170
|
+
} else if reflect.ValueOf(t).IsNil() {
|
|
171
|
+
return
|
|
172
|
+
}
|
|
173
|
+
m[k] = (*dateTimeRFC1123)(t)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
func unpopulateDateTimeRFC1123(data json.RawMessage, fn string, t **time.Time) error {
|
|
177
|
+
if data == nil || string(data) == "null" {
|
|
178
|
+
return nil
|
|
179
|
+
}
|
|
180
|
+
var aux dateTimeRFC1123
|
|
181
|
+
if err := json.Unmarshal(data, &aux); err != nil {
|
|
182
|
+
return fmt.Errorf("struct field %s: %v", fn, err)
|
|
183
|
+
}
|
|
184
|
+
*t = (*time.Time)(&aux)
|
|
185
|
+
return nil
|
|
186
|
+
}
|
|
187
|
+
`;
|
|
188
|
+
}
|
|
189
|
+
return text;
|
|
190
|
+
}
|
|
191
|
+
function generateRFC3339Helper(preamble, dateTime, time, needsPopulate) {
|
|
192
|
+
const imports = new ImportManager();
|
|
193
|
+
imports.add('regexp');
|
|
194
|
+
imports.add('strings');
|
|
195
|
+
imports.add('time');
|
|
196
|
+
if (needsPopulate) {
|
|
197
|
+
imports.add('encoding/json');
|
|
198
|
+
imports.add('fmt');
|
|
199
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore');
|
|
200
|
+
imports.add('reflect');
|
|
201
|
+
}
|
|
202
|
+
let text = `${preamble}
|
|
203
|
+
|
|
204
|
+
${imports.text()}
|
|
205
|
+
|
|
206
|
+
// Azure reports time in UTC but it doesn't include the 'Z' time zone suffix in some cases.
|
|
207
|
+
var tzOffsetRegex = regexp.MustCompile(\`(?:Z|z|\\+|-)(?:\\d+:\\d+)*"*$\`)
|
|
208
|
+
`;
|
|
209
|
+
if (dateTime) {
|
|
210
|
+
text +=
|
|
211
|
+
`
|
|
212
|
+
const (
|
|
213
|
+
utcDateTime = "2006-01-02T15:04:05.999999999"
|
|
214
|
+
utcDateTimeJSON = \`"\` + utcDateTime + \`"\`
|
|
215
|
+
utcDateTimeNoT = "2006-01-02 15:04:05.999999999"
|
|
216
|
+
utcDateTimeJSONNoT = \`"\` + utcDateTimeNoT + \`"\`
|
|
217
|
+
dateTimeNoT = \`2006-01-02 15:04:05.999999999Z07:00\`
|
|
218
|
+
dateTimeJSON = \`"\` + time.RFC3339Nano + \`"\`
|
|
219
|
+
dateTimeJSONNoT = \`"\` + dateTimeNoT + \`"\`
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
type dateTimeRFC3339 time.Time
|
|
223
|
+
|
|
224
|
+
func (t dateTimeRFC3339) MarshalJSON() ([]byte, error) {
|
|
225
|
+
tt := time.Time(t)
|
|
226
|
+
return tt.MarshalJSON()
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
func (t dateTimeRFC3339) MarshalText() ([]byte, error) {
|
|
230
|
+
tt := time.Time(t)
|
|
231
|
+
return tt.MarshalText()
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
func (t *dateTimeRFC3339) UnmarshalJSON(data []byte) error {
|
|
235
|
+
tzOffset := tzOffsetRegex.Match(data)
|
|
236
|
+
hasT := strings.Contains(string(data), "T") || strings.Contains(string(data), "t")
|
|
237
|
+
var layout string
|
|
238
|
+
if tzOffset && hasT {
|
|
239
|
+
layout = dateTimeJSON
|
|
240
|
+
} else if tzOffset {
|
|
241
|
+
layout = dateTimeJSONNoT
|
|
242
|
+
} else if hasT {
|
|
243
|
+
layout = utcDateTimeJSON
|
|
244
|
+
} else {
|
|
245
|
+
layout = utcDateTimeJSONNoT
|
|
246
|
+
}
|
|
247
|
+
return t.Parse(layout, string(data))
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
func (t *dateTimeRFC3339) UnmarshalText(data []byte) error {
|
|
251
|
+
if len(data) == 0 {
|
|
252
|
+
return nil
|
|
253
|
+
}
|
|
254
|
+
tzOffset := tzOffsetRegex.Match(data)
|
|
255
|
+
hasT := strings.Contains(string(data), "T") || strings.Contains(string(data), "t")
|
|
256
|
+
var layout string
|
|
257
|
+
if tzOffset && hasT {
|
|
258
|
+
layout = time.RFC3339Nano
|
|
259
|
+
} else if tzOffset {
|
|
260
|
+
layout = dateTimeNoT
|
|
261
|
+
} else if hasT {
|
|
262
|
+
layout = utcDateTime
|
|
263
|
+
} else {
|
|
264
|
+
layout = utcDateTimeNoT
|
|
265
|
+
}
|
|
266
|
+
return t.Parse(layout, string(data))
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
func (t *dateTimeRFC3339) Parse(layout, value string) error {
|
|
270
|
+
p, err := time.Parse(layout, strings.ToUpper(value))
|
|
271
|
+
*t = dateTimeRFC3339(p)
|
|
272
|
+
return err
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
func (t dateTimeRFC3339) String() string {
|
|
276
|
+
return time.Time(t).Format(time.RFC3339Nano)
|
|
277
|
+
}
|
|
278
|
+
`;
|
|
279
|
+
if (needsPopulate) {
|
|
280
|
+
text +=
|
|
281
|
+
`
|
|
282
|
+
|
|
283
|
+
func populateDateTimeRFC3339(m map[string]any, k string, t *time.Time) {
|
|
284
|
+
if t == nil {
|
|
285
|
+
return
|
|
286
|
+
} else if azcore.IsNullValue(t) {
|
|
287
|
+
m[k] = nil
|
|
288
|
+
return
|
|
289
|
+
} else if reflect.ValueOf(t).IsNil() {
|
|
290
|
+
return
|
|
291
|
+
}
|
|
292
|
+
m[k] = (*dateTimeRFC3339)(t)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
func unpopulateDateTimeRFC3339(data json.RawMessage, fn string, t **time.Time) error {
|
|
296
|
+
if data == nil || string(data) == "null" {
|
|
297
|
+
return nil
|
|
298
|
+
}
|
|
299
|
+
var aux dateTimeRFC3339
|
|
300
|
+
if err := json.Unmarshal(data, &aux); err != nil {
|
|
301
|
+
return fmt.Errorf("struct field %s: %v", fn, err)
|
|
302
|
+
}
|
|
303
|
+
*t = (*time.Time)(&aux)
|
|
304
|
+
return nil
|
|
305
|
+
}
|
|
306
|
+
`;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (time) {
|
|
310
|
+
text += `
|
|
311
|
+
const (
|
|
312
|
+
utcTimeJSON = \`"15:04:05.999999999"\`
|
|
313
|
+
utcTime = "15:04:05.999999999"
|
|
314
|
+
timeFormat = "15:04:05.999999999Z07:00"
|
|
315
|
+
)
|
|
316
|
+
|
|
317
|
+
type timeRFC3339 time.Time
|
|
318
|
+
|
|
319
|
+
func (t timeRFC3339) MarshalJSON() ([]byte, error) {
|
|
320
|
+
s, _ := t.MarshalText()
|
|
321
|
+
return []byte(fmt.Sprintf("\\"%s\\"", s)), nil
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
func (t timeRFC3339) MarshalText() ([]byte, error) {
|
|
325
|
+
tt := time.Time(t)
|
|
326
|
+
return []byte(tt.Format(timeFormat)), nil
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
func (t *timeRFC3339) UnmarshalJSON(data []byte) error {
|
|
330
|
+
layout := utcTimeJSON
|
|
331
|
+
if tzOffsetRegex.Match(data) {
|
|
332
|
+
layout = timeFormat
|
|
333
|
+
}
|
|
334
|
+
return t.Parse(layout, string(data))
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
func (t *timeRFC3339) UnmarshalText(data []byte) error {
|
|
338
|
+
if len(data) == 0 {
|
|
339
|
+
return nil
|
|
340
|
+
}
|
|
341
|
+
layout := utcTime
|
|
342
|
+
if tzOffsetRegex.Match(data) {
|
|
343
|
+
layout = timeFormat
|
|
344
|
+
}
|
|
345
|
+
return t.Parse(layout, string(data))
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
func (t *timeRFC3339) Parse(layout, value string) error {
|
|
349
|
+
p, err := time.Parse(layout, strings.ToUpper(value))
|
|
350
|
+
*t = timeRFC3339(p)
|
|
351
|
+
return err
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
func (t timeRFC3339) String() string {
|
|
355
|
+
tt := time.Time(t)
|
|
356
|
+
return tt.Format(timeFormat)
|
|
357
|
+
}
|
|
358
|
+
`;
|
|
359
|
+
if (needsPopulate) {
|
|
360
|
+
text += `
|
|
361
|
+
func populateTimeRFC3339(m map[string]any, k string, t *time.Time) {
|
|
362
|
+
if t == nil {
|
|
363
|
+
return
|
|
364
|
+
} else if azcore.IsNullValue(t) {
|
|
365
|
+
m[k] = nil
|
|
366
|
+
return
|
|
367
|
+
} else if reflect.ValueOf(t).IsNil() {
|
|
368
|
+
return
|
|
369
|
+
}
|
|
370
|
+
m[k] = (*timeRFC3339)(t)
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
func unpopulateTimeRFC3339(data json.RawMessage, fn string, t **time.Time) error {
|
|
374
|
+
if data == nil || string(data) == "null" {
|
|
375
|
+
return nil
|
|
376
|
+
}
|
|
377
|
+
var aux timeRFC3339
|
|
378
|
+
if err := json.Unmarshal(data, &aux); err != nil {
|
|
379
|
+
return fmt.Errorf("struct field %s: %v", fn, err)
|
|
380
|
+
}
|
|
381
|
+
*t = (*time.Time)(&aux)
|
|
382
|
+
return nil
|
|
383
|
+
}
|
|
384
|
+
`;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return text;
|
|
388
|
+
}
|
|
389
|
+
function generateUnixTimeHelper(preamble, needsPopulate) {
|
|
390
|
+
const imports = new ImportManager();
|
|
391
|
+
imports.add('encoding/json');
|
|
392
|
+
imports.add('fmt');
|
|
393
|
+
imports.add('time');
|
|
394
|
+
if (needsPopulate) {
|
|
395
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore');
|
|
396
|
+
imports.add('reflect');
|
|
397
|
+
}
|
|
398
|
+
let text = `${preamble}
|
|
399
|
+
|
|
400
|
+
${imports.text()}
|
|
401
|
+
|
|
402
|
+
type timeUnix time.Time
|
|
403
|
+
|
|
404
|
+
func (t timeUnix) MarshalJSON() ([]byte, error) {
|
|
405
|
+
return json.Marshal(time.Time(t).Unix())
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
func (t *timeUnix) UnmarshalJSON(data []byte) error {
|
|
409
|
+
var seconds int64
|
|
410
|
+
if err := json.Unmarshal(data, &seconds); err != nil {
|
|
411
|
+
return err
|
|
412
|
+
}
|
|
413
|
+
*t = timeUnix(time.Unix(seconds, 0))
|
|
414
|
+
return nil
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
func (t timeUnix) String() string {
|
|
418
|
+
return fmt.Sprintf("%d", time.Time(t).Unix())
|
|
419
|
+
}
|
|
420
|
+
`;
|
|
421
|
+
if (needsPopulate) {
|
|
422
|
+
text +=
|
|
423
|
+
`
|
|
424
|
+
func populateTimeUnix(m map[string]any, k string, t *time.Time) {
|
|
425
|
+
if t == nil {
|
|
426
|
+
return
|
|
427
|
+
} else if azcore.IsNullValue(t) {
|
|
428
|
+
m[k] = nil
|
|
429
|
+
return
|
|
430
|
+
} else if reflect.ValueOf(t).IsNil() {
|
|
431
|
+
return
|
|
432
|
+
}
|
|
433
|
+
m[k] = (*timeUnix)(t)
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
func unpopulateTimeUnix(data json.RawMessage, fn string, t **time.Time) error {
|
|
437
|
+
if data == nil || string(data) == "null" {
|
|
438
|
+
return nil
|
|
439
|
+
}
|
|
440
|
+
var aux timeUnix
|
|
441
|
+
if err := json.Unmarshal(data, &aux); err != nil {
|
|
442
|
+
return fmt.Errorf("struct field %s: %v", fn, err)
|
|
443
|
+
}
|
|
444
|
+
*t = (*time.Time)(&aux)
|
|
445
|
+
return nil
|
|
446
|
+
}
|
|
447
|
+
`;
|
|
448
|
+
}
|
|
449
|
+
return text;
|
|
450
|
+
}
|
|
451
|
+
function generateDateHelper(preamble, needsPopulate) {
|
|
452
|
+
const imports = new ImportManager();
|
|
453
|
+
imports.add('fmt');
|
|
454
|
+
imports.add('time');
|
|
455
|
+
if (needsPopulate) {
|
|
456
|
+
imports.add('encoding/json');
|
|
457
|
+
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore');
|
|
458
|
+
imports.add('reflect');
|
|
459
|
+
}
|
|
460
|
+
let text = `${preamble}
|
|
461
|
+
|
|
462
|
+
${imports.text()}
|
|
463
|
+
|
|
464
|
+
const (
|
|
465
|
+
fullDateJSON = \`"2006-01-02"\`
|
|
466
|
+
jsonFormat = \`"%04d-%02d-%02d"\`
|
|
467
|
+
)
|
|
468
|
+
|
|
469
|
+
type dateType time.Time
|
|
470
|
+
|
|
471
|
+
func (t dateType) MarshalJSON() ([]byte, error) {
|
|
472
|
+
return []byte(fmt.Sprintf(jsonFormat, time.Time(t).Year(), time.Time(t).Month(), time.Time(t).Day())), nil
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
func (d *dateType) UnmarshalJSON(data []byte) (err error) {
|
|
476
|
+
t, err := time.Parse(fullDateJSON, string(data))
|
|
477
|
+
*d = (dateType)(t)
|
|
478
|
+
return err
|
|
479
|
+
}
|
|
480
|
+
`;
|
|
481
|
+
if (needsPopulate) {
|
|
482
|
+
text +=
|
|
483
|
+
`
|
|
484
|
+
func populateDateType(m map[string]any, k string, t *time.Time) {
|
|
485
|
+
if t == nil {
|
|
486
|
+
return
|
|
487
|
+
} else if azcore.IsNullValue(t) {
|
|
488
|
+
m[k] = nil
|
|
489
|
+
return
|
|
490
|
+
} else if reflect.ValueOf(t).IsNil() {
|
|
491
|
+
return
|
|
492
|
+
}
|
|
493
|
+
m[k] = (*dateType)(t)
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
func unpopulateDateType(data json.RawMessage, fn string, t **time.Time) error {
|
|
497
|
+
if data == nil || string(data) == "null" {
|
|
498
|
+
return nil
|
|
499
|
+
}
|
|
500
|
+
var aux dateType
|
|
501
|
+
if err := json.Unmarshal(data, &aux); err != nil {
|
|
502
|
+
return fmt.Errorf("struct field %s: %v", fn, err)
|
|
503
|
+
}
|
|
504
|
+
*t = (*time.Time)(&aux)
|
|
505
|
+
return nil
|
|
506
|
+
}
|
|
507
|
+
`;
|
|
508
|
+
}
|
|
509
|
+
return text;
|
|
510
|
+
}
|
|
511
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../../../codegen.go/src/time.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as pkg from './package.js';
|
|
2
|
+
import * as param from './param.js';
|
|
3
|
+
import * as result from './result.js';
|
|
4
|
+
export interface Client {
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
options: ClientOptions;
|
|
8
|
+
parameters: Array<param.Parameter>;
|
|
9
|
+
constructors: Array<Constructor>;
|
|
10
|
+
methods: Array<Method | LROMethod | PageableMethod | LROPageableMethod>;
|
|
11
|
+
clientAccessors: Array<ClientAccessor>;
|
|
12
|
+
host?: string;
|
|
13
|
+
templatedHost: boolean;
|
|
14
|
+
parent?: Client;
|
|
15
|
+
}
|
|
16
|
+
export type ClientOptions = param.ParameterGroup | param.Parameter;
|
|
17
|
+
export interface Constructor {
|
|
18
|
+
name: string;
|
|
19
|
+
parameters: Array<param.Parameter>;
|
|
20
|
+
}
|
|
21
|
+
export interface ClientAccessor {
|
|
22
|
+
name: string;
|
|
23
|
+
subClient: Client;
|
|
24
|
+
}
|
|
25
|
+
export interface Method {
|
|
26
|
+
name: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
httpPath: string;
|
|
29
|
+
httpMethod: HTTPMethod;
|
|
30
|
+
parameters: Array<param.Parameter>;
|
|
31
|
+
optionalParamsGroup: param.ParameterGroup;
|
|
32
|
+
responseEnvelope: result.ResponseEnvelope;
|
|
33
|
+
httpStatusCodes: Array<number>;
|
|
34
|
+
client: Client;
|
|
35
|
+
naming: MethodNaming;
|
|
36
|
+
apiVersions: Array<string>;
|
|
37
|
+
}
|
|
38
|
+
export type HTTPMethod = 'delete' | 'get' | 'head' | 'patch' | 'post' | 'put';
|
|
39
|
+
export interface MethodNaming {
|
|
40
|
+
internalMethod: string;
|
|
41
|
+
requestMethod: string;
|
|
42
|
+
responseMethod: string;
|
|
43
|
+
}
|
|
44
|
+
export interface LROMethod extends Method {
|
|
45
|
+
finalStateVia?: 'azure-async-operation' | 'location' | 'operation-location' | 'original-uri';
|
|
46
|
+
isLRO: true;
|
|
47
|
+
}
|
|
48
|
+
export interface PageableMethod extends Method {
|
|
49
|
+
nextLinkName?: string;
|
|
50
|
+
nextPageMethod?: NextPageMethod;
|
|
51
|
+
isPageable: true;
|
|
52
|
+
}
|
|
53
|
+
export interface NextPageMethod {
|
|
54
|
+
name: string;
|
|
55
|
+
httpPath: string;
|
|
56
|
+
httpMethod: HTTPMethod;
|
|
57
|
+
parameters: Array<param.Parameter>;
|
|
58
|
+
httpStatusCodes: Array<number>;
|
|
59
|
+
client: Client;
|
|
60
|
+
apiVersions: Array<string>;
|
|
61
|
+
isNextPageMethod: true;
|
|
62
|
+
}
|
|
63
|
+
export interface LROPageableMethod extends LROMethod, PageableMethod {
|
|
64
|
+
}
|
|
65
|
+
export declare function isMethod(method: Method | NextPageMethod): method is Method;
|
|
66
|
+
export declare function isLROMethod(method: Method | LROMethod | PageableMethod): method is LROMethod;
|
|
67
|
+
export declare function isPageableMethod(method: Method | LROMethod | PageableMethod): method is PageableMethod;
|
|
68
|
+
export declare function newClientOptions(modelType: pkg.CodeModelType, clientName: string): ClientOptions;
|
|
69
|
+
export declare class Method implements Method {
|
|
70
|
+
constructor(name: string, client: Client, httpPath: string, httpMethod: HTTPMethod, statusCodes: Array<number>, naming: MethodNaming);
|
|
71
|
+
}
|
|
72
|
+
export declare class Client implements Client {
|
|
73
|
+
constructor(name: string, description: string, options: ClientOptions);
|
|
74
|
+
}
|
|
75
|
+
export declare class Constructor implements Constructor {
|
|
76
|
+
constructor(name: string);
|
|
77
|
+
}
|
|
78
|
+
export declare class ClientAccessor implements ClientAccessor {
|
|
79
|
+
constructor(name: string, subClient: Client);
|
|
80
|
+
}
|
|
81
|
+
export declare class MethodNaming implements MethodNaming {
|
|
82
|
+
constructor(internalMethod: string, requestMethod: string, responseMethod: string);
|
|
83
|
+
}
|
|
84
|
+
export declare class LROMethod extends Method implements LROMethod {
|
|
85
|
+
constructor(name: string, client: Client, httpPath: string, httpMethod: HTTPMethod, statusCodes: Array<number>, naming: MethodNaming);
|
|
86
|
+
}
|
|
87
|
+
export declare class PageableMethod extends Method implements PageableMethod {
|
|
88
|
+
constructor(name: string, client: Client, httpPath: string, httpMethod: HTTPMethod, statusCodes: Array<number>, naming: MethodNaming);
|
|
89
|
+
}
|
|
90
|
+
export declare class LROPageableMethod extends Method implements LROPageableMethod {
|
|
91
|
+
constructor(name: string, client: Client, httpPath: string, httpMethod: HTTPMethod, statusCodes: Array<number>, naming: MethodNaming);
|
|
92
|
+
}
|
|
93
|
+
export declare class NextPageMethod implements NextPageMethod {
|
|
94
|
+
constructor(name: string, client: Client, httpPath: string, httpMethod: HTTPMethod, statusCodes: Array<number>);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../codemodel.go/src/client.ts"],"names":[],"mappings":"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"}
|