@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/generators/action/action-generator.js +30 -34
- package/dist/generators/action/index.js +30 -34
- package/dist/generators/api/api-generator.js +30 -34
- package/dist/generators/api/index.js +30 -34
- package/dist/generators/api-namespace/api-namespace-generator.js +30 -34
- package/dist/generators/api-namespace/index.js +30 -34
- package/dist/generators/base/component-generator.base.d.ts +4 -7
- package/dist/generators/base/component-generator.base.d.ts.map +1 -1
- package/dist/generators/base/component-generator.base.js +30 -34
- package/dist/generators/base/index.js +30 -34
- package/dist/generators/base/operation-generator.base.js +30 -34
- package/dist/generators/base/wasp-generator.base.d.ts +3 -5
- package/dist/generators/base/wasp-generator.base.d.ts.map +1 -1
- package/dist/generators/base/wasp-generator.base.js +10 -10
- package/dist/generators/crud/crud-generator.js +30 -34
- package/dist/generators/crud/index.js +30 -34
- package/dist/generators/feature/feature-generator.d.ts +2 -4
- package/dist/generators/feature/feature-generator.d.ts.map +1 -1
- package/dist/generators/feature/feature-generator.js +16 -22
- package/dist/generators/feature/index.js +16 -22
- package/dist/generators/index.js +30 -34
- package/dist/generators/job/index.js +30 -34
- package/dist/generators/job/job-generator.js +30 -34
- package/dist/generators/query/index.js +30 -34
- package/dist/generators/query/query-generator.js +30 -34
- package/dist/generators/route/index.js +30 -34
- package/dist/generators/route/route-generator.js +30 -34
- package/dist/index.js +30 -34
- package/package.json +2 -2
|
@@ -30,8 +30,8 @@ var CONFIG_TYPES = {
|
|
|
30
30
|
|
|
31
31
|
// src/generators/base/component-generator.base.ts
|
|
32
32
|
import {
|
|
33
|
+
GeneratorRuntime,
|
|
33
34
|
hasHelperMethodCall,
|
|
34
|
-
logger as singletonLogger4,
|
|
35
35
|
toCamelCase,
|
|
36
36
|
toKebabCase as toKebabCase2,
|
|
37
37
|
validateFeaturePath as validateFeaturePath3
|
|
@@ -200,17 +200,12 @@ var TemplateUtility = class {
|
|
|
200
200
|
};
|
|
201
201
|
|
|
202
202
|
// src/generators/feature/feature-generator.ts
|
|
203
|
-
import {
|
|
204
|
-
handleFatalError as handleFatalError2,
|
|
205
|
-
logger as singletonLogger3,
|
|
206
|
-
validateFeaturePath as validateFeaturePath2
|
|
207
|
-
} from "@ingenyus/swarm";
|
|
203
|
+
import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
|
|
208
204
|
import path5 from "path";
|
|
209
205
|
|
|
210
206
|
// src/generators/base/wasp-generator.base.ts
|
|
211
207
|
import {
|
|
212
208
|
GeneratorBase,
|
|
213
|
-
logger as singletonLogger2,
|
|
214
209
|
SwarmConfigManager,
|
|
215
210
|
TemplateResolver
|
|
216
211
|
} from "@ingenyus/swarm";
|
|
@@ -653,14 +648,6 @@ var WaspConfigGenerator = class {
|
|
|
653
648
|
|
|
654
649
|
// src/generators/base/wasp-generator.base.ts
|
|
655
650
|
var WaspGeneratorBase = class extends GeneratorBase {
|
|
656
|
-
constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
|
|
657
|
-
super(fileSystem, logger);
|
|
658
|
-
this.fileSystem = fileSystem;
|
|
659
|
-
this.logger = logger;
|
|
660
|
-
this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
|
|
661
|
-
this.templateUtility = new TemplateUtility(fileSystem);
|
|
662
|
-
this.templateResolver = new TemplateResolver(fileSystem);
|
|
663
|
-
}
|
|
664
651
|
configGenerator;
|
|
665
652
|
templateUtility;
|
|
666
653
|
templateResolver;
|
|
@@ -668,6 +655,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
668
655
|
configLoaded = false;
|
|
669
656
|
// Plugin name from swarm.config.json
|
|
670
657
|
pluginName = PLUGIN_NAME;
|
|
658
|
+
constructor() {
|
|
659
|
+
super();
|
|
660
|
+
this.configGenerator = new WaspConfigGenerator(
|
|
661
|
+
this.logger,
|
|
662
|
+
this.fileSystem
|
|
663
|
+
);
|
|
664
|
+
this.templateUtility = new TemplateUtility(this.fileSystem);
|
|
665
|
+
this.templateResolver = new TemplateResolver(this.fileSystem);
|
|
666
|
+
}
|
|
671
667
|
async loadSwarmConfig() {
|
|
672
668
|
if (this.configLoaded) return;
|
|
673
669
|
const configManager = new SwarmConfigManager();
|
|
@@ -718,7 +714,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
718
714
|
}
|
|
719
715
|
/**
|
|
720
716
|
* Generic existence check with force flag handling
|
|
721
|
-
* Consolidates the pattern used in both file and config checks
|
|
717
|
+
* Consolidates the pattern used in both file and config existence checks
|
|
722
718
|
*/
|
|
723
719
|
checkExistence(exists, itemDescription, force, errorMessage) {
|
|
724
720
|
if (exists && !force) {
|
|
@@ -758,16 +754,14 @@ var schema = z2.object({
|
|
|
758
754
|
|
|
759
755
|
// src/generators/feature/feature-generator.ts
|
|
760
756
|
var FeatureGenerator = class extends WaspGeneratorBase {
|
|
761
|
-
constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
|
|
762
|
-
super(fileSystem, logger);
|
|
763
|
-
this.logger = logger;
|
|
764
|
-
this.fileSystem = fileSystem;
|
|
765
|
-
this.name = "feature";
|
|
766
|
-
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
767
|
-
}
|
|
768
757
|
name;
|
|
769
758
|
description;
|
|
770
759
|
schema = schema;
|
|
760
|
+
constructor() {
|
|
761
|
+
super();
|
|
762
|
+
this.name = "feature";
|
|
763
|
+
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
764
|
+
}
|
|
771
765
|
getDefaultTemplatePath(templateName) {
|
|
772
766
|
return this.templateUtility.resolveTemplatePath(
|
|
773
767
|
templateName,
|
|
@@ -803,13 +797,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
|
|
|
803
797
|
|
|
804
798
|
// src/generators/base/component-generator.base.ts
|
|
805
799
|
var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
806
|
-
constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
|
|
807
|
-
super(fileSystem, logger);
|
|
808
|
-
this.logger = logger;
|
|
809
|
-
this.fileSystem = fileSystem;
|
|
810
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
811
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
812
|
-
}
|
|
813
800
|
getDefaultTemplatePath(templateName) {
|
|
814
801
|
return this.templateUtility.resolveTemplatePath(
|
|
815
802
|
templateName,
|
|
@@ -817,6 +804,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
817
804
|
import.meta.url
|
|
818
805
|
);
|
|
819
806
|
}
|
|
807
|
+
featureDirectoryGenerator;
|
|
808
|
+
constructor() {
|
|
809
|
+
super();
|
|
810
|
+
const runtime = GeneratorRuntime.current();
|
|
811
|
+
if (runtime.featureGeneratorFactory) {
|
|
812
|
+
const factoryResult = runtime.featureGeneratorFactory(runtime);
|
|
813
|
+
this.featureDirectoryGenerator = factoryResult;
|
|
814
|
+
} else {
|
|
815
|
+
this.featureDirectoryGenerator = new FeatureGenerator();
|
|
816
|
+
}
|
|
817
|
+
}
|
|
820
818
|
get name() {
|
|
821
819
|
return toKebabCase2(this.componentType);
|
|
822
820
|
}
|
|
@@ -893,15 +891,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
893
891
|
}
|
|
894
892
|
/**
|
|
895
893
|
* Gets the appropriate directory for a feature based on its path.
|
|
896
|
-
* @param fileSystem - The filesystem abstraction
|
|
897
894
|
* @param featurePath - The full feature path
|
|
898
895
|
* @param type - The type of file being generated
|
|
899
896
|
* @returns The target directory and import path
|
|
900
897
|
*/
|
|
901
|
-
getFeatureTargetDir(
|
|
898
|
+
getFeatureTargetDir(featurePath, type) {
|
|
902
899
|
validateFeaturePath3(featurePath);
|
|
903
900
|
const normalisedPath = normaliseFeaturePath(featurePath);
|
|
904
|
-
const featureDir = getFeatureDir(fileSystem, normalisedPath);
|
|
901
|
+
const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
|
|
905
902
|
const typeKey = type.toLowerCase();
|
|
906
903
|
const typeDirectory = TYPE_DIRECTORIES[typeKey];
|
|
907
904
|
const targetDirectory = path6.join(featureDir, typeDirectory);
|
|
@@ -913,7 +910,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
913
910
|
*/
|
|
914
911
|
ensureTargetDirectory(featurePath, type) {
|
|
915
912
|
const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
|
|
916
|
-
this.fileSystem,
|
|
917
913
|
featurePath,
|
|
918
914
|
type
|
|
919
915
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SwarmGenerator } from '@ingenyus/swarm';
|
|
2
2
|
import { ZodType } from 'zod';
|
|
3
3
|
import { ConfigType } from '../../types';
|
|
4
4
|
import { schema as featureSchema } from '../feature/schema';
|
|
@@ -7,12 +7,10 @@ import { WaspGeneratorBase } from './wasp-generator.base';
|
|
|
7
7
|
* Abstract base class for all Wasp component generators
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class ComponentGeneratorBase<S extends ZodType, TConfig extends ConfigType> extends WaspGeneratorBase<S> {
|
|
10
|
-
logger: Logger;
|
|
11
|
-
fileSystem: FileSystem;
|
|
12
|
-
protected featureDirectoryGenerator: SwarmGenerator<typeof featureSchema>;
|
|
13
10
|
protected abstract componentType: TConfig;
|
|
14
11
|
protected getDefaultTemplatePath(templateName: string): string;
|
|
15
|
-
|
|
12
|
+
protected featureDirectoryGenerator: SwarmGenerator<typeof featureSchema>;
|
|
13
|
+
constructor();
|
|
16
14
|
get name(): string;
|
|
17
15
|
/**
|
|
18
16
|
* Validates that the feature config file exists in the target or ancestor directories
|
|
@@ -33,12 +31,11 @@ export declare abstract class ComponentGeneratorBase<S extends ZodType, TConfig
|
|
|
33
31
|
protected updateConfigWithCheck(configPath: string, methodName: string, entityName: string, definition: string, featurePath: string, force: boolean): void;
|
|
34
32
|
/**
|
|
35
33
|
* Gets the appropriate directory for a feature based on its path.
|
|
36
|
-
* @param fileSystem - The filesystem abstraction
|
|
37
34
|
* @param featurePath - The full feature path
|
|
38
35
|
* @param type - The type of file being generated
|
|
39
36
|
* @returns The target directory and import path
|
|
40
37
|
*/
|
|
41
|
-
protected getFeatureTargetDir(
|
|
38
|
+
protected getFeatureTargetDir(featurePath: string, type: string): {
|
|
42
39
|
targetDirectory: string;
|
|
43
40
|
importDirectory: string;
|
|
44
41
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-generator.base.d.ts","sourceRoot":"","sources":["../../../src/generators/base/component-generator.base.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"component-generator.base.d.ts","sourceRoot":"","sources":["../../../src/generators/base/component-generator.base.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EAIf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAM9B,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,8BAAsB,sBAAsB,CAC1C,CAAC,SAAS,OAAO,EACjB,OAAO,SAAS,UAAU,CAC1B,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAE1C,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAQ9D,SAAS,CAAC,yBAAyB,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC;;IAmB1E,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IA4B5D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,OAAO;IAgBV;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,GACjB,IAAI;IAOP;;;OAGG;IACH,SAAS,CAAC,qBAAqB,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,GACb,IAAI;IAmBP;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAC3B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IAavD;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;IAWjE;;OAEG;cACa,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC;CAcjB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/generators/base/component-generator.base.ts
|
|
2
2
|
import {
|
|
3
|
+
GeneratorRuntime,
|
|
3
4
|
hasHelperMethodCall,
|
|
4
|
-
logger as singletonLogger4,
|
|
5
5
|
toCamelCase,
|
|
6
6
|
toKebabCase as toKebabCase2,
|
|
7
7
|
validateFeaturePath as validateFeaturePath3
|
|
@@ -189,17 +189,12 @@ var TemplateUtility = class {
|
|
|
189
189
|
};
|
|
190
190
|
|
|
191
191
|
// src/generators/feature/feature-generator.ts
|
|
192
|
-
import {
|
|
193
|
-
handleFatalError as handleFatalError2,
|
|
194
|
-
logger as singletonLogger3,
|
|
195
|
-
validateFeaturePath as validateFeaturePath2
|
|
196
|
-
} from "@ingenyus/swarm";
|
|
192
|
+
import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
|
|
197
193
|
import path5 from "path";
|
|
198
194
|
|
|
199
195
|
// src/generators/base/wasp-generator.base.ts
|
|
200
196
|
import {
|
|
201
197
|
GeneratorBase,
|
|
202
|
-
logger as singletonLogger2,
|
|
203
198
|
SwarmConfigManager,
|
|
204
199
|
TemplateResolver
|
|
205
200
|
} from "@ingenyus/swarm";
|
|
@@ -642,14 +637,6 @@ var WaspConfigGenerator = class {
|
|
|
642
637
|
|
|
643
638
|
// src/generators/base/wasp-generator.base.ts
|
|
644
639
|
var WaspGeneratorBase = class extends GeneratorBase {
|
|
645
|
-
constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
|
|
646
|
-
super(fileSystem, logger);
|
|
647
|
-
this.fileSystem = fileSystem;
|
|
648
|
-
this.logger = logger;
|
|
649
|
-
this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
|
|
650
|
-
this.templateUtility = new TemplateUtility(fileSystem);
|
|
651
|
-
this.templateResolver = new TemplateResolver(fileSystem);
|
|
652
|
-
}
|
|
653
640
|
configGenerator;
|
|
654
641
|
templateUtility;
|
|
655
642
|
templateResolver;
|
|
@@ -657,6 +644,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
657
644
|
configLoaded = false;
|
|
658
645
|
// Plugin name from swarm.config.json
|
|
659
646
|
pluginName = PLUGIN_NAME;
|
|
647
|
+
constructor() {
|
|
648
|
+
super();
|
|
649
|
+
this.configGenerator = new WaspConfigGenerator(
|
|
650
|
+
this.logger,
|
|
651
|
+
this.fileSystem
|
|
652
|
+
);
|
|
653
|
+
this.templateUtility = new TemplateUtility(this.fileSystem);
|
|
654
|
+
this.templateResolver = new TemplateResolver(this.fileSystem);
|
|
655
|
+
}
|
|
660
656
|
async loadSwarmConfig() {
|
|
661
657
|
if (this.configLoaded) return;
|
|
662
658
|
const configManager = new SwarmConfigManager();
|
|
@@ -707,7 +703,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
707
703
|
}
|
|
708
704
|
/**
|
|
709
705
|
* Generic existence check with force flag handling
|
|
710
|
-
* Consolidates the pattern used in both file and config checks
|
|
706
|
+
* Consolidates the pattern used in both file and config existence checks
|
|
711
707
|
*/
|
|
712
708
|
checkExistence(exists, itemDescription, force, errorMessage) {
|
|
713
709
|
if (exists && !force) {
|
|
@@ -747,16 +743,14 @@ var schema = z2.object({
|
|
|
747
743
|
|
|
748
744
|
// src/generators/feature/feature-generator.ts
|
|
749
745
|
var FeatureGenerator = class extends WaspGeneratorBase {
|
|
750
|
-
constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
|
|
751
|
-
super(fileSystem, logger);
|
|
752
|
-
this.logger = logger;
|
|
753
|
-
this.fileSystem = fileSystem;
|
|
754
|
-
this.name = "feature";
|
|
755
|
-
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
756
|
-
}
|
|
757
746
|
name;
|
|
758
747
|
description;
|
|
759
748
|
schema = schema;
|
|
749
|
+
constructor() {
|
|
750
|
+
super();
|
|
751
|
+
this.name = "feature";
|
|
752
|
+
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
753
|
+
}
|
|
760
754
|
getDefaultTemplatePath(templateName) {
|
|
761
755
|
return this.templateUtility.resolveTemplatePath(
|
|
762
756
|
templateName,
|
|
@@ -792,13 +786,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
|
|
|
792
786
|
|
|
793
787
|
// src/generators/base/component-generator.base.ts
|
|
794
788
|
var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
795
|
-
constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
|
|
796
|
-
super(fileSystem, logger);
|
|
797
|
-
this.logger = logger;
|
|
798
|
-
this.fileSystem = fileSystem;
|
|
799
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
800
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
801
|
-
}
|
|
802
789
|
getDefaultTemplatePath(templateName) {
|
|
803
790
|
return this.templateUtility.resolveTemplatePath(
|
|
804
791
|
templateName,
|
|
@@ -806,6 +793,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
806
793
|
import.meta.url
|
|
807
794
|
);
|
|
808
795
|
}
|
|
796
|
+
featureDirectoryGenerator;
|
|
797
|
+
constructor() {
|
|
798
|
+
super();
|
|
799
|
+
const runtime = GeneratorRuntime.current();
|
|
800
|
+
if (runtime.featureGeneratorFactory) {
|
|
801
|
+
const factoryResult = runtime.featureGeneratorFactory(runtime);
|
|
802
|
+
this.featureDirectoryGenerator = factoryResult;
|
|
803
|
+
} else {
|
|
804
|
+
this.featureDirectoryGenerator = new FeatureGenerator();
|
|
805
|
+
}
|
|
806
|
+
}
|
|
809
807
|
get name() {
|
|
810
808
|
return toKebabCase2(this.componentType);
|
|
811
809
|
}
|
|
@@ -882,15 +880,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
882
880
|
}
|
|
883
881
|
/**
|
|
884
882
|
* Gets the appropriate directory for a feature based on its path.
|
|
885
|
-
* @param fileSystem - The filesystem abstraction
|
|
886
883
|
* @param featurePath - The full feature path
|
|
887
884
|
* @param type - The type of file being generated
|
|
888
885
|
* @returns The target directory and import path
|
|
889
886
|
*/
|
|
890
|
-
getFeatureTargetDir(
|
|
887
|
+
getFeatureTargetDir(featurePath, type) {
|
|
891
888
|
validateFeaturePath3(featurePath);
|
|
892
889
|
const normalisedPath = normaliseFeaturePath(featurePath);
|
|
893
|
-
const featureDir = getFeatureDir(fileSystem, normalisedPath);
|
|
890
|
+
const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
|
|
894
891
|
const typeKey = type.toLowerCase();
|
|
895
892
|
const typeDirectory = TYPE_DIRECTORIES[typeKey];
|
|
896
893
|
const targetDirectory = path6.join(featureDir, typeDirectory);
|
|
@@ -902,7 +899,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
902
899
|
*/
|
|
903
900
|
ensureTargetDirectory(featurePath, type) {
|
|
904
901
|
const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
|
|
905
|
-
this.fileSystem,
|
|
906
902
|
featurePath,
|
|
907
903
|
type
|
|
908
904
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/generators/base/component-generator.base.ts
|
|
2
2
|
import {
|
|
3
|
+
GeneratorRuntime,
|
|
3
4
|
hasHelperMethodCall,
|
|
4
|
-
logger as singletonLogger4,
|
|
5
5
|
toCamelCase,
|
|
6
6
|
toKebabCase as toKebabCase2,
|
|
7
7
|
validateFeaturePath as validateFeaturePath3
|
|
@@ -338,17 +338,12 @@ var TemplateUtility = class {
|
|
|
338
338
|
};
|
|
339
339
|
|
|
340
340
|
// src/generators/feature/feature-generator.ts
|
|
341
|
-
import {
|
|
342
|
-
handleFatalError as handleFatalError2,
|
|
343
|
-
logger as singletonLogger3,
|
|
344
|
-
validateFeaturePath as validateFeaturePath2
|
|
345
|
-
} from "@ingenyus/swarm";
|
|
341
|
+
import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
|
|
346
342
|
import path5 from "path";
|
|
347
343
|
|
|
348
344
|
// src/generators/base/wasp-generator.base.ts
|
|
349
345
|
import {
|
|
350
346
|
GeneratorBase,
|
|
351
|
-
logger as singletonLogger2,
|
|
352
347
|
SwarmConfigManager,
|
|
353
348
|
TemplateResolver
|
|
354
349
|
} from "@ingenyus/swarm";
|
|
@@ -791,14 +786,6 @@ var WaspConfigGenerator = class {
|
|
|
791
786
|
|
|
792
787
|
// src/generators/base/wasp-generator.base.ts
|
|
793
788
|
var WaspGeneratorBase = class extends GeneratorBase {
|
|
794
|
-
constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
|
|
795
|
-
super(fileSystem, logger);
|
|
796
|
-
this.fileSystem = fileSystem;
|
|
797
|
-
this.logger = logger;
|
|
798
|
-
this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
|
|
799
|
-
this.templateUtility = new TemplateUtility(fileSystem);
|
|
800
|
-
this.templateResolver = new TemplateResolver(fileSystem);
|
|
801
|
-
}
|
|
802
789
|
configGenerator;
|
|
803
790
|
templateUtility;
|
|
804
791
|
templateResolver;
|
|
@@ -806,6 +793,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
806
793
|
configLoaded = false;
|
|
807
794
|
// Plugin name from swarm.config.json
|
|
808
795
|
pluginName = PLUGIN_NAME;
|
|
796
|
+
constructor() {
|
|
797
|
+
super();
|
|
798
|
+
this.configGenerator = new WaspConfigGenerator(
|
|
799
|
+
this.logger,
|
|
800
|
+
this.fileSystem
|
|
801
|
+
);
|
|
802
|
+
this.templateUtility = new TemplateUtility(this.fileSystem);
|
|
803
|
+
this.templateResolver = new TemplateResolver(this.fileSystem);
|
|
804
|
+
}
|
|
809
805
|
async loadSwarmConfig() {
|
|
810
806
|
if (this.configLoaded) return;
|
|
811
807
|
const configManager = new SwarmConfigManager();
|
|
@@ -856,7 +852,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
856
852
|
}
|
|
857
853
|
/**
|
|
858
854
|
* Generic existence check with force flag handling
|
|
859
|
-
* Consolidates the pattern used in both file and config checks
|
|
855
|
+
* Consolidates the pattern used in both file and config existence checks
|
|
860
856
|
*/
|
|
861
857
|
checkExistence(exists, itemDescription, force, errorMessage) {
|
|
862
858
|
if (exists && !force) {
|
|
@@ -896,16 +892,14 @@ var schema = z2.object({
|
|
|
896
892
|
|
|
897
893
|
// src/generators/feature/feature-generator.ts
|
|
898
894
|
var FeatureGenerator = class extends WaspGeneratorBase {
|
|
899
|
-
constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
|
|
900
|
-
super(fileSystem, logger);
|
|
901
|
-
this.logger = logger;
|
|
902
|
-
this.fileSystem = fileSystem;
|
|
903
|
-
this.name = "feature";
|
|
904
|
-
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
905
|
-
}
|
|
906
895
|
name;
|
|
907
896
|
description;
|
|
908
897
|
schema = schema;
|
|
898
|
+
constructor() {
|
|
899
|
+
super();
|
|
900
|
+
this.name = "feature";
|
|
901
|
+
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
902
|
+
}
|
|
909
903
|
getDefaultTemplatePath(templateName) {
|
|
910
904
|
return this.templateUtility.resolveTemplatePath(
|
|
911
905
|
templateName,
|
|
@@ -941,13 +935,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
|
|
|
941
935
|
|
|
942
936
|
// src/generators/base/component-generator.base.ts
|
|
943
937
|
var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
944
|
-
constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
|
|
945
|
-
super(fileSystem, logger);
|
|
946
|
-
this.logger = logger;
|
|
947
|
-
this.fileSystem = fileSystem;
|
|
948
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
949
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
950
|
-
}
|
|
951
938
|
getDefaultTemplatePath(templateName) {
|
|
952
939
|
return this.templateUtility.resolveTemplatePath(
|
|
953
940
|
templateName,
|
|
@@ -955,6 +942,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
955
942
|
import.meta.url
|
|
956
943
|
);
|
|
957
944
|
}
|
|
945
|
+
featureDirectoryGenerator;
|
|
946
|
+
constructor() {
|
|
947
|
+
super();
|
|
948
|
+
const runtime = GeneratorRuntime.current();
|
|
949
|
+
if (runtime.featureGeneratorFactory) {
|
|
950
|
+
const factoryResult = runtime.featureGeneratorFactory(runtime);
|
|
951
|
+
this.featureDirectoryGenerator = factoryResult;
|
|
952
|
+
} else {
|
|
953
|
+
this.featureDirectoryGenerator = new FeatureGenerator();
|
|
954
|
+
}
|
|
955
|
+
}
|
|
958
956
|
get name() {
|
|
959
957
|
return toKebabCase2(this.componentType);
|
|
960
958
|
}
|
|
@@ -1031,15 +1029,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
1031
1029
|
}
|
|
1032
1030
|
/**
|
|
1033
1031
|
* Gets the appropriate directory for a feature based on its path.
|
|
1034
|
-
* @param fileSystem - The filesystem abstraction
|
|
1035
1032
|
* @param featurePath - The full feature path
|
|
1036
1033
|
* @param type - The type of file being generated
|
|
1037
1034
|
* @returns The target directory and import path
|
|
1038
1035
|
*/
|
|
1039
|
-
getFeatureTargetDir(
|
|
1036
|
+
getFeatureTargetDir(featurePath, type) {
|
|
1040
1037
|
validateFeaturePath3(featurePath);
|
|
1041
1038
|
const normalisedPath = normaliseFeaturePath(featurePath);
|
|
1042
|
-
const featureDir = getFeatureDir(fileSystem, normalisedPath);
|
|
1039
|
+
const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
|
|
1043
1040
|
const typeKey = type.toLowerCase();
|
|
1044
1041
|
const typeDirectory = TYPE_DIRECTORIES[typeKey];
|
|
1045
1042
|
const targetDirectory = path6.join(featureDir, typeDirectory);
|
|
@@ -1051,7 +1048,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
1051
1048
|
*/
|
|
1052
1049
|
ensureTargetDirectory(featurePath, type) {
|
|
1053
1050
|
const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
|
|
1054
|
-
this.fileSystem,
|
|
1055
1051
|
featurePath,
|
|
1056
1052
|
type
|
|
1057
1053
|
);
|
|
@@ -337,8 +337,8 @@ var TemplateUtility = class {
|
|
|
337
337
|
|
|
338
338
|
// src/generators/base/component-generator.base.ts
|
|
339
339
|
import {
|
|
340
|
+
GeneratorRuntime,
|
|
340
341
|
hasHelperMethodCall,
|
|
341
|
-
logger as singletonLogger4,
|
|
342
342
|
toCamelCase,
|
|
343
343
|
toKebabCase as toKebabCase2,
|
|
344
344
|
validateFeaturePath as validateFeaturePath3
|
|
@@ -346,17 +346,12 @@ import {
|
|
|
346
346
|
import path6 from "path";
|
|
347
347
|
|
|
348
348
|
// src/generators/feature/feature-generator.ts
|
|
349
|
-
import {
|
|
350
|
-
handleFatalError as handleFatalError2,
|
|
351
|
-
logger as singletonLogger3,
|
|
352
|
-
validateFeaturePath as validateFeaturePath2
|
|
353
|
-
} from "@ingenyus/swarm";
|
|
349
|
+
import { handleFatalError as handleFatalError2, validateFeaturePath as validateFeaturePath2 } from "@ingenyus/swarm";
|
|
354
350
|
import path5 from "path";
|
|
355
351
|
|
|
356
352
|
// src/generators/base/wasp-generator.base.ts
|
|
357
353
|
import {
|
|
358
354
|
GeneratorBase,
|
|
359
|
-
logger as singletonLogger2,
|
|
360
355
|
SwarmConfigManager,
|
|
361
356
|
TemplateResolver
|
|
362
357
|
} from "@ingenyus/swarm";
|
|
@@ -799,14 +794,6 @@ var WaspConfigGenerator = class {
|
|
|
799
794
|
|
|
800
795
|
// src/generators/base/wasp-generator.base.ts
|
|
801
796
|
var WaspGeneratorBase = class extends GeneratorBase {
|
|
802
|
-
constructor(fileSystem = realFileSystem, logger = singletonLogger2) {
|
|
803
|
-
super(fileSystem, logger);
|
|
804
|
-
this.fileSystem = fileSystem;
|
|
805
|
-
this.logger = logger;
|
|
806
|
-
this.configGenerator = new WaspConfigGenerator(logger, fileSystem);
|
|
807
|
-
this.templateUtility = new TemplateUtility(fileSystem);
|
|
808
|
-
this.templateResolver = new TemplateResolver(fileSystem);
|
|
809
|
-
}
|
|
810
797
|
configGenerator;
|
|
811
798
|
templateUtility;
|
|
812
799
|
templateResolver;
|
|
@@ -814,6 +801,15 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
814
801
|
configLoaded = false;
|
|
815
802
|
// Plugin name from swarm.config.json
|
|
816
803
|
pluginName = PLUGIN_NAME;
|
|
804
|
+
constructor() {
|
|
805
|
+
super();
|
|
806
|
+
this.configGenerator = new WaspConfigGenerator(
|
|
807
|
+
this.logger,
|
|
808
|
+
this.fileSystem
|
|
809
|
+
);
|
|
810
|
+
this.templateUtility = new TemplateUtility(this.fileSystem);
|
|
811
|
+
this.templateResolver = new TemplateResolver(this.fileSystem);
|
|
812
|
+
}
|
|
817
813
|
async loadSwarmConfig() {
|
|
818
814
|
if (this.configLoaded) return;
|
|
819
815
|
const configManager = new SwarmConfigManager();
|
|
@@ -864,7 +860,7 @@ var WaspGeneratorBase = class extends GeneratorBase {
|
|
|
864
860
|
}
|
|
865
861
|
/**
|
|
866
862
|
* Generic existence check with force flag handling
|
|
867
|
-
* Consolidates the pattern used in both file and config checks
|
|
863
|
+
* Consolidates the pattern used in both file and config existence checks
|
|
868
864
|
*/
|
|
869
865
|
checkExistence(exists, itemDescription, force, errorMessage) {
|
|
870
866
|
if (exists && !force) {
|
|
@@ -904,16 +900,14 @@ var schema = z2.object({
|
|
|
904
900
|
|
|
905
901
|
// src/generators/feature/feature-generator.ts
|
|
906
902
|
var FeatureGenerator = class extends WaspGeneratorBase {
|
|
907
|
-
constructor(logger = singletonLogger3, fileSystem = realFileSystem) {
|
|
908
|
-
super(fileSystem, logger);
|
|
909
|
-
this.logger = logger;
|
|
910
|
-
this.fileSystem = fileSystem;
|
|
911
|
-
this.name = "feature";
|
|
912
|
-
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
913
|
-
}
|
|
914
903
|
name;
|
|
915
904
|
description;
|
|
916
905
|
schema = schema;
|
|
906
|
+
constructor() {
|
|
907
|
+
super();
|
|
908
|
+
this.name = "feature";
|
|
909
|
+
this.description = "Generates a feature directory containing a Wasp configuration file";
|
|
910
|
+
}
|
|
917
911
|
getDefaultTemplatePath(templateName) {
|
|
918
912
|
return this.templateUtility.resolveTemplatePath(
|
|
919
913
|
templateName,
|
|
@@ -949,13 +943,6 @@ var FeatureGenerator = class extends WaspGeneratorBase {
|
|
|
949
943
|
|
|
950
944
|
// src/generators/base/component-generator.base.ts
|
|
951
945
|
var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
952
|
-
constructor(logger = singletonLogger4, fileSystem = realFileSystem, featureDirectoryGenerator = new FeatureGenerator(logger, fileSystem)) {
|
|
953
|
-
super(fileSystem, logger);
|
|
954
|
-
this.logger = logger;
|
|
955
|
-
this.fileSystem = fileSystem;
|
|
956
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
957
|
-
this.featureDirectoryGenerator = featureDirectoryGenerator;
|
|
958
|
-
}
|
|
959
946
|
getDefaultTemplatePath(templateName) {
|
|
960
947
|
return this.templateUtility.resolveTemplatePath(
|
|
961
948
|
templateName,
|
|
@@ -963,6 +950,17 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
963
950
|
import.meta.url
|
|
964
951
|
);
|
|
965
952
|
}
|
|
953
|
+
featureDirectoryGenerator;
|
|
954
|
+
constructor() {
|
|
955
|
+
super();
|
|
956
|
+
const runtime = GeneratorRuntime.current();
|
|
957
|
+
if (runtime.featureGeneratorFactory) {
|
|
958
|
+
const factoryResult = runtime.featureGeneratorFactory(runtime);
|
|
959
|
+
this.featureDirectoryGenerator = factoryResult;
|
|
960
|
+
} else {
|
|
961
|
+
this.featureDirectoryGenerator = new FeatureGenerator();
|
|
962
|
+
}
|
|
963
|
+
}
|
|
966
964
|
get name() {
|
|
967
965
|
return toKebabCase2(this.componentType);
|
|
968
966
|
}
|
|
@@ -1039,15 +1037,14 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
1039
1037
|
}
|
|
1040
1038
|
/**
|
|
1041
1039
|
* Gets the appropriate directory for a feature based on its path.
|
|
1042
|
-
* @param fileSystem - The filesystem abstraction
|
|
1043
1040
|
* @param featurePath - The full feature path
|
|
1044
1041
|
* @param type - The type of file being generated
|
|
1045
1042
|
* @returns The target directory and import path
|
|
1046
1043
|
*/
|
|
1047
|
-
getFeatureTargetDir(
|
|
1044
|
+
getFeatureTargetDir(featurePath, type) {
|
|
1048
1045
|
validateFeaturePath3(featurePath);
|
|
1049
1046
|
const normalisedPath = normaliseFeaturePath(featurePath);
|
|
1050
|
-
const featureDir = getFeatureDir(fileSystem, normalisedPath);
|
|
1047
|
+
const featureDir = getFeatureDir(this.fileSystem, normalisedPath);
|
|
1051
1048
|
const typeKey = type.toLowerCase();
|
|
1052
1049
|
const typeDirectory = TYPE_DIRECTORIES[typeKey];
|
|
1053
1050
|
const targetDirectory = path6.join(featureDir, typeDirectory);
|
|
@@ -1059,7 +1056,6 @@ var ComponentGeneratorBase = class extends WaspGeneratorBase {
|
|
|
1059
1056
|
*/
|
|
1060
1057
|
ensureTargetDirectory(featurePath, type) {
|
|
1061
1058
|
const { targetDirectory, importDirectory } = this.getFeatureTargetDir(
|
|
1062
|
-
this.fileSystem,
|
|
1063
1059
|
featurePath,
|
|
1064
1060
|
type
|
|
1065
1061
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GeneratorBase, TemplateResolver } from '@ingenyus/swarm';
|
|
2
2
|
import { ZodType } from 'zod';
|
|
3
3
|
import { TemplateUtility } from '../../common';
|
|
4
4
|
import { WaspConfigGenerator } from '../config';
|
|
@@ -6,15 +6,13 @@ import { WaspConfigGenerator } from '../config';
|
|
|
6
6
|
* Abstract base class for all Wasp generators
|
|
7
7
|
*/
|
|
8
8
|
export declare abstract class WaspGeneratorBase<S extends ZodType> extends GeneratorBase<S> {
|
|
9
|
-
fileSystem: FileSystem;
|
|
10
|
-
logger: Logger;
|
|
11
9
|
protected configGenerator: WaspConfigGenerator;
|
|
12
10
|
protected templateUtility: TemplateUtility;
|
|
13
11
|
protected templateResolver: TemplateResolver;
|
|
14
12
|
private swarmConfig;
|
|
15
13
|
private configLoaded;
|
|
16
14
|
protected readonly pluginName: "wasp";
|
|
17
|
-
constructor(
|
|
15
|
+
constructor();
|
|
18
16
|
private loadSwarmConfig;
|
|
19
17
|
protected getCustomTemplateDir(): Promise<string | undefined>;
|
|
20
18
|
/**
|
|
@@ -33,7 +31,7 @@ export declare abstract class WaspGeneratorBase<S extends ZodType> extends Gener
|
|
|
33
31
|
protected renderTemplateToFile(templateName: string, replacements: Record<string, any>, outputPath: string, readableFileType: string, force: boolean): Promise<boolean>;
|
|
34
32
|
/**
|
|
35
33
|
* Generic existence check with force flag handling
|
|
36
|
-
* Consolidates the pattern used in both file and config checks
|
|
34
|
+
* Consolidates the pattern used in both file and config existence checks
|
|
37
35
|
*/
|
|
38
36
|
protected checkExistence(exists: boolean, itemDescription: string, force: boolean, errorMessage?: string): boolean;
|
|
39
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasp-generator.base.d.ts","sourceRoot":"","sources":["../../../src/generators/base/wasp-generator.base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"wasp-generator.base.d.ts","sourceRoot":"","sources":["../../../src/generators/base/wasp-generator.base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;GAEG;AACH,8BAAsB,iBAAiB,CACrC,CAAC,SAAS,OAAO,CACjB,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAC/C,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC3C,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC7C,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,YAAY,CAAS;IAG7B,SAAS,CAAC,QAAQ,CAAC,UAAU,SAAe;;YAY9B,eAAe;cASb,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMnE;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAEvE;;OAEG;cACa,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBtE;;OAEG;cACa,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,OAAO,CAAC;IAiBnB;;;OAGG;IACH,SAAS,CAAC,cAAc,CACtB,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,OAAO,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO;IAQV;;OAEG;IACH,SAAS,CAAC,eAAe,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACf,OAAO;IAUV;;OAEG;IACH,SAAS,CAAC,SAAS,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,GAClB,IAAI;CAMR"}
|