@openhps/protobuf 1.0.1 → 1.0.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/cjs/ProtobufSerializer.js +0 -1
- package/dist/cjs/ProtobufSerializer.js.map +1 -1
- package/dist/cjs/generator/ObjectGenerator.js +2 -1
- package/dist/cjs/generator/ObjectGenerator.js.map +1 -1
- package/dist/cjs/generator/ProjectGenerator.js +38 -7
- package/dist/cjs/generator/ProjectGenerator.js.map +1 -1
- package/dist/cjs/generator/constants.js +1 -1
- package/dist/esm/ProtobufSerializer.js +0 -1
- package/dist/esm/ProtobufSerializer.js.map +1 -1
- package/dist/esm/generator/ObjectGenerator.js +2 -1
- package/dist/esm/generator/ObjectGenerator.js.map +1 -1
- package/dist/esm/generator/ProjectGenerator.js +38 -7
- package/dist/esm/generator/ProjectGenerator.js.map +1 -1
- package/dist/esm/generator/constants.js +1 -1
- package/dist/esm5/ProtobufSerializer.js +0 -1
- package/dist/esm5/ProtobufSerializer.js.map +1 -1
- package/dist/esm5/generator/ObjectGenerator.js +2 -1
- package/dist/esm5/generator/ObjectGenerator.js.map +1 -1
- package/dist/esm5/generator/ProjectGenerator.js +38 -7
- package/dist/esm5/generator/ProjectGenerator.js.map +1 -1
- package/dist/esm5/generator/constants.js +1 -1
- package/dist/types/ProtobufSerializer.d.ts.map +1 -1
- package/dist/types/generator/ObjectGenerator.d.ts.map +1 -1
- package/dist/types/generator/ProjectGenerator.d.ts +1 -0
- package/dist/types/generator/ProjectGenerator.d.ts.map +1 -1
- package/dist/types/generator/constants.d.ts +1 -1
- package/dist/web/openhps-protobuf.es.js +41 -10
- package/dist/web/openhps-protobuf.es.js.map +1 -1
- package/dist/web/openhps-protobuf.es.min.js +1 -1
- package/dist/web/openhps-protobuf.es.min.js.map +1 -1
- package/dist/web/openhps-protobuf.js +41 -10
- package/dist/web/openhps-protobuf.js.map +1 -1
- package/dist/web/openhps-protobuf.min.js +1 -1
- package/dist/web/openhps-protobuf.min.js.map +1 -1
- package/package.json +1 -1
- package/src/ProtobufSerializer.ts +0 -1
- package/src/generator/ObjectGenerator.ts +2 -1
- package/src/generator/ProjectGenerator.ts +40 -7
- package/src/generator/constants.ts +1 -1
package/package.json
CHANGED
|
@@ -35,6 +35,7 @@ export class ObjectGenerator extends ProtobufGenerator<Object> { // eslint-disab
|
|
|
35
35
|
): TypeMapping {
|
|
36
36
|
switch (type.ctor) {
|
|
37
37
|
case String:
|
|
38
|
+
case Date:
|
|
38
39
|
return {
|
|
39
40
|
syntax: 'string',
|
|
40
41
|
};
|
|
@@ -348,7 +349,7 @@ export class ObjectGenerator extends ProtobufGenerator<Object> { // eslint-disab
|
|
|
348
349
|
return [
|
|
349
350
|
packageStr,
|
|
350
351
|
HEADER +
|
|
351
|
-
`package ${packageStr.replace(
|
|
352
|
+
`package ${packageStr.replace(/[@/-]/g, '')};\n` +
|
|
352
353
|
`syntax = "proto3";\n` +
|
|
353
354
|
imports
|
|
354
355
|
.filter((value, idx) => {
|
|
@@ -13,6 +13,36 @@ export class ProjectGenerator extends DataSerializer {
|
|
|
13
13
|
private static _modules: Set<string> = new Set();
|
|
14
14
|
private static _packages: Set<string> = new Set();
|
|
15
15
|
|
|
16
|
+
static findAllModules(dir: string): NodeModule[] {
|
|
17
|
+
const packageFile = path.resolve(path.join(dir, 'package.json'));
|
|
18
|
+
if (packageFile === path.resolve(require.main?.path)) {
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (fs.existsSync(packageFile)) {
|
|
23
|
+
const packageJson = JSON.parse(fs.readFileSync(packageFile, { encoding: 'utf-8' }));
|
|
24
|
+
const dependencies = packageJson.dependencies;
|
|
25
|
+
const devDependencies = packageJson.devDependencies;
|
|
26
|
+
|
|
27
|
+
// Combine dependencies and devDependencies
|
|
28
|
+
const allDependencies = { ...dependencies, ...devDependencies };
|
|
29
|
+
|
|
30
|
+
// Get the names of all modules
|
|
31
|
+
const allModuleNames = Object.keys(allDependencies);
|
|
32
|
+
const allModules = allModuleNames
|
|
33
|
+
.map((name) => {
|
|
34
|
+
try {
|
|
35
|
+
require(name);
|
|
36
|
+
return require.cache[require.resolve(name)];
|
|
37
|
+
} catch (error) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
.filter(Boolean) as NodeModule[];
|
|
42
|
+
return allModules;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
16
46
|
static findModule(dir: string): string {
|
|
17
47
|
const packageFile = path.join(dir, 'package.json');
|
|
18
48
|
if (fs.existsSync(packageFile)) {
|
|
@@ -32,13 +62,15 @@ export class ProjectGenerator extends DataSerializer {
|
|
|
32
62
|
return;
|
|
33
63
|
}
|
|
34
64
|
this._modules.add(module.id);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
65
|
+
if (module.exports) {
|
|
66
|
+
Object.keys(module.exports).forEach((key) => {
|
|
67
|
+
const childModule = module.exports[key];
|
|
68
|
+
if (objects.includes(childModule)) {
|
|
69
|
+
childModule.prototype._module = this.findModule(path.dirname(require.resolve(module.id)));
|
|
70
|
+
this._packages.add(childModule.prototype._module);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
42
74
|
module.children.forEach((module) => {
|
|
43
75
|
if (!this._modules.has(module.id)) {
|
|
44
76
|
this.loadModules(objects, module);
|
|
@@ -55,6 +87,7 @@ export class ProjectGenerator extends DataSerializer {
|
|
|
55
87
|
|
|
56
88
|
static loadClasses(): Array<ObjectMetadata> {
|
|
57
89
|
const declarations: Array<ObjectMetadata> = [];
|
|
90
|
+
this.findAllModules('./');
|
|
58
91
|
this.knownTypes.forEach((value) => {
|
|
59
92
|
const metadata = DataSerializerUtils.getOwnMetadata(value);
|
|
60
93
|
if (metadata) {
|
|
@@ -2,7 +2,7 @@ export const HEADER = `/**
|
|
|
2
2
|
* OpenHPS Protocol Buffer
|
|
3
3
|
* This file was automatically generated with @openhps/protobuf
|
|
4
4
|
*
|
|
5
|
-
* (c) 2019-
|
|
5
|
+
* (c) 2019-2024 Maxim Van de Wynckel & Vrije Universiteit Brussel
|
|
6
6
|
**/\n
|
|
7
7
|
`;
|
|
8
8
|
|