@aircast-4g/mavlink 1.0.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.
- package/LICENSE +21 -0
- package/README.md +632 -0
- package/dist/batch-processor.d.ts +17 -0
- package/dist/batch-processor.d.ts.map +1 -0
- package/dist/batch-processor.js +141 -0
- package/dist/batch-processor.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +174 -0
- package/dist/cli.js.map +1 -0
- package/dist/generator/batch-processor.d.ts +17 -0
- package/dist/generator/batch-processor.d.ts.map +1 -0
- package/dist/generator/batch-processor.js +141 -0
- package/dist/generator/batch-processor.js.map +1 -0
- package/dist/generator/generator.d.ts +15 -0
- package/dist/generator/generator.d.ts.map +1 -0
- package/dist/generator/generator.js +92 -0
- package/dist/generator/generator.js.map +1 -0
- package/dist/generator/template-engine.d.ts +13 -0
- package/dist/generator/template-engine.d.ts.map +1 -0
- package/dist/generator/template-engine.js +220 -0
- package/dist/generator/template-engine.js.map +1 -0
- package/dist/generator/type-converter.d.ts +15 -0
- package/dist/generator/type-converter.d.ts.map +1 -0
- package/dist/generator/type-converter.js +179 -0
- package/dist/generator/type-converter.js.map +1 -0
- package/dist/generator/xml-parser.d.ts +13 -0
- package/dist/generator/xml-parser.d.ts.map +1 -0
- package/dist/generator/xml-parser.js +170 -0
- package/dist/generator/xml-parser.js.map +1 -0
- package/dist/generator.d.ts +15 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +92 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/crc.d.ts +7 -0
- package/dist/parser/crc.d.ts.map +1 -0
- package/dist/parser/crc.js +182 -0
- package/dist/parser/crc.js.map +1 -0
- package/dist/parser/frame-parser.d.ts +15 -0
- package/dist/parser/frame-parser.d.ts.map +1 -0
- package/dist/parser/frame-parser.js +82 -0
- package/dist/parser/frame-parser.js.map +1 -0
- package/dist/parser/index.d.ts +6 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +28 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/mavlink-parser.d.ts +35 -0
- package/dist/parser/mavlink-parser.d.ts.map +1 -0
- package/dist/parser/mavlink-parser.js +204 -0
- package/dist/parser/mavlink-parser.js.map +1 -0
- package/dist/parser/message-decoder.d.ts +11 -0
- package/dist/parser/message-decoder.d.ts.map +1 -0
- package/dist/parser/message-decoder.js +247 -0
- package/dist/parser/message-decoder.js.map +1 -0
- package/dist/parser/types.d.ts +59 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +13 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/template-engine.d.ts +13 -0
- package/dist/template-engine.d.ts.map +1 -0
- package/dist/template-engine.js +220 -0
- package/dist/template-engine.js.map +1 -0
- package/dist/type-converter.d.ts +15 -0
- package/dist/type-converter.d.ts.map +1 -0
- package/dist/type-converter.js +179 -0
- package/dist/type-converter.js.map +1 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/xml-parser.d.ts +13 -0
- package/dist/xml-parser.d.ts.map +1 -0
- package/dist/xml-parser.js +170 -0
- package/dist/xml-parser.js.map +1 -0
- package/package.json +105 -0
- package/types/ardupilotmega/enums.d.ts +2427 -0
- package/types/ardupilotmega/enums.d.ts.map +1 -0
- package/types/ardupilotmega/enums.js +4636 -0
- package/types/ardupilotmega/enums.js.map +1 -0
- package/types/ardupilotmega/enums.ts +4631 -0
- package/types/ardupilotmega/index.d.ts +4 -0
- package/types/ardupilotmega/index.d.ts.map +1 -0
- package/types/ardupilotmega/index.js +22 -0
- package/types/ardupilotmega/index.js.map +1 -0
- package/types/ardupilotmega/index.ts +6 -0
- package/types/ardupilotmega/messages.d.ts +3719 -0
- package/types/ardupilotmega/messages.d.ts.map +1 -0
- package/types/ardupilotmega/messages.js +1281 -0
- package/types/ardupilotmega/messages.js.map +1 -0
- package/types/ardupilotmega/messages.ts +8088 -0
- package/types/ardupilotmega/types.d.ts +221 -0
- package/types/ardupilotmega/types.d.ts.map +1 -0
- package/types/ardupilotmega/types.js +5 -0
- package/types/ardupilotmega/types.js.map +1 -0
- package/types/ardupilotmega/types.ts +2833 -0
- package/types/common/enums.d.ts +1843 -0
- package/types/common/enums.d.ts.map +1 -0
- package/types/common/enums.js +3636 -0
- package/types/common/enums.js.map +1 -0
- package/types/common/enums.ts +3632 -0
- package/types/common/index.d.ts +4 -0
- package/types/common/index.d.ts.map +1 -0
- package/types/common/index.js +21 -0
- package/types/common/index.js.map +1 -0
- package/types/common/index.ts +6 -0
- package/types/common/messages.d.ts +2805 -0
- package/types/common/messages.d.ts.map +1 -0
- package/types/common/messages.js +920 -0
- package/types/common/messages.js.map +1 -0
- package/types/common/messages.ts +6114 -0
- package/types/common/types.d.ts +157 -0
- package/types/common/types.d.ts.map +1 -0
- package/types/common/types.js +4 -0
- package/types/common/types.js.map +1 -0
- package/types/common/types.ts +2159 -0
- package/types/minimal/enums.d.ts +244 -0
- package/types/minimal/enums.d.ts.map +1 -0
- package/types/minimal/enums.js +496 -0
- package/types/minimal/enums.js.map +1 -0
- package/types/minimal/enums.ts +494 -0
- package/types/minimal/index.d.ts +4 -0
- package/types/minimal/index.d.ts.map +1 -0
- package/types/minimal/index.js +21 -0
- package/types/minimal/index.js.map +1 -0
- package/types/minimal/index.ts +6 -0
- package/types/minimal/messages.d.ts +25 -0
- package/types/minimal/messages.d.ts.map +1 -0
- package/types/minimal/messages.js +12 -0
- package/types/minimal/messages.js.map +1 -0
- package/types/minimal/messages.ts +62 -0
- package/types/minimal/types.d.ts +14 -0
- package/types/minimal/types.d.ts.map +1 -0
- package/types/minimal/types.js +4 -0
- package/types/minimal/types.js.map +1 -0
- package/types/minimal/types.ts +272 -0
- package/types/paparazzi/enums.ts +3632 -0
- package/types/paparazzi/index.ts +6 -0
- package/types/paparazzi/messages.ts +6185 -0
- package/types/paparazzi/types.ts +2159 -0
- package/types/python_array_test/enums.ts +3632 -0
- package/types/python_array_test/index.ts +6 -0
- package/types/python_array_test/messages.ts +6258 -0
- package/types/python_array_test/types.ts +2159 -0
- package/types/standard/enums.d.ts +248 -0
- package/types/standard/enums.d.ts.map +1 -0
- package/types/standard/enums.js +505 -0
- package/types/standard/enums.js.map +1 -0
- package/types/standard/enums.ts +502 -0
- package/types/standard/index.d.ts +4 -0
- package/types/standard/index.d.ts.map +1 -0
- package/types/standard/index.js +22 -0
- package/types/standard/index.js.map +1 -0
- package/types/standard/index.ts +6 -0
- package/types/standard/messages.d.ts +25 -0
- package/types/standard/messages.d.ts.map +1 -0
- package/types/standard/messages.js +13 -0
- package/types/standard/messages.js.map +1 -0
- package/types/standard/messages.ts +63 -0
- package/types/standard/types.d.ts +15 -0
- package/types/standard/types.d.ts.map +1 -0
- package/types/standard/types.js +5 -0
- package/types/standard/types.js.map +1 -0
- package/types/standard/types.ts +278 -0
- package/types/test/enums.ts +2 -0
- package/types/test/index.ts +6 -0
- package/types/test/messages.ts +69 -0
- package/types/test/types.ts +11 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TemplateEngine = void 0;
|
|
7
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
8
|
+
class TemplateEngine {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.templates = new Map();
|
|
11
|
+
this.initializeTemplates();
|
|
12
|
+
this.registerHelpers();
|
|
13
|
+
}
|
|
14
|
+
initializeTemplates() {
|
|
15
|
+
// Main types template
|
|
16
|
+
this.templates.set('types', handlebars_1.default.compile(`// Auto-generated TypeScript types for {{ dialectName }} dialect
|
|
17
|
+
// Generated from MAVLink XML definitions
|
|
18
|
+
|
|
19
|
+
export interface MAVLinkMessage<Content = unknown> {
|
|
20
|
+
timestamp: number;
|
|
21
|
+
system_id: number;
|
|
22
|
+
component_id: number;
|
|
23
|
+
type: string;
|
|
24
|
+
content: Content;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
{{#each enums}}
|
|
28
|
+
{{#each description}}
|
|
29
|
+
// {{ this }}
|
|
30
|
+
{{/each}}
|
|
31
|
+
export type {{ name }} =
|
|
32
|
+
{{#each values}}
|
|
33
|
+
| {{ value }}{{#if description}} // {{ name }} - {{ join description " " }}{{/if}}
|
|
34
|
+
{{/each}}
|
|
35
|
+
| number;
|
|
36
|
+
|
|
37
|
+
{{/each}}
|
|
38
|
+
`));
|
|
39
|
+
// Enums template
|
|
40
|
+
this.templates.set('enums', handlebars_1.default.compile(`// Auto-generated TypeScript enums for {{ dialectName }} dialect
|
|
41
|
+
|
|
42
|
+
{{#each enums}}
|
|
43
|
+
{{#each description}}
|
|
44
|
+
// {{ this }}
|
|
45
|
+
{{/each}}
|
|
46
|
+
export enum {{ name }}Enum {
|
|
47
|
+
{{#each values}}
|
|
48
|
+
{{#each description}}
|
|
49
|
+
// {{ this }}
|
|
50
|
+
{{/each}}
|
|
51
|
+
{{ name }} = {{ value }},
|
|
52
|
+
{{/each}}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
{{/each}}
|
|
56
|
+
`));
|
|
57
|
+
// Messages template
|
|
58
|
+
this.templates.set('messages', handlebars_1.default.compile(`// Auto-generated TypeScript message interfaces for {{ dialectName }} dialect
|
|
59
|
+
|
|
60
|
+
import { MAVLinkMessage } from './types';
|
|
61
|
+
import type {
|
|
62
|
+
{{#each enums}}
|
|
63
|
+
{{ name }},
|
|
64
|
+
{{/each}}
|
|
65
|
+
} from './types';
|
|
66
|
+
|
|
67
|
+
{{#each messages}}
|
|
68
|
+
{{#each description}}
|
|
69
|
+
// {{ this }}
|
|
70
|
+
{{/each}}
|
|
71
|
+
export interface Message{{ name }} {
|
|
72
|
+
{{#each fields}}
|
|
73
|
+
{{#each description}}
|
|
74
|
+
// {{ this }}
|
|
75
|
+
{{/each}}
|
|
76
|
+
{{ name }}{{#if optional}}?{{/if}}: {{ type }};
|
|
77
|
+
{{/each}}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
{{/each}}
|
|
81
|
+
|
|
82
|
+
// Message type map for type-safe message handling
|
|
83
|
+
export interface MessageTypeMap {
|
|
84
|
+
{{#each messages}}
|
|
85
|
+
{{ originalName }}: Message{{ name }};
|
|
86
|
+
{{/each}}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Union type of all message types
|
|
90
|
+
export type AnyMessage =
|
|
91
|
+
{{#each messages}}
|
|
92
|
+
| MAVLinkMessage<Message{{ name }}>
|
|
93
|
+
{{/each}};
|
|
94
|
+
|
|
95
|
+
// Type guard functions
|
|
96
|
+
{{#each messages}}
|
|
97
|
+
export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message{{ name }}> {
|
|
98
|
+
return msg.type === '{{ originalName }}';
|
|
99
|
+
}
|
|
100
|
+
{{/each}}
|
|
101
|
+
`));
|
|
102
|
+
// Index template
|
|
103
|
+
this.templates.set('index', handlebars_1.default.compile(`// Auto-generated TypeScript index file
|
|
104
|
+
// Exports all dialect types
|
|
105
|
+
|
|
106
|
+
export * from './types';
|
|
107
|
+
export * from './enums';
|
|
108
|
+
export * from './messages';
|
|
109
|
+
`));
|
|
110
|
+
// Single file template
|
|
111
|
+
this.templates.set('single', handlebars_1.default.compile(`// Auto-generated TypeScript types for {{ dialectName }} dialect
|
|
112
|
+
// Generated from MAVLink XML definitions
|
|
113
|
+
|
|
114
|
+
export interface MAVLinkMessage<Content = unknown> {
|
|
115
|
+
timestamp: number;
|
|
116
|
+
system_id: number;
|
|
117
|
+
component_id: number;
|
|
118
|
+
type: string;
|
|
119
|
+
content: Content;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Enums
|
|
123
|
+
{{#each enums}}
|
|
124
|
+
{{#each description}}
|
|
125
|
+
// {{ this }}
|
|
126
|
+
{{/each}}
|
|
127
|
+
export type {{ name }} =
|
|
128
|
+
{{#each values}}
|
|
129
|
+
| {{ value }}{{#if description}} // {{ name }} - {{ join description " " }}{{/if}}
|
|
130
|
+
{{/each}}
|
|
131
|
+
| number;
|
|
132
|
+
|
|
133
|
+
{{/each}}
|
|
134
|
+
|
|
135
|
+
// Messages
|
|
136
|
+
{{#each messages}}
|
|
137
|
+
{{#each description}}
|
|
138
|
+
// {{ this }}
|
|
139
|
+
{{/each}}
|
|
140
|
+
export interface Message{{ name }} {
|
|
141
|
+
{{#each fields}}
|
|
142
|
+
{{#each description}}
|
|
143
|
+
// {{ this }}
|
|
144
|
+
{{/each}}
|
|
145
|
+
{{ name }}{{#if optional}}?{{/if}}: {{ type }};
|
|
146
|
+
{{/each}}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
{{/each}}
|
|
150
|
+
|
|
151
|
+
// Message type map for type-safe message handling
|
|
152
|
+
export interface MessageTypeMap {
|
|
153
|
+
{{#each messages}}
|
|
154
|
+
{{ originalName }}: Message{{ name }};
|
|
155
|
+
{{/each}}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Union type of all message types
|
|
159
|
+
export type AnyMessage =
|
|
160
|
+
{{#each messages}}
|
|
161
|
+
| MAVLinkMessage<Message{{ name }}>
|
|
162
|
+
{{/each}};
|
|
163
|
+
|
|
164
|
+
// Type guard functions
|
|
165
|
+
{{#each messages}}
|
|
166
|
+
export function is{{ name }}(msg: MAVLinkMessage): msg is MAVLinkMessage<Message{{ name }}> {
|
|
167
|
+
return msg.type === '{{ originalName }}';
|
|
168
|
+
}
|
|
169
|
+
{{/each}}
|
|
170
|
+
`));
|
|
171
|
+
}
|
|
172
|
+
registerHelpers() {
|
|
173
|
+
handlebars_1.default.registerHelper('join', (array, separator) => {
|
|
174
|
+
return array.join(separator);
|
|
175
|
+
});
|
|
176
|
+
handlebars_1.default.registerHelper('eq', (a, b) => {
|
|
177
|
+
return a === b;
|
|
178
|
+
});
|
|
179
|
+
handlebars_1.default.registerHelper('ne', (a, b) => {
|
|
180
|
+
return a !== b;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
generateTypes(dialect) {
|
|
184
|
+
const template = this.templates.get('types');
|
|
185
|
+
if (!template) {
|
|
186
|
+
throw new Error('Types template not found');
|
|
187
|
+
}
|
|
188
|
+
return template(dialect);
|
|
189
|
+
}
|
|
190
|
+
generateEnums(dialect) {
|
|
191
|
+
const template = this.templates.get('enums');
|
|
192
|
+
if (!template) {
|
|
193
|
+
throw new Error('Enums template not found');
|
|
194
|
+
}
|
|
195
|
+
return template(dialect);
|
|
196
|
+
}
|
|
197
|
+
generateMessages(dialect) {
|
|
198
|
+
const template = this.templates.get('messages');
|
|
199
|
+
if (!template) {
|
|
200
|
+
throw new Error('Messages template not found');
|
|
201
|
+
}
|
|
202
|
+
return template(dialect);
|
|
203
|
+
}
|
|
204
|
+
generateIndex(dialect, includeEnums = false) {
|
|
205
|
+
const template = this.templates.get('index');
|
|
206
|
+
if (!template) {
|
|
207
|
+
throw new Error('Index template not found');
|
|
208
|
+
}
|
|
209
|
+
return template({ ...dialect, includeEnums });
|
|
210
|
+
}
|
|
211
|
+
generateSingle(dialect) {
|
|
212
|
+
const template = this.templates.get('single');
|
|
213
|
+
if (!template) {
|
|
214
|
+
throw new Error('Single template not found');
|
|
215
|
+
}
|
|
216
|
+
return template(dialect);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
exports.TemplateEngine = TemplateEngine;
|
|
220
|
+
//# sourceMappingURL=template-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MAVLinkDialectDefinition, TypeScriptDialect } from './types';
|
|
2
|
+
export declare class TypeConverter {
|
|
3
|
+
private static readonly MAVLINK_TO_TS_TYPES;
|
|
4
|
+
convert(definition: MAVLinkDialectDefinition, dialectName: string): TypeScriptDialect;
|
|
5
|
+
private convertEnum;
|
|
6
|
+
private convertMessage;
|
|
7
|
+
private convertField;
|
|
8
|
+
private convertMessageName;
|
|
9
|
+
private convertFieldName;
|
|
10
|
+
private convertFieldType;
|
|
11
|
+
private convertSingleType;
|
|
12
|
+
private parseEnumValue;
|
|
13
|
+
private parseDescription;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=type-converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../src/type-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAIxB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAEjB,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAazC;IAEF,OAAO,CAAC,UAAU,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB;IA8BrF,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,gBAAgB;CAQzB"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeConverter = void 0;
|
|
4
|
+
class TypeConverter {
|
|
5
|
+
convert(definition, dialectName) {
|
|
6
|
+
const tsDialect = {
|
|
7
|
+
dialectName,
|
|
8
|
+
enums: [],
|
|
9
|
+
messages: []
|
|
10
|
+
};
|
|
11
|
+
// Convert enums
|
|
12
|
+
if (definition.enums) {
|
|
13
|
+
for (const enumDef of definition.enums) {
|
|
14
|
+
const tsEnum = this.convertEnum(enumDef);
|
|
15
|
+
if (tsEnum) {
|
|
16
|
+
tsDialect.enums.push(tsEnum);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Convert messages
|
|
21
|
+
if (definition.messages) {
|
|
22
|
+
for (const messageDef of definition.messages) {
|
|
23
|
+
const tsMessage = this.convertMessage(messageDef, tsDialect.enums);
|
|
24
|
+
if (tsMessage) {
|
|
25
|
+
tsDialect.messages.push(tsMessage);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return tsDialect;
|
|
30
|
+
}
|
|
31
|
+
convertEnum(enumDef) {
|
|
32
|
+
if (!enumDef || !enumDef.name || !enumDef.entries || enumDef.entries.length === 0) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const tsEnum = {
|
|
36
|
+
name: enumDef.name,
|
|
37
|
+
description: this.parseDescription(enumDef.description || ''),
|
|
38
|
+
bitmask: enumDef.bitmask || false,
|
|
39
|
+
values: []
|
|
40
|
+
};
|
|
41
|
+
for (const entry of enumDef.entries) {
|
|
42
|
+
const value = this.parseEnumValue(entry.value);
|
|
43
|
+
if (value !== null) {
|
|
44
|
+
tsEnum.values.push({
|
|
45
|
+
name: entry.name,
|
|
46
|
+
value,
|
|
47
|
+
description: this.parseDescription(entry.description || '')
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return tsEnum;
|
|
52
|
+
}
|
|
53
|
+
convertMessage(messageDef, enums) {
|
|
54
|
+
if (!messageDef.name || !messageDef.fields) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const tsMessage = {
|
|
58
|
+
name: this.convertMessageName(messageDef.name),
|
|
59
|
+
originalName: messageDef.name,
|
|
60
|
+
description: this.parseDescription(messageDef.description || ''),
|
|
61
|
+
fields: []
|
|
62
|
+
};
|
|
63
|
+
for (const fieldDef of messageDef.fields) {
|
|
64
|
+
const tsField = this.convertField(fieldDef, enums);
|
|
65
|
+
if (tsField) {
|
|
66
|
+
tsMessage.fields.push(tsField);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return tsMessage;
|
|
70
|
+
}
|
|
71
|
+
convertField(fieldDef, enums) {
|
|
72
|
+
if (!fieldDef.name || !fieldDef.type) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const tsField = {
|
|
76
|
+
name: this.convertFieldName(fieldDef.name),
|
|
77
|
+
type: this.convertFieldType(fieldDef.type, fieldDef.enum, enums),
|
|
78
|
+
description: this.parseDescription(fieldDef.description || ''),
|
|
79
|
+
optional: fieldDef.extension || false
|
|
80
|
+
};
|
|
81
|
+
return tsField;
|
|
82
|
+
}
|
|
83
|
+
convertMessageName(name) {
|
|
84
|
+
// Convert UPPER_CASE to PascalCase
|
|
85
|
+
return name.split('_')
|
|
86
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
87
|
+
.join('');
|
|
88
|
+
}
|
|
89
|
+
convertFieldName(name) {
|
|
90
|
+
// Convert snake_case to PascalCase
|
|
91
|
+
return name.split('_')
|
|
92
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
93
|
+
.join('');
|
|
94
|
+
}
|
|
95
|
+
convertFieldType(type, enumName, enums) {
|
|
96
|
+
// Handle arrays
|
|
97
|
+
const arrayMatch = type.match(/^(.+?)\[(\d+)\]$/);
|
|
98
|
+
if (arrayMatch) {
|
|
99
|
+
const elementType = arrayMatch[1];
|
|
100
|
+
// Handle string arrays (char arrays)
|
|
101
|
+
if (elementType === 'char') {
|
|
102
|
+
return 'string';
|
|
103
|
+
}
|
|
104
|
+
// Handle other arrays
|
|
105
|
+
const tsElementType = this.convertSingleType(elementType, enumName, enums);
|
|
106
|
+
return `${tsElementType}[]`;
|
|
107
|
+
}
|
|
108
|
+
return this.convertSingleType(type, enumName, enums);
|
|
109
|
+
}
|
|
110
|
+
convertSingleType(type, enumName, enums) {
|
|
111
|
+
// If there's an enum specified, use it
|
|
112
|
+
if (enumName) {
|
|
113
|
+
const enumExists = enums.find(e => e.name === enumName);
|
|
114
|
+
if (enumExists) {
|
|
115
|
+
return enumName;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Check if it's a basic type
|
|
119
|
+
const tsType = TypeConverter.MAVLINK_TO_TS_TYPES[type];
|
|
120
|
+
if (tsType) {
|
|
121
|
+
return tsType;
|
|
122
|
+
}
|
|
123
|
+
// Check if it's an enum type
|
|
124
|
+
const enumType = enums.find(e => e.name === type);
|
|
125
|
+
if (enumType) {
|
|
126
|
+
return type;
|
|
127
|
+
}
|
|
128
|
+
// Default to unknown
|
|
129
|
+
return 'unknown';
|
|
130
|
+
}
|
|
131
|
+
parseEnumValue(value) {
|
|
132
|
+
if (!value)
|
|
133
|
+
return null;
|
|
134
|
+
// Handle binary values
|
|
135
|
+
if (value.startsWith('0b')) {
|
|
136
|
+
return parseInt(value.slice(2), 2);
|
|
137
|
+
}
|
|
138
|
+
// Handle hex values
|
|
139
|
+
if (value.startsWith('0x')) {
|
|
140
|
+
return parseInt(value.slice(2), 16);
|
|
141
|
+
}
|
|
142
|
+
// Handle power operations
|
|
143
|
+
if (value.includes('**')) {
|
|
144
|
+
const parts = value.split('**');
|
|
145
|
+
if (parts.length === 2) {
|
|
146
|
+
const base = parseInt(parts[0]);
|
|
147
|
+
const exp = parseInt(parts[1]);
|
|
148
|
+
return Math.pow(base, exp);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Handle regular integers
|
|
152
|
+
const intValue = parseInt(value);
|
|
153
|
+
return isNaN(intValue) ? null : intValue;
|
|
154
|
+
}
|
|
155
|
+
parseDescription(description) {
|
|
156
|
+
if (!description)
|
|
157
|
+
return [];
|
|
158
|
+
return description
|
|
159
|
+
.split('\n')
|
|
160
|
+
.map(line => line.trim())
|
|
161
|
+
.filter(line => line.length > 0);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.TypeConverter = TypeConverter;
|
|
165
|
+
TypeConverter.MAVLINK_TO_TS_TYPES = {
|
|
166
|
+
'double': 'number',
|
|
167
|
+
'uint64_t': 'number',
|
|
168
|
+
'int64_t': 'number',
|
|
169
|
+
'float': 'number',
|
|
170
|
+
'uint32_t': 'number',
|
|
171
|
+
'int32_t': 'number',
|
|
172
|
+
'uint16_t': 'number',
|
|
173
|
+
'int16_t': 'number',
|
|
174
|
+
'uint8_t': 'number',
|
|
175
|
+
'int8_t': 'number',
|
|
176
|
+
'char': 'string',
|
|
177
|
+
'uint8_t_mavlink_version': 'number'
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=type-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../src/type-converter.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export interface MAVLinkDialectDefinition {
|
|
2
|
+
version?: string;
|
|
3
|
+
dialect?: number;
|
|
4
|
+
includes?: string[];
|
|
5
|
+
enums?: EnumDefinition[];
|
|
6
|
+
messages?: MessageDefinition[];
|
|
7
|
+
}
|
|
8
|
+
export interface EnumDefinition {
|
|
9
|
+
name: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
bitmask?: boolean;
|
|
12
|
+
entries: EnumEntry[];
|
|
13
|
+
}
|
|
14
|
+
export interface EnumEntry {
|
|
15
|
+
name: string;
|
|
16
|
+
value: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MessageDefinition {
|
|
20
|
+
id: number;
|
|
21
|
+
name: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
fields: FieldDefinition[];
|
|
24
|
+
}
|
|
25
|
+
export interface FieldDefinition {
|
|
26
|
+
name: string;
|
|
27
|
+
type: string;
|
|
28
|
+
enum?: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
extension?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface TypeScriptEnum {
|
|
33
|
+
name: string;
|
|
34
|
+
description: string[];
|
|
35
|
+
values: TypeScriptEnumValue[];
|
|
36
|
+
bitmask: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface TypeScriptEnumValue {
|
|
39
|
+
name: string;
|
|
40
|
+
value: number;
|
|
41
|
+
description: string[];
|
|
42
|
+
}
|
|
43
|
+
export interface TypeScriptField {
|
|
44
|
+
name: string;
|
|
45
|
+
type: string;
|
|
46
|
+
description: string[];
|
|
47
|
+
optional: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface TypeScriptMessage {
|
|
50
|
+
name: string;
|
|
51
|
+
originalName: string;
|
|
52
|
+
description: string[];
|
|
53
|
+
fields: TypeScriptField[];
|
|
54
|
+
}
|
|
55
|
+
export interface TypeScriptDialect {
|
|
56
|
+
dialectName: string;
|
|
57
|
+
enums: TypeScriptEnum[];
|
|
58
|
+
messages: TypeScriptMessage[];
|
|
59
|
+
}
|
|
60
|
+
export interface GenerationOptions {
|
|
61
|
+
dialectName: string;
|
|
62
|
+
outputFormat: 'single' | 'separate';
|
|
63
|
+
includeTypeGuards: boolean;
|
|
64
|
+
includeEnums: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface MAVLinkDialect {
|
|
67
|
+
version?: string;
|
|
68
|
+
dialect?: string;
|
|
69
|
+
include?: string | string[];
|
|
70
|
+
enums?: {
|
|
71
|
+
enum: XMLEnum | XMLEnum[];
|
|
72
|
+
};
|
|
73
|
+
messages?: {
|
|
74
|
+
message: XMLMessage | XMLMessage[];
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export interface XMLEnum {
|
|
78
|
+
$: {
|
|
79
|
+
name: string;
|
|
80
|
+
bitmask?: string;
|
|
81
|
+
};
|
|
82
|
+
description?: string;
|
|
83
|
+
entry?: XMLEnumEntry | XMLEnumEntry[];
|
|
84
|
+
}
|
|
85
|
+
export interface XMLEnumEntry {
|
|
86
|
+
$: {
|
|
87
|
+
name: string;
|
|
88
|
+
value: string;
|
|
89
|
+
};
|
|
90
|
+
description?: string;
|
|
91
|
+
_?: string;
|
|
92
|
+
}
|
|
93
|
+
export interface XMLMessage {
|
|
94
|
+
$: {
|
|
95
|
+
id: string;
|
|
96
|
+
name: string;
|
|
97
|
+
};
|
|
98
|
+
description?: string;
|
|
99
|
+
field?: XMLField | XMLField[];
|
|
100
|
+
}
|
|
101
|
+
export interface XMLField {
|
|
102
|
+
$: {
|
|
103
|
+
name: string;
|
|
104
|
+
type: string;
|
|
105
|
+
enum?: string;
|
|
106
|
+
};
|
|
107
|
+
_?: string;
|
|
108
|
+
description?: string;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MAVLinkDialectDefinition } from './types';
|
|
2
|
+
export declare class XMLParser {
|
|
3
|
+
private processedUrls;
|
|
4
|
+
parseFromURL(url: string): Promise<MAVLinkDialectDefinition>;
|
|
5
|
+
parseFromFile(filePath: string): Promise<MAVLinkDialectDefinition>;
|
|
6
|
+
private parseXML;
|
|
7
|
+
private processDefinition;
|
|
8
|
+
private resolveIncludeUrl;
|
|
9
|
+
private processEnum;
|
|
10
|
+
private processMessage;
|
|
11
|
+
reset(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=xml-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-parser.d.ts","sourceRoot":"","sources":["../src/xml-parser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAA2F,MAAM,SAAS,CAAC;AAE5I,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAqB;IAEpC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAS5D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;YAK1D,QAAQ;YAkBR,iBAAiB;IA4D/B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,cAAc;IAsCtB,KAAK,IAAI,IAAI;CAGd"}
|