@ingenyus/swarm-wasp 0.2.1 → 0.2.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 (30) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/generators/action/action-generator.js +30 -34
  3. package/dist/generators/action/index.js +30 -34
  4. package/dist/generators/api/api-generator.js +30 -34
  5. package/dist/generators/api/index.js +30 -34
  6. package/dist/generators/api-namespace/api-namespace-generator.js +30 -34
  7. package/dist/generators/api-namespace/index.js +30 -34
  8. package/dist/generators/base/component-generator.base.d.ts +4 -7
  9. package/dist/generators/base/component-generator.base.d.ts.map +1 -1
  10. package/dist/generators/base/component-generator.base.js +30 -34
  11. package/dist/generators/base/index.js +30 -34
  12. package/dist/generators/base/operation-generator.base.js +30 -34
  13. package/dist/generators/base/wasp-generator.base.d.ts +3 -5
  14. package/dist/generators/base/wasp-generator.base.d.ts.map +1 -1
  15. package/dist/generators/base/wasp-generator.base.js +10 -10
  16. package/dist/generators/crud/crud-generator.js +30 -34
  17. package/dist/generators/crud/index.js +30 -34
  18. package/dist/generators/feature/feature-generator.d.ts +2 -4
  19. package/dist/generators/feature/feature-generator.d.ts.map +1 -1
  20. package/dist/generators/feature/feature-generator.js +16 -22
  21. package/dist/generators/feature/index.js +16 -22
  22. package/dist/generators/index.js +30 -34
  23. package/dist/generators/job/index.js +30 -34
  24. package/dist/generators/job/job-generator.js +30 -34
  25. package/dist/generators/query/index.js +30 -34
  26. package/dist/generators/query/query-generator.js +30 -34
  27. package/dist/generators/route/index.js +30 -34
  28. package/dist/generators/route/route-generator.js +30 -34
  29. package/dist/index.js +30 -34
  30. package/package.json +2 -2
