@aircast-4g/mavlink 1.0.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +0 -0
- package/dist/dialects/ardupilotmega/decoder.js +11930 -0
- package/dist/dialects/common/decoder.js +9098 -0
- package/dist/dialects/minimal/decoder.js +67 -0
- package/dist/generator/generator.d.ts +1 -0
- package/dist/generator/generator.d.ts.map +1 -1
- package/dist/generator/generator.js +49 -5
- package/dist/generator/generator.js.map +1 -1
- package/dist/generator/template-engine.d.ts +1 -0
- package/dist/generator/template-engine.d.ts.map +1 -1
- package/dist/generator/template-engine.js +50 -0
- package/dist/generator/template-engine.js.map +1 -1
- package/dist/parser/mavlink-parser.d.ts.map +1 -1
- package/dist/parser/mavlink-parser.js +17 -6
- package/dist/parser/mavlink-parser.js.map +1 -1
- package/dist/parser/message-decoder.d.ts +40 -4
- package/dist/parser/message-decoder.d.ts.map +1 -1
- package/dist/parser/message-decoder.js +263 -222
- package/dist/parser/message-decoder.js.map +1 -1
- package/dist/parser/types.d.ts +1 -0
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/parser/types.js.map +1 -1
- package/package.json +17 -26
- package/dist/batch-processor.d.ts +0 -17
- package/dist/batch-processor.d.ts.map +0 -1
- package/dist/batch-processor.js +0 -141
- package/dist/batch-processor.js.map +0 -1
- package/dist/generator.d.ts +0 -15
- package/dist/generator.d.ts.map +0 -1
- package/dist/generator.js +0 -92
- package/dist/generator.js.map +0 -1
- package/dist/template-engine.d.ts +0 -13
- package/dist/template-engine.d.ts.map +0 -1
- package/dist/template-engine.js +0 -220
- package/dist/template-engine.js.map +0 -1
- package/dist/type-converter.d.ts +0 -15
- package/dist/type-converter.d.ts.map +0 -1
- package/dist/type-converter.js +0 -179
- package/dist/type-converter.js.map +0 -1
- package/dist/xml-parser.d.ts +0 -13
- package/dist/xml-parser.d.ts.map +0 -1
- package/dist/xml-parser.js +0 -170
- package/dist/xml-parser.js.map +0 -1
- package/types/ardupilotmega/enums.d.ts +0 -2427
- package/types/ardupilotmega/enums.d.ts.map +0 -1
- package/types/ardupilotmega/enums.js +0 -4636
- package/types/ardupilotmega/enums.js.map +0 -1
- package/types/ardupilotmega/index.d.ts +0 -4
- package/types/ardupilotmega/index.d.ts.map +0 -1
- package/types/ardupilotmega/index.js +0 -22
- package/types/ardupilotmega/index.js.map +0 -1
- package/types/ardupilotmega/messages.d.ts +0 -3719
- package/types/ardupilotmega/messages.d.ts.map +0 -1
- package/types/ardupilotmega/messages.js +0 -1281
- package/types/ardupilotmega/messages.js.map +0 -1
- package/types/ardupilotmega/types.d.ts +0 -221
- package/types/ardupilotmega/types.d.ts.map +0 -1
- package/types/ardupilotmega/types.js +0 -5
- package/types/ardupilotmega/types.js.map +0 -1
- package/types/common/enums.d.ts +0 -1843
- package/types/common/enums.d.ts.map +0 -1
- package/types/common/enums.js +0 -3636
- package/types/common/enums.js.map +0 -1
- package/types/common/index.d.ts +0 -4
- package/types/common/index.d.ts.map +0 -1
- package/types/common/index.js +0 -21
- package/types/common/index.js.map +0 -1
- package/types/common/messages.d.ts +0 -2805
- package/types/common/messages.d.ts.map +0 -1
- package/types/common/messages.js +0 -920
- package/types/common/messages.js.map +0 -1
- package/types/common/types.d.ts +0 -157
- package/types/common/types.d.ts.map +0 -1
- package/types/common/types.js +0 -4
- package/types/common/types.js.map +0 -1
- package/types/minimal/enums.d.ts +0 -244
- package/types/minimal/enums.d.ts.map +0 -1
- package/types/minimal/enums.js +0 -496
- package/types/minimal/enums.js.map +0 -1
- package/types/minimal/index.d.ts +0 -4
- package/types/minimal/index.d.ts.map +0 -1
- package/types/minimal/index.js +0 -21
- package/types/minimal/index.js.map +0 -1
- package/types/minimal/messages.d.ts +0 -25
- package/types/minimal/messages.d.ts.map +0 -1
- package/types/minimal/messages.js +0 -12
- package/types/minimal/messages.js.map +0 -1
- package/types/minimal/types.d.ts +0 -14
- package/types/minimal/types.d.ts.map +0 -1
- package/types/minimal/types.js +0 -4
- package/types/minimal/types.js.map +0 -1
- package/types/paparazzi/enums.ts +0 -3632
- package/types/paparazzi/index.ts +0 -6
- package/types/paparazzi/messages.ts +0 -6185
- package/types/paparazzi/types.ts +0 -2159
- package/types/python_array_test/enums.ts +0 -3632
- package/types/python_array_test/index.ts +0 -6
- package/types/python_array_test/messages.ts +0 -6258
- package/types/python_array_test/types.ts +0 -2159
- package/types/standard/enums.d.ts +0 -248
- package/types/standard/enums.d.ts.map +0 -1
- package/types/standard/enums.js +0 -505
- package/types/standard/enums.js.map +0 -1
- package/types/standard/enums.ts +0 -502
- package/types/standard/index.d.ts +0 -4
- package/types/standard/index.d.ts.map +0 -1
- package/types/standard/index.js +0 -22
- package/types/standard/index.js.map +0 -1
- package/types/standard/index.ts +0 -6
- package/types/standard/messages.d.ts +0 -25
- package/types/standard/messages.d.ts.map +0 -1
- package/types/standard/messages.js +0 -13
- package/types/standard/messages.js.map +0 -1
- package/types/standard/messages.ts +0 -63
- package/types/standard/types.d.ts +0 -15
- package/types/standard/types.d.ts.map +0 -1
- package/types/standard/types.js +0 -5
- package/types/standard/types.js.map +0 -1
- package/types/standard/types.ts +0 -278
- package/types/test/enums.ts +0 -2
- package/types/test/index.ts +0 -6
- package/types/test/messages.ts +0 -69
- package/types/test/types.ts +0 -11
- /package/{types/ardupilotmega/enums.ts → dist/dialects/ardupilotmega/enums.d.ts} +0 -0
- /package/{types/ardupilotmega/index.ts → dist/dialects/ardupilotmega/index.d.ts} +0 -0
- /package/{types/ardupilotmega/messages.ts → dist/dialects/ardupilotmega/messages.d.ts} +0 -0
- /package/{types/ardupilotmega/types.ts → dist/dialects/ardupilotmega/types.d.ts} +0 -0
- /package/{types/common/enums.ts → dist/dialects/common/enums.d.ts} +0 -0
- /package/{types/common/index.ts → dist/dialects/common/index.d.ts} +0 -0
- /package/{types/common/messages.ts → dist/dialects/common/messages.d.ts} +0 -0
- /package/{types/common/types.ts → dist/dialects/common/types.d.ts} +0 -0
- /package/{types/minimal/enums.ts → dist/dialects/minimal/enums.d.ts} +0 -0
- /package/{types/minimal/index.ts → dist/dialects/minimal/index.d.ts} +0 -0
- /package/{types/minimal/messages.ts → dist/dialects/minimal/messages.d.ts} +0 -0
- /package/{types/minimal/types.ts → dist/dialects/minimal/types.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aircast-4g/mavlink",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "TypeScript type generator for MAVLink dialects",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,25 +10,17 @@
|
|
|
10
10
|
"require": "./dist/index.js",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
-
"./
|
|
14
|
-
"types": "./
|
|
15
|
-
"require": "./types/common/index.js",
|
|
16
|
-
"import": "./types/common/index.js"
|
|
13
|
+
"./dialects/common": {
|
|
14
|
+
"types": "./dist/dialects/common/index.d.ts"
|
|
17
15
|
},
|
|
18
|
-
"./
|
|
19
|
-
"types": "./
|
|
20
|
-
"require": "./types/minimal/index.js",
|
|
21
|
-
"import": "./types/minimal/index.js"
|
|
16
|
+
"./dialects/minimal": {
|
|
17
|
+
"types": "./dist/dialects/minimal/index.d.ts"
|
|
22
18
|
},
|
|
23
|
-
"./
|
|
24
|
-
"types": "./
|
|
25
|
-
"require": "./types/ardupilotmega/index.js",
|
|
26
|
-
"import": "./types/ardupilotmega/index.js"
|
|
19
|
+
"./dialects/ardupilotmega": {
|
|
20
|
+
"types": "./dist/dialects/ardupilotmega/index.d.ts"
|
|
27
21
|
},
|
|
28
|
-
"./
|
|
29
|
-
"types": "./
|
|
30
|
-
"require": "./types/standard/index.js",
|
|
31
|
-
"import": "./types/standard/index.js"
|
|
22
|
+
"./dialects/standard": {
|
|
23
|
+
"types": "./dist/dialects/standard/index.d.ts"
|
|
32
24
|
}
|
|
33
25
|
},
|
|
34
26
|
"bin": {
|
|
@@ -36,24 +28,23 @@
|
|
|
36
28
|
},
|
|
37
29
|
"files": [
|
|
38
30
|
"dist/**/*",
|
|
39
|
-
"types/**/*",
|
|
40
31
|
"README.md",
|
|
41
32
|
"LICENSE"
|
|
42
33
|
],
|
|
43
34
|
"scripts": {
|
|
44
|
-
"build": "tsc",
|
|
35
|
+
"build": "tsc && npm run gen:common && npm run gen:ardupilotmega && npm run gen:minimal",
|
|
45
36
|
"start": "node dist/cli.js",
|
|
46
37
|
"dev": "tsx src/cli.ts",
|
|
47
38
|
"test": "jest",
|
|
48
39
|
"lint": "eslint src/**/*.ts",
|
|
49
40
|
"clean": "rm -rf dist",
|
|
50
|
-
"gen:common": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/common.xml -o ./
|
|
51
|
-
"gen:ardupilotmega": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/ardupilotmega.xml -o ./
|
|
52
|
-
"gen:minimal": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/minimal.xml -o ./
|
|
53
|
-
"gen:test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/test.xml -o ./
|
|
54
|
-
"gen:paparazzi": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/paparazzi.xml -o ./
|
|
55
|
-
"gen:python_array_test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/python_array_test.xml -o ./
|
|
56
|
-
"gen:standard": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/standard.xml -o ./
|
|
41
|
+
"gen:common": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/common.xml -o ./dist/dialects/common",
|
|
42
|
+
"gen:ardupilotmega": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/ardupilotmega.xml -o ./dist/dialects/ardupilotmega",
|
|
43
|
+
"gen:minimal": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/minimal.xml -o ./dist/dialects/minimal",
|
|
44
|
+
"gen:test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/test.xml -o ./dist/dialects/test",
|
|
45
|
+
"gen:paparazzi": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/paparazzi.xml -o ./dist/dialects/paparazzi",
|
|
46
|
+
"gen:python_array_test": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/python_array_test.xml -o ./dist/dialects/python_array_test",
|
|
47
|
+
"gen:standard": "tsx src/cli.ts generate -i https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0/standard.xml -o ./dist/dialects/standard",
|
|
57
48
|
"gen:all": "npm run gen:common && npm run gen:ardupilotmega && npm run gen:minimal && npm run gen:test && npm run gen:paparazzi && npm run gen:python_array_test && npm run gen:standard",
|
|
58
49
|
"release:patch": "npm version patch && git push origin master --tags && gh release create v$(node -p \"require('./package.json').version\") --title \"v$(node -p \"require('./package.json').version\")\" --generate-notes",
|
|
59
50
|
"release:minor": "npm version minor && git push origin master --tags && gh release create v$(node -p \"require('./package.json').version\") --title \"v$(node -p \"require('./package.json').version\")\" --generate-notes",
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface BatchProcessorOptions {
|
|
2
|
-
outputDir: string;
|
|
3
|
-
dialectFormat: 'single' | 'separate';
|
|
4
|
-
includeEnums: boolean;
|
|
5
|
-
includeTypeGuards: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare class BatchProcessor {
|
|
8
|
-
private generator;
|
|
9
|
-
private static readonly MAVLINK_DIALECTS_URL;
|
|
10
|
-
private static readonly MAVLINK_RAW_BASE_URL;
|
|
11
|
-
constructor();
|
|
12
|
-
processAllDialects(options: BatchProcessorOptions): Promise<void>;
|
|
13
|
-
processSpecificDialects(dialectNames: string[], options: BatchProcessorOptions): Promise<void>;
|
|
14
|
-
private generateMainIndex;
|
|
15
|
-
generatePackageJson(outputDir: string, version?: string): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=batch-processor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch-processor.d.ts","sourceRoot":"","sources":["../src/batch-processor.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAoF;IAChI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAuF;;IAM7H,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDjE,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsCtF,iBAAiB;IAczB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoDvF"}
|
package/dist/batch-processor.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
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.BatchProcessor = void 0;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
10
|
-
const generator_1 = require("./generator");
|
|
11
|
-
class BatchProcessor {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.generator = new generator_1.MAVLinkGenerator();
|
|
14
|
-
}
|
|
15
|
-
async processAllDialects(options) {
|
|
16
|
-
console.log('Fetching list of available dialects...');
|
|
17
|
-
// Get list of XML files from GitHub API
|
|
18
|
-
const response = await (0, node_fetch_1.default)(BatchProcessor.MAVLINK_DIALECTS_URL);
|
|
19
|
-
if (!response.ok) {
|
|
20
|
-
throw new Error(`Failed to fetch dialects list: ${response.statusText}`);
|
|
21
|
-
}
|
|
22
|
-
const files = await response.json();
|
|
23
|
-
const xmlFiles = files.filter(file => file.name.endsWith('.xml'));
|
|
24
|
-
console.log(`Found ${xmlFiles.length} dialect files to process`);
|
|
25
|
-
// Create main output directory
|
|
26
|
-
await fs_1.promises.mkdir(options.outputDir, { recursive: true });
|
|
27
|
-
// Process each dialect
|
|
28
|
-
const processedDialects = [];
|
|
29
|
-
for (const file of xmlFiles) {
|
|
30
|
-
const dialectName = file.name.replace('.xml', '').toLowerCase().replace('_', '');
|
|
31
|
-
const dialectOutputDir = (0, path_1.join)(options.outputDir, dialectName);
|
|
32
|
-
console.log(`Processing ${file.name}...`);
|
|
33
|
-
try {
|
|
34
|
-
const generationOptions = {
|
|
35
|
-
dialectName,
|
|
36
|
-
outputFormat: options.dialectFormat,
|
|
37
|
-
includeEnums: options.includeEnums,
|
|
38
|
-
includeTypeGuards: options.includeTypeGuards
|
|
39
|
-
};
|
|
40
|
-
await this.generator.generateFromURL(file.download_url, dialectOutputDir, generationOptions);
|
|
41
|
-
processedDialects.push(dialectName);
|
|
42
|
-
// Reset parser state for next dialect
|
|
43
|
-
this.generator.reset();
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
console.error(`Failed to process ${file.name}:`, error);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Generate main index file
|
|
50
|
-
await this.generateMainIndex(options.outputDir, processedDialects);
|
|
51
|
-
console.log(`Successfully processed ${processedDialects.length} dialects`);
|
|
52
|
-
}
|
|
53
|
-
async processSpecificDialects(dialectNames, options) {
|
|
54
|
-
console.log(`Processing ${dialectNames.length} specific dialects...`);
|
|
55
|
-
// Create main output directory
|
|
56
|
-
await fs_1.promises.mkdir(options.outputDir, { recursive: true });
|
|
57
|
-
const processedDialects = [];
|
|
58
|
-
for (const dialectName of dialectNames) {
|
|
59
|
-
const xmlFileName = `${dialectName}.xml`;
|
|
60
|
-
const dialectUrl = `${BatchProcessor.MAVLINK_RAW_BASE_URL}/${xmlFileName}`;
|
|
61
|
-
const dialectOutputDir = (0, path_1.join)(options.outputDir, dialectName.toLowerCase());
|
|
62
|
-
console.log(`Processing ${dialectName}...`);
|
|
63
|
-
try {
|
|
64
|
-
const generationOptions = {
|
|
65
|
-
dialectName: dialectName.toLowerCase(),
|
|
66
|
-
outputFormat: options.dialectFormat,
|
|
67
|
-
includeEnums: options.includeEnums,
|
|
68
|
-
includeTypeGuards: options.includeTypeGuards
|
|
69
|
-
};
|
|
70
|
-
await this.generator.generateFromURL(dialectUrl, dialectOutputDir, generationOptions);
|
|
71
|
-
processedDialects.push(dialectName.toLowerCase());
|
|
72
|
-
// Reset parser state for next dialect
|
|
73
|
-
this.generator.reset();
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
console.error(`Failed to process ${dialectName}:`, error);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Generate main index file
|
|
80
|
-
await this.generateMainIndex(options.outputDir, processedDialects);
|
|
81
|
-
console.log(`Successfully processed ${processedDialects.length} dialects`);
|
|
82
|
-
}
|
|
83
|
-
async generateMainIndex(outputDir, dialectNames) {
|
|
84
|
-
const indexContent = `// Auto-generated TypeScript dialects index
|
|
85
|
-
// Exports all available dialects
|
|
86
|
-
|
|
87
|
-
${dialectNames.map(name => `export * as ${name} from './${name}';`).join('\n')}
|
|
88
|
-
|
|
89
|
-
// Convenience re-exports
|
|
90
|
-
export { MAVLinkMessage, MessageTypeMap, AnyMessage } from './common/types';
|
|
91
|
-
`;
|
|
92
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'index.ts'), indexContent);
|
|
93
|
-
console.log(`Generated main index file with ${dialectNames.length} dialects`);
|
|
94
|
-
}
|
|
95
|
-
async generatePackageJson(outputDir, version = '1.0.0') {
|
|
96
|
-
const packageJson = {
|
|
97
|
-
name: 'mavlink-types',
|
|
98
|
-
version,
|
|
99
|
-
description: 'Auto-generated TypeScript types for MAVLink dialects',
|
|
100
|
-
main: 'index.js',
|
|
101
|
-
types: 'index.d.ts',
|
|
102
|
-
files: ['**/*.ts', '**/*.js', '**/*.d.ts'],
|
|
103
|
-
keywords: ['mavlink', 'typescript', 'types', 'drone', 'autopilot'],
|
|
104
|
-
license: 'MIT',
|
|
105
|
-
repository: {
|
|
106
|
-
type: 'git',
|
|
107
|
-
url: 'https://github.com/mavlink/mavlink'
|
|
108
|
-
},
|
|
109
|
-
scripts: {
|
|
110
|
-
build: 'tsc',
|
|
111
|
-
prepublishOnly: 'npm run build'
|
|
112
|
-
},
|
|
113
|
-
devDependencies: {
|
|
114
|
-
typescript: '^5.0.0'
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'package.json'), JSON.stringify(packageJson, null, 2));
|
|
118
|
-
// Also generate a basic tsconfig.json
|
|
119
|
-
const tsConfig = {
|
|
120
|
-
compilerOptions: {
|
|
121
|
-
target: 'ES2020',
|
|
122
|
-
module: 'commonjs',
|
|
123
|
-
declaration: true,
|
|
124
|
-
outDir: './dist',
|
|
125
|
-
rootDir: './',
|
|
126
|
-
strict: true,
|
|
127
|
-
esModuleInterop: true,
|
|
128
|
-
skipLibCheck: true,
|
|
129
|
-
forceConsistentCasingInFileNames: true
|
|
130
|
-
},
|
|
131
|
-
include: ['**/*.ts'],
|
|
132
|
-
exclude: ['node_modules', 'dist']
|
|
133
|
-
};
|
|
134
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputDir, 'tsconfig.json'), JSON.stringify(tsConfig, null, 2));
|
|
135
|
-
console.log('Generated package.json and tsconfig.json');
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
exports.BatchProcessor = BatchProcessor;
|
|
139
|
-
BatchProcessor.MAVLINK_DIALECTS_URL = 'https://api.github.com/repos/mavlink/mavlink/contents/message_definitions/v1.0';
|
|
140
|
-
BatchProcessor.MAVLINK_RAW_BASE_URL = 'https://raw.githubusercontent.com/mavlink/mavlink/master/message_definitions/v1.0';
|
|
141
|
-
//# sourceMappingURL=batch-processor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch-processor.js","sourceRoot":"","sources":["../src/batch-processor.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { GenerationOptions } from './types';
|
|
2
|
-
export declare class MAVLinkGenerator {
|
|
3
|
-
private xmlParser;
|
|
4
|
-
private typeConverter;
|
|
5
|
-
private templateEngine;
|
|
6
|
-
constructor();
|
|
7
|
-
generateFromURL(url: string, outputPath: string, options: GenerationOptions): Promise<void>;
|
|
8
|
-
generateFromFile(filePath: string, outputPath: string, options: GenerationOptions): Promise<void>;
|
|
9
|
-
private generate;
|
|
10
|
-
reset(): void;
|
|
11
|
-
}
|
|
12
|
-
export declare function generateTypesFromXML(xmlContent: string, options: GenerationOptions): Promise<{
|
|
13
|
-
[filename: string]: string;
|
|
14
|
-
}>;
|
|
15
|
-
//# sourceMappingURL=generator.d.ts.map
|
package/dist/generator.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA4C,MAAM,SAAS,CAAC;AAEtF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;;IAQjC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAKzF,QAAQ;IA+BtB,KAAK,IAAI,IAAI;CAGd;AAGD,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,CAsCzC"}
|
package/dist/generator.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MAVLinkGenerator = void 0;
|
|
4
|
-
exports.generateTypesFromXML = generateTypesFromXML;
|
|
5
|
-
const fs_1 = require("fs");
|
|
6
|
-
const path_1 = require("path");
|
|
7
|
-
const xml2js_1 = require("xml2js");
|
|
8
|
-
const xml_parser_1 = require("./xml-parser");
|
|
9
|
-
const type_converter_1 = require("./type-converter");
|
|
10
|
-
const template_engine_1 = require("./template-engine");
|
|
11
|
-
class MAVLinkGenerator {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.xmlParser = new xml_parser_1.XMLParser();
|
|
14
|
-
this.typeConverter = new type_converter_1.TypeConverter();
|
|
15
|
-
this.templateEngine = new template_engine_1.TemplateEngine();
|
|
16
|
-
}
|
|
17
|
-
async generateFromURL(url, outputPath, options) {
|
|
18
|
-
const definition = await this.xmlParser.parseFromURL(url);
|
|
19
|
-
await this.generate(definition, outputPath, options);
|
|
20
|
-
}
|
|
21
|
-
async generateFromFile(filePath, outputPath, options) {
|
|
22
|
-
const definition = await this.xmlParser.parseFromFile(filePath);
|
|
23
|
-
await this.generate(definition, outputPath, options);
|
|
24
|
-
}
|
|
25
|
-
async generate(definition, outputPath, options) {
|
|
26
|
-
// Convert to TypeScript types
|
|
27
|
-
const tsDialect = this.typeConverter.convert(definition, options.dialectName);
|
|
28
|
-
// Ensure output directory exists
|
|
29
|
-
await fs_1.promises.mkdir(outputPath, { recursive: true });
|
|
30
|
-
if (options.outputFormat === 'single') {
|
|
31
|
-
// Generate single file
|
|
32
|
-
const content = this.templateEngine.generateSingle(tsDialect);
|
|
33
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), content);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
// Generate separate files
|
|
37
|
-
const typesContent = this.templateEngine.generateTypes(tsDialect);
|
|
38
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'types.ts'), typesContent);
|
|
39
|
-
if (options.includeEnums) {
|
|
40
|
-
const enumsContent = this.templateEngine.generateEnums(tsDialect);
|
|
41
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'enums.ts'), enumsContent);
|
|
42
|
-
}
|
|
43
|
-
const messagesContent = this.templateEngine.generateMessages(tsDialect);
|
|
44
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'messages.ts'), messagesContent);
|
|
45
|
-
const indexContent = this.templateEngine.generateIndex(tsDialect, options.includeEnums);
|
|
46
|
-
await fs_1.promises.writeFile((0, path_1.join)(outputPath, 'index.ts'), indexContent);
|
|
47
|
-
}
|
|
48
|
-
console.log(`Generated TypeScript types for ${options.dialectName} in ${outputPath}`);
|
|
49
|
-
}
|
|
50
|
-
reset() {
|
|
51
|
-
this.xmlParser.reset();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
exports.MAVLinkGenerator = MAVLinkGenerator;
|
|
55
|
-
// Standalone function for programmatic usage
|
|
56
|
-
async function generateTypesFromXML(xmlContent, options) {
|
|
57
|
-
const converter = new type_converter_1.TypeConverter();
|
|
58
|
-
const templateEngine = new template_engine_1.TemplateEngine();
|
|
59
|
-
// Parse XML directly from string
|
|
60
|
-
const definition = await new Promise((resolve, reject) => {
|
|
61
|
-
(0, xml2js_1.parseString)(xmlContent, { explicitArray: false }, (err, result) => {
|
|
62
|
-
if (err)
|
|
63
|
-
reject(err);
|
|
64
|
-
else
|
|
65
|
-
resolve(result.mavlink);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
// Convert parsed XML to definition format for compatibility
|
|
69
|
-
const definitionForConverter = {
|
|
70
|
-
version: definition.version,
|
|
71
|
-
dialect: definition.dialect ? parseInt(definition.dialect) : undefined,
|
|
72
|
-
includes: [],
|
|
73
|
-
enums: [],
|
|
74
|
-
messages: []
|
|
75
|
-
};
|
|
76
|
-
// Convert to TypeScript
|
|
77
|
-
const tsDialect = converter.convert(definitionForConverter, options.dialectName);
|
|
78
|
-
const files = {};
|
|
79
|
-
if (options.outputFormat === 'single') {
|
|
80
|
-
files['index.ts'] = templateEngine.generateSingle(tsDialect);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
files['types.ts'] = templateEngine.generateTypes(tsDialect);
|
|
84
|
-
if (options.includeEnums) {
|
|
85
|
-
files['enums.ts'] = templateEngine.generateEnums(tsDialect);
|
|
86
|
-
}
|
|
87
|
-
files['messages.ts'] = templateEngine.generateMessages(tsDialect);
|
|
88
|
-
files['index.ts'] = templateEngine.generateIndex(tsDialect, options.includeEnums);
|
|
89
|
-
}
|
|
90
|
-
return files;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=generator.js.map
|
package/dist/generator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { TypeScriptDialect } from './types';
|
|
2
|
-
export declare class TemplateEngine {
|
|
3
|
-
private templates;
|
|
4
|
-
constructor();
|
|
5
|
-
private initializeTemplates;
|
|
6
|
-
private registerHelpers;
|
|
7
|
-
generateTypes(dialect: TypeScriptDialect): string;
|
|
8
|
-
generateEnums(dialect: TypeScriptDialect): string;
|
|
9
|
-
generateMessages(dialect: TypeScriptDialect): string;
|
|
10
|
-
generateIndex(dialect: TypeScriptDialect, includeEnums?: boolean): string;
|
|
11
|
-
generateSingle(dialect: TypeScriptDialect): string;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=template-engine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsD;;IAOvE,OAAO,CAAC,mBAAmB;IAmK3B,OAAO,CAAC,eAAe;IAcvB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQjD,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAQpD,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,GAAE,OAAe,GAAG,MAAM;IAQhF,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CAOnD"}
|
package/dist/template-engine.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../src/template-engine.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAGpC,MAAa,cAAc;IAGzB;QAFQ,cAAS,GAA4C,IAAI,GAAG,EAAE,CAAC;QAGrE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAEO,mBAAmB;QACzB,sBAAsB;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAU,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBlD,CAAC,CAAC,CAAC;QAEA,iBAAiB;QACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAU,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;CAgBlD,CAAC,CAAC,CAAC;QAEA,oBAAoB;QACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAU,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CrD,CAAC,CAAC,CAAC;QAEA,iBAAiB;QACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAU,CAAC,OAAO,CAAC;;;;;;CAMlD,CAAC,CAAC,CAAC;QAEA,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAU,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DnD,CAAC,CAAC,CAAC;IACF,CAAC;IAEO,eAAe;QACrB,oBAAU,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,KAAe,EAAE,SAAiB,EAAE,EAAE;YACvE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;YACzD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;YACzD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAA0B;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,OAA0B;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,OAA0B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,OAA0B,EAAE,eAAwB,KAAK;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,QAAQ,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,cAAc,CAAC,OAA0B;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAhOD,wCAgOC"}
|
package/dist/type-converter.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|