@openhps/protobuf 1.0.0 → 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.
Files changed (39) hide show
  1. package/dist/cjs/ProtobufSerializer.js +0 -1
  2. package/dist/cjs/ProtobufSerializer.js.map +1 -1
  3. package/dist/cjs/generator/ObjectGenerator.js +2 -1
  4. package/dist/cjs/generator/ObjectGenerator.js.map +1 -1
  5. package/dist/cjs/generator/ProjectGenerator.js +38 -7
  6. package/dist/cjs/generator/ProjectGenerator.js.map +1 -1
  7. package/dist/cjs/generator/constants.js +1 -1
  8. package/dist/esm/ProtobufSerializer.js +0 -1
  9. package/dist/esm/ProtobufSerializer.js.map +1 -1
  10. package/dist/esm/generator/ObjectGenerator.js +2 -1
  11. package/dist/esm/generator/ObjectGenerator.js.map +1 -1
  12. package/dist/esm/generator/ProjectGenerator.js +38 -7
  13. package/dist/esm/generator/ProjectGenerator.js.map +1 -1
  14. package/dist/esm/generator/constants.js +1 -1
  15. package/dist/esm5/ProtobufSerializer.js +0 -1
  16. package/dist/esm5/ProtobufSerializer.js.map +1 -1
  17. package/dist/esm5/generator/ObjectGenerator.js +2 -1
  18. package/dist/esm5/generator/ObjectGenerator.js.map +1 -1
  19. package/dist/esm5/generator/ProjectGenerator.js +38 -7
  20. package/dist/esm5/generator/ProjectGenerator.js.map +1 -1
  21. package/dist/esm5/generator/constants.js +1 -1
  22. package/dist/types/ProtobufSerializer.d.ts.map +1 -1
  23. package/dist/types/generator/ObjectGenerator.d.ts.map +1 -1
  24. package/dist/types/generator/ProjectGenerator.d.ts +1 -0
  25. package/dist/types/generator/ProjectGenerator.d.ts.map +1 -1
  26. package/dist/types/generator/constants.d.ts +1 -1
  27. package/dist/web/openhps-protobuf.es.js +41 -10
  28. package/dist/web/openhps-protobuf.es.js.map +1 -1
  29. package/dist/web/openhps-protobuf.es.min.js +1 -1
  30. package/dist/web/openhps-protobuf.es.min.js.map +1 -1
  31. package/dist/web/openhps-protobuf.js +41 -10
  32. package/dist/web/openhps-protobuf.js.map +1 -1
  33. package/dist/web/openhps-protobuf.min.js +1 -1
  34. package/dist/web/openhps-protobuf.min.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/ProtobufSerializer.ts +0 -1
  37. package/src/generator/ObjectGenerator.ts +2 -1
  38. package/src/generator/ProjectGenerator.ts +40 -7
  39. package/src/generator/constants.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openhps/protobuf",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "OpenHPS Protocol Buffer Generator",
5
5
  "main": "dist/cjs/bin/generator.js",
6
6
  "bin": {
@@ -104,7 +104,6 @@ export class ProtobufSerializer extends DataSerializer {
104
104
  return loadPromise;
105
105
  })
106
106
  .then(() => {
107
- console.log(ProtobufSerializer.root.toJSON());
108
107
  resolve();
109
108
  })
110
109
  .catch(reject);
@@ -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('@', '').replace('/', '.')};\n` +
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
- Object.keys(module.exports).forEach((key) => {
36
- const childModule = module.exports[key];
37
- if (objects.includes(childModule)) {
38
- childModule.prototype._module = this.findModule(path.dirname(require.resolve(module.id)));
39
- this._packages.add(childModule.prototype._module);
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-2023 Maxim Van de Wynckel & Vrije Universiteit Brussel
5
+ * (c) 2019-2024 Maxim Van de Wynckel & Vrije Universiteit Brussel
6
6
  **/\n
7
7
  `;
8
8