@@ -201,8 +201,8 @@ var TemplateUtility = class {
201
201
 
202
202
  // src/generators/base/component-generator.base.ts
203
203
  import {
204
+ GeneratorRuntime,
204
205
  hasHelperMethodCall,
205
- logger as singletonLogger4,
206
206
  toCamelCase,
207
207
  toKebabCase as toKebabCase2,
208
208
  validateFeaturePath as validateFeaturePath3
@@ -210,17 +210,12 @@ import {
210
210
  import path6 from "path";
211
211
 
212
212
  // src/generators/feature/feature-generator.ts
213
- import {
214
- handleFatalError as handleFatalError2,
215
- logger as singletonLogger3,
216
- validateFeaturePath as validateFeaturePath2
217
- } from "@ingenyus/swarm";
213
+ import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
218
214
  import path5 from "path";
219
215
 
220
216
  // src/generators/base/wasp-generator.base.ts
221
217
  import {
222
218
  GeneratorBase,
223
- logger as singletonLogger2,
224
219
  SwarmConfigManager,
225
220
  TemplateResolver
226
221
  } from "@ingenyus/swarm";
@@ -663,14 +658,6 @@ var WaspConfigGenerator = class {
663
658
 
664
659
  // src/generators/base/wasp-generator.base.ts
665
660
  var WaspGeneratorBase = class extends GeneratorBase {
666
- constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
667
- super(fileSystem, logger);
668
- this.fileSystem = fileSystem;
669
- this.logger = logger;
670
- this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
671
- this.templateUtility = new TemplateUtility(fileSystem);
672
- this.templateResolver = new TemplateResolver(fileSystem);
673
- }
674
661
  configGenerator;
675
662
  templateUtility;
676
663
  templateResolver;
@@ -678,6 +665,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
678
665
  configLoaded = false;
679
666
  // Plugin name from swarm.config.json
680
667
  pluginName = PLUGIN_NAME;
668
+ constructor() {
669
+ super();
670
+ this.configGenerator = new WaspConfigGenerator(
671
+ this.logger,
672
+ this.fileSystem
673
+ );
674
+ this.templateUtility = new TemplateUtility(this.fileSystem);
675
+ this.templateResolver = new TemplateResolver(this.fileSystem);
676
+ }
681
677
  async loadSwarmConfig() {
682
678
  if (this.configLoaded) return;
683
679
  const configManager = new SwarmConfigManager();
@@ -728,7 +724,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
728
724
  }
729
725
  /**
730
726
  * Generic existence check with force flag handling
731
- * Consolidates the pattern used in both file and config checks
727
+ * Consolidates the pattern used in both file and config existence checks
732
728
  */
733
729
  checkExistence(exists, itemDescription, force, errorMessage) {
734
730
  if (exists && !force) {
@@ -768,16 +764,14 @@ var schema = z2.object({
768
764
 
769
765
  // src/generators/feature/feature-generator.ts
770
766
  var FeatureGenerator = class extends WaspGeneratorBase {
771
- constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
772
- super(fileSystem, logger);
773
- this.logger = logger;
774
- this.fileSystem = fileSystem;
775
- this.name = "feature";
776
- this.description = "Generates a feature directory containing a Wasp configuration file";
777
- }
778
767
  name;
779
768
  description;
780
769
  schema = schema;
770
+ constructor() {
771
+ super();
772
+ this.name = "feature";
773
+ this.description = "Generates a feature directory containing a Wasp configuration file";
774
+ }
781
775
  getDefaultTemplatePath(templateName) {
782
776
  return this.templateUtility.resolveTemplatePath(
783
777
  templateName,
@@ -813,13 +807,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
813
807
 
814
808
  // src/generators/base/component-generator.base.ts
815
809
  var ComponentGeneratorBase = class extends WaspGeneratorBase {
816
- constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
817
- super(fileSystem, logger);
818
- this.logger = logger;
819
- this.fileSystem = fileSystem;
820
- this.featureDirectoryGenerator = featureDirectoryGenerator;
821
- this.featureDirectoryGenerator = featureDirectoryGenerator;
822
- }
823
810
  getDefaultTemplatePath(templateName) {
824
811
  return this.templateUtility.resolveTemplatePath(
825
812
  templateName,
@@ -827,6 +814,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
827
814
  import.meta.url
828
815
  );
829
816
  }
817
+ featureDirectoryGenerator;
818
+ constructor() {
819
+ super();
820
+ const runtime = GeneratorRuntime.current();
821
+ if (runtime.featureGeneratorFactory) {
822
+ const factoryResult = runtime.featureGeneratorFactory(runtime);
823
+ this.featureDirectoryGenerator = factoryResult;
824
+ } else {
825
+ this.featureDirectoryGenerator = new FeatureGenerator();
826
+ }
827
+ }
830
828
  get name() {
831
829
  return toKebabCase2(this.componentType);
832
830
  }
@@ -903,15 +901,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
903
901
  }
904
902
  /**
905
903
  * Gets the appropriate directory for a feature based on its path.
906
- * @param fileSystem - The filesystem abstraction
907
904
  * @param featurePath - The full feature path
908
905
  * @param type - The type of file being generated
909
906
  * @returns The target directory and import path
910
907
  */
911
- getFeatureTargetDir(fileSystem, featurePath, type) {
908
+ getFeatureTargetDir(featurePath, type) {
912
909
  validateFeaturePath3(featurePath);
913
910
  const normalisedPath = normaliseFeaturePath(featurePath);
914
- const featureDir = getFeatureDir(fileSystem, normalisedPath);
911
+ const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
915
912
  const typeKey = type.toLowerCase();
916
913
  const typeDirectory = TYPE_DIRECTORIES[typeKey];
917
914
  const targetDirectory = path6.join(featureDir, typeDirectory);
@@ -923,7 +920,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
923
920
  */
924
921
  ensureTargetDirectory(featurePath, type) {
925
922
  const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
926
- this.fileSystem,
927
923
  featurePath,
928
924
  type
929
925
  );
@@ -201,8 +201,8 @@ var TemplateUtility = class {
201
201
 
202
202
  // src/generators/base/component-generator.base.ts
203
203
  import {
204
+ GeneratorRuntime,
204
205
  hasHelperMethodCall,
205
- logger as singletonLogger4,
206
206
  toCamelCase,
207
207
  toKebabCase as toKebabCase2,
208
208
  validateFeaturePath as validateFeaturePath3
@@ -210,17 +210,12 @@ import {
210
210
  import path6 from "path";
211
211
 
212
212
  // src/generators/feature/feature-generator.ts
213
- import {
214
- handleFatalError as handleFatalError2,
215
- logger as singletonLogger3,
216
- validateFeaturePath as validateFeaturePath2
217
- } from "@ingenyus/swarm";
213
+ import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
218
214
  import path5 from "path";
219
215
 
220
216
  // src/generators/base/wasp-generator.base.ts
221
217
  import {
222
218
  GeneratorBase,
223
- logger as singletonLogger2,
224
219
  SwarmConfigManager,
225
220
  TemplateResolver
226
221
  } from "@ingenyus/swarm";
@@ -663,14 +658,6 @@ var WaspConfigGenerator = class {
663
658
 
664
659
  // src/generators/base/wasp-generator.base.ts
665
660
  var WaspGeneratorBase = class extends GeneratorBase {
666
- constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
667
- super(fileSystem, logger);
668
- this.fileSystem = fileSystem;
669
- this.logger = logger;
670
- this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
671
- this.templateUtility = new TemplateUtility(fileSystem);
672
- this.templateResolver = new TemplateResolver(fileSystem);
673
- }
674
661
  configGenerator;
675
662
  templateUtility;
676
663
  templateResolver;
@@ -678,6 +665,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
678
665
  configLoaded = false;
679
666
  // Plugin name from swarm.config.json
680
667
  pluginName = PLUGIN_NAME;
668
+ constructor() {
669
+ super();
670
+ this.configGenerator = new WaspConfigGenerator(
671
+ this.logger,
672
+ this.fileSystem
673
+ );
674
+ this.templateUtility = new TemplateUtility(this.fileSystem);
675
+ this.templateResolver = new TemplateResolver(this.fileSystem);
676
+ }
681
677
  async loadSwarmConfig() {
682
678
  if (this.configLoaded) return;
683
679
  const configManager = new SwarmConfigManager();
@@ -728,7 +724,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
728
724
  }
729
725
  /**
730
726
  * Generic existence check with force flag handling
731
- * Consolidates the pattern used in both file and config checks
727
+ * Consolidates the pattern used in both file and config existence checks
732
728
  */
733
729
  checkExistence(exists, itemDescription, force, errorMessage) {
734
730
  if (exists && !force) {
@@ -768,16 +764,14 @@ var schema = z2.object({
768
764
 
769
765
  // src/generators/feature/feature-generator.ts
770
766
  var FeatureGenerator = class extends WaspGeneratorBase {
771
- constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
772
- super(fileSystem, logger);
773
- this.logger = logger;
774
- this.fileSystem = fileSystem;
775
- this.name = "feature";
776
- this.description = "Generates a feature directory containing a Wasp configuration file";
777
- }
778
767
  name;
779
768
  description;
780
769
  schema = schema;
770
+ constructor() {
771
+ super();
772
+ this.name = "feature";
773
+ this.description = "Generates a feature directory containing a Wasp configuration file";
774
+ }
781
775
  getDefaultTemplatePath(templateName) {
782
776
  return this.templateUtility.resolveTemplatePath(
783
777
  templateName,
@@ -813,13 +807,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
813
807
 
814
808
  // src/generators/base/component-generator.base.ts
815
809
  var ComponentGeneratorBase = class extends WaspGeneratorBase {
816
- constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
817
- super(fileSystem, logger);
818
- this.logger = logger;
819
- this.fileSystem = fileSystem;
820
- this.featureDirectoryGenerator = featureDirectoryGenerator;
821
- this.featureDirectoryGenerator = featureDirectoryGenerator;
822
- }
823
810
  getDefaultTemplatePath(templateName) {
824
811
  return this.templateUtility.resolveTemplatePath(
825
812
  templateName,
@@ -827,6 +814,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
827
814
  import.meta.url
828
815
  );
829
816
  }
817
+ featureDirectoryGenerator;
818
+ constructor() {
819
+ super();
820
+ const runtime = GeneratorRuntime.current();
821
+ if (runtime.featureGeneratorFactory) {
822
+ const factoryResult = runtime.featureGeneratorFactory(runtime);
823
+ this.featureDirectoryGenerator = factoryResult;
824
+ } else {
825
+ this.featureDirectoryGenerator = new FeatureGenerator();
826
+ }
827
+ }
830
828
  get name() {
831
829
  return toKebabCase2(this.componentType);
832
830
  }
@@ -903,15 +901,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
903
901
  }
904
902
  /**
905
903
  * Gets the appropriate directory for a feature based on its path.
906
- * @param fileSystem - The filesystem abstraction
907
904
  * @param featurePath - The full feature path
908
905
  * @param type - The type of file being generated
909
906
  * @returns The target directory and import path
910
907
  */
911
- getFeatureTargetDir(fileSystem, featurePath, type) {
908
+ getFeatureTargetDir(featurePath, type) {
912
909
  validateFeaturePath3(featurePath);
913
910
  const normalisedPath = normaliseFeaturePath(featurePath);
914
- const featureDir = getFeatureDir(fileSystem, normalisedPath);
911
+ const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
915
912
  const typeKey = type.toLowerCase();
916
913
  const typeDirectory = TYPE_DIRECTORIES[typeKey];
917
914
  const targetDirectory = path6.join(featureDir, typeDirectory);
@@ -923,7 +920,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
923
920
  */
924
921
  ensureTargetDirectory(featurePath, type) {
925
922
  const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
926
- this.fileSystem,
927
923
  featurePath,
928
924
  type
929
925
  );
package/dist/index.js CHANGED
@@ -59,8 +59,8 @@ var CONFIG_TYPES = {
59
59
 
60
60
  // src/generators/base/component-generator.base.ts
61
61
  import {
62
+ GeneratorRuntime,
62
63
  hasHelperMethodCall,
63
- logger as singletonLogger4,
64
64
  toCamelCase,
65
65
  toKebabCase as toKebabCase2,
66
66
  validateFeaturePath as validateFeaturePath3
@@ -374,17 +374,12 @@ var TemplateUtility = class {
374
374
  };
375
375
 
376
376
  // src/generators/feature/feature-generator.ts
377
- import {
378
- handleFatalError as handleFatalError2,
379
- logger as singletonLogger3,
380
- validateFeaturePath as validateFeaturePath2
381
- } from "@ingenyus/swarm";
377
+ import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
382
378
  import path5 from "path";
383
379
 
384
380
  // src/generators/base/wasp-generator.base.ts
385
381
  import {
386
382
  GeneratorBase,
387
- logger as singletonLogger2,
388
383
  SwarmConfigManager,
389
384
  TemplateResolver
390
385
  } from "@ingenyus/swarm";
@@ -827,14 +822,6 @@ var WaspConfigGenerator = class {
827
822
 
828
823
  // src/generators/base/wasp-generator.base.ts
829
824
  var WaspGeneratorBase = class extends GeneratorBase {
830
- constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
831
- super(fileSystem, logger);
832
- this.fileSystem = fileSystem;
833
- this.logger = logger;
834
- this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
835
- this.templateUtility = new TemplateUtility(fileSystem);
836
- this.templateResolver = new TemplateResolver(fileSystem);
837
- }
838
825
  configGenerator;
839
826
  templateUtility;
840
827
  templateResolver;
@@ -842,6 +829,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
842
829
  configLoaded = false;
843
830
  // Plugin name from swarm.config.json
844
831
  pluginName = PLUGIN_NAME;
832
+ constructor() {
833
+ super();
834
+ this.configGenerator = new WaspConfigGenerator(
835
+ this.logger,
836
+ this.fileSystem
837
+ );
838
+ this.templateUtility = new TemplateUtility(this.fileSystem);
839
+ this.templateResolver = new TemplateResolver(this.fileSystem);
840
+ }
845
841
  async loadSwarmConfig() {
846
842
  if (this.configLoaded) return;
847
843
  const configManager = new SwarmConfigManager();
@@ -892,7 +888,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
892
888
  }
893
889
  /**
894
890
  * Generic existence check with force flag handling
895
- * Consolidates the pattern used in both file and config checks
891
+ * Consolidates the pattern used in both file and config existence checks
896
892
  */
897
893
  checkExistence(exists, itemDescription, force, errorMessage) {
898
894
  if (exists && !force) {
@@ -932,16 +928,14 @@ var schema = z2.object({
932
928
 
933
929
  // src/generators/feature/feature-generator.ts
934
930
  var FeatureGenerator = class extends WaspGeneratorBase {
935
- constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
936
- super(fileSystem, logger);
937
- this.logger = logger;
938
- this.fileSystem = fileSystem;
939
- this.name = "feature";
940
- this.description = "Generates a feature directory containing a Wasp configuration file";
941
- }
942
931
  name;
943
932
  description;
944
933
  schema = schema;
934
+ constructor() {
935
+ super();
936
+ this.name = "feature";
937
+ this.description = "Generates a feature directory containing a Wasp configuration file";
938
+ }
945
939
  getDefaultTemplatePath(templateName) {
946
940
  return this.templateUtility.resolveTemplatePath(
947
941
  templateName,
@@ -977,13 +971,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
977
971
 
978
972
  // src/generators/base/component-generator.base.ts
979
973
  var ComponentGeneratorBase = class extends WaspGeneratorBase {
980
- constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
981
- super(fileSystem, logger);
982
- this.logger = logger;
983
- this.fileSystem = fileSystem;
984
- this.featureDirectoryGenerator = featureDirectoryGenerator;
985
- this.featureDirectoryGenerator = featureDirectoryGenerator;
986
- }
987
974
  getDefaultTemplatePath(templateName) {
988
975
  return this.templateUtility.resolveTemplatePath(
989
976
  templateName,
@@ -991,6 +978,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
991
978
  import.meta.url
992
979
  );
993
980
  }
981
+ featureDirectoryGenerator;
982
+ constructor() {
983
+ super();
984
+ const runtime = GeneratorRuntime.current();
985
+ if (runtime.featureGeneratorFactory) {
986
+ const factoryResult = runtime.featureGeneratorFactory(runtime);
987
+ this.featureDirectoryGenerator = factoryResult;
988
+ } else {
989
+ this.featureDirectoryGenerator = new FeatureGenerator();
990
+ }
991
+ }
994
992
  get name() {
995
993
  return toKebabCase2(this.componentType);
996
994
  }
@@ -1067,15 +1065,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
1067
1065
  }
1068
1066
  /**
1069
1067
  * Gets the appropriate directory for a feature based on its path.
1070
- * @param fileSystem - The filesystem abstraction
1071
1068
  * @param featurePath - The full feature path
1072
1069
  * @param type - The type of file being generated
1073
1070
  * @returns The target directory and import path
1074
1071
  */
1075
- getFeatureTargetDir(fileSystem, featurePath, type) {
1072
+ getFeatureTargetDir(featurePath, type) {
1076
1073
  validateFeaturePath3(featurePath);
1077
1074
  const normalisedPath = normaliseFeaturePath(featurePath);
1078
- const featureDir = getFeatureDir(fileSystem, normalisedPath);
1075
+ const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
1079
1076
  const typeKey = type.toLowerCase();
1080
1077
  const typeDirectory = TYPE_DIRECTORIES[typeKey];
1081
1078
  const targetDirectory = path6.join(featureDir, typeDirectory);
@@ -1087,7 +1084,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
1087
1084
  */
1088
1085
  ensureTargetDirectory(featurePath, type) {
1089
1086
  const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
1090
- this.fileSystem,
1091
1087
  featurePath,
1092
1088
  type
1093
1089
  );
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ingenyus/swarm-wasp",
3
3
  "type": "module",
4
- "version": "0.2.1",
4
+ "version": "0.2.2",
5
5
  "description": "Wasp-specific plugins for Swarm - Feature generators, commands, MCP tools, and enhanced Wasp configuration for Wasp development",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -43,7 +43,7 @@
43
43
  "@mrleebo/prisma-ast": "^0.13.0",
44
44
  "eta": "^4.0.1",
45
45
  "zod": "^4.1.11",
46
- "@ingenyus/swarm": "0.2.1"
46
+ "@ingenyus/swarm": "0.2.2"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "wasp-config": "*"