@baseplate-dev/project-builder-server 0.3.7 → 0.4.0
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/actions/diff/diff-project.action.js +1 -1
- package/dist/actions/diff/diff-project.action.js.map +1 -1
- package/dist/actions/snapshot/snapshot-add.action.d.ts.map +1 -1
- package/dist/actions/snapshot/snapshot-add.action.js +3 -3
- package/dist/actions/snapshot/snapshot-add.action.js.map +1 -1
- package/dist/actions/snapshot/snapshot-remove.action.d.ts.map +1 -1
- package/dist/actions/snapshot/snapshot-remove.action.js +3 -3
- package/dist/actions/snapshot/snapshot-remove.action.js.map +1 -1
- package/dist/actions/snapshot/snapshot-save.action.d.ts.map +1 -1
- package/dist/actions/snapshot/snapshot-save.action.js +3 -3
- package/dist/actions/snapshot/snapshot-save.action.js.map +1 -1
- package/dist/actions/snapshot/snapshot-show.action.d.ts.map +1 -1
- package/dist/actions/snapshot/snapshot-show.action.js +2 -2
- package/dist/actions/snapshot/snapshot-show.action.js.map +1 -1
- package/dist/actions/sync/sync-all-projects.action.d.ts.map +1 -1
- package/dist/actions/sync/sync-all-projects.action.js +2 -2
- package/dist/actions/sync/sync-all-projects.action.js.map +1 -1
- package/dist/actions/sync/sync-project.action.d.ts.map +1 -1
- package/dist/actions/sync/sync-project.action.js +2 -2
- package/dist/actions/sync/sync-project.action.js.map +1 -1
- package/dist/actions/types.d.ts +4 -13
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/actions/types.js.map +1 -1
- package/dist/actions/utils/index.d.ts +1 -0
- package/dist/actions/utils/index.d.ts.map +1 -1
- package/dist/actions/utils/index.js +1 -0
- package/dist/actions/utils/index.js.map +1 -1
- package/dist/actions/utils/is-example-project.d.ts +7 -0
- package/dist/actions/utils/is-example-project.d.ts.map +1 -0
- package/dist/actions/utils/is-example-project.js +22 -0
- package/dist/actions/utils/is-example-project.js.map +1 -0
- package/dist/actions/utils/project-discovery.d.ts +5 -5
- package/dist/actions/utils/project-discovery.d.ts.map +1 -1
- package/dist/actions/utils/project-discovery.js +5 -2
- package/dist/actions/utils/project-discovery.js.map +1 -1
- package/dist/actions/utils/projects.d.ts +2 -2
- package/dist/actions/utils/projects.d.ts.map +1 -1
- package/dist/actions/utils/projects.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/projects.d.ts +2 -6
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +1 -30
- package/dist/api/projects.js.map +1 -1
- package/dist/compiler/app-compiler.d.ts +9 -0
- package/dist/compiler/app-compiler.d.ts.map +1 -0
- package/dist/compiler/app-compiler.js +18 -0
- package/dist/compiler/app-compiler.js.map +1 -0
- package/dist/compiler/app-entry-builder.d.ts +4 -3
- package/dist/compiler/app-entry-builder.d.ts.map +1 -1
- package/dist/compiler/app-entry-builder.js +4 -4
- package/dist/compiler/app-entry-builder.js.map +1 -1
- package/dist/compiler/backend/backend-compiler.d.ts +17 -0
- package/dist/compiler/backend/backend-compiler.d.ts.map +1 -0
- package/dist/compiler/backend/backend-compiler.js +40 -0
- package/dist/compiler/backend/backend-compiler.js.map +1 -0
- package/dist/compiler/backend/fastify.d.ts.map +1 -1
- package/dist/compiler/backend/fastify.js +6 -4
- package/dist/compiler/backend/fastify.js.map +1 -1
- package/dist/compiler/backend/graphql.d.ts.map +1 -1
- package/dist/compiler/backend/graphql.js +5 -6
- package/dist/compiler/backend/graphql.js.map +1 -1
- package/dist/compiler/backend/index.d.ts +1 -2
- package/dist/compiler/backend/index.d.ts.map +1 -1
- package/dist/compiler/backend/index.js +1 -33
- package/dist/compiler/backend/index.js.map +1 -1
- package/dist/compiler/backend/services.d.ts.map +1 -1
- package/dist/compiler/backend/services.js +50 -48
- package/dist/compiler/backend/services.js.map +1 -1
- package/dist/compiler/compile-packages.d.ts +13 -0
- package/dist/compiler/compile-packages.d.ts.map +1 -0
- package/dist/compiler/compile-packages.js +53 -0
- package/dist/compiler/compile-packages.js.map +1 -0
- package/dist/compiler/index.d.ts +2 -2
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +2 -26
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/infrastructure-utils.d.ts +36 -0
- package/dist/compiler/infrastructure-utils.d.ts.map +1 -0
- package/dist/compiler/infrastructure-utils.js +39 -0
- package/dist/compiler/infrastructure-utils.js.map +1 -0
- package/dist/compiler/package-compiler.d.ts +84 -0
- package/dist/compiler/package-compiler.d.ts.map +1 -0
- package/dist/compiler/package-compiler.js +67 -0
- package/dist/compiler/package-compiler.js.map +1 -0
- package/dist/compiler/package-entry.d.ts +18 -0
- package/dist/compiler/package-entry.d.ts.map +1 -0
- package/dist/compiler/package-entry.js +2 -0
- package/dist/compiler/package-entry.js.map +1 -0
- package/dist/compiler/root/index.d.ts +2 -0
- package/dist/compiler/root/index.d.ts.map +1 -0
- package/dist/compiler/root/index.js +2 -0
- package/dist/compiler/root/index.js.map +1 -0
- package/dist/compiler/root/root-package-compiler.d.ts +23 -0
- package/dist/compiler/root/root-package-compiler.d.ts.map +1 -0
- package/dist/compiler/root/root-package-compiler.js +147 -0
- package/dist/compiler/root/root-package-compiler.js.map +1 -0
- package/dist/compiler/web/index.d.ts +1 -2
- package/dist/compiler/web/index.d.ts.map +1 -1
- package/dist/compiler/web/index.js +1 -124
- package/dist/compiler/web/index.js.map +1 -1
- package/dist/compiler/web/web-compiler.d.ts +19 -0
- package/dist/compiler/web/web-compiler.d.ts.map +1 -0
- package/dist/compiler/web/web-compiler.js +156 -0
- package/dist/compiler/web/web-compiler.js.map +1 -0
- package/dist/dev-server/api/router.d.ts +6 -6
- package/dist/diff/diff-project.d.ts +3 -2
- package/dist/diff/diff-project.d.ts.map +1 -1
- package/dist/diff/diff-project.js +9 -52
- package/dist/diff/diff-project.js.map +1 -1
- package/dist/diff/snapshot/create-snapshot-for-project.d.ts.map +1 -1
- package/dist/diff/snapshot/create-snapshot-for-project.js +4 -4
- package/dist/diff/snapshot/create-snapshot-for-project.js.map +1 -1
- package/dist/diff/snapshot/snapshot-management.d.ts.map +1 -1
- package/dist/diff/snapshot/snapshot-management.js +3 -3
- package/dist/diff/snapshot/snapshot-management.js.map +1 -1
- package/dist/plugins/node-plugin-store.d.ts +2 -2
- package/dist/plugins/node-plugin-store.d.ts.map +1 -1
- package/dist/plugins/node-plugin-store.js +4 -2
- package/dist/plugins/node-plugin-store.js.map +1 -1
- package/dist/project-definition/get-single-app-directory-for-project.d.ts.map +1 -1
- package/dist/project-definition/get-single-app-directory-for-project.js +2 -1
- package/dist/project-definition/get-single-app-directory-for-project.js.map +1 -1
- package/dist/server/builder-service-manager.d.ts +2 -1
- package/dist/server/builder-service-manager.d.ts.map +1 -1
- package/dist/server/builder-service-manager.js +5 -8
- package/dist/server/builder-service-manager.js.map +1 -1
- package/dist/service/builder-service.d.ts +6 -6
- package/dist/service/builder-service.d.ts.map +1 -1
- package/dist/service/builder-service.js +9 -7
- package/dist/service/builder-service.js.map +1 -1
- package/dist/sync/generate-for-directory.d.ts +2 -2
- package/dist/sync/generate-for-directory.d.ts.map +1 -1
- package/dist/sync/generate-for-directory.js +3 -3
- package/dist/sync/generate-for-directory.js.map +1 -1
- package/dist/sync/generator-steps-writer.js +1 -1
- package/dist/sync/generator-steps-writer.js.map +1 -1
- package/dist/sync/sync-project.js +3 -3
- package/dist/sync/sync-project.js.map +1 -1
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js +3 -2
- package/dist/sync/types.js.map +1 -1
- package/package.json +8 -8
- package/dist/compiler/backend/utils.d.ts +0 -16
- package/dist/compiler/backend/utils.d.ts.map +0 -1
- package/dist/compiler/backend/utils.js +0 -17
- package/dist/compiler/backend/utils.js.map +0 -1
package/dist/api/projects.js
CHANGED
|
@@ -1,36 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { privateProcedure, router } from './trpc.js';
|
|
3
|
-
const simpleProjectDefinitionSchema = z.object({
|
|
4
|
-
// handle old placement of name
|
|
5
|
-
name: z.string().optional(),
|
|
6
|
-
settings: z
|
|
7
|
-
.object({
|
|
8
|
-
general: z.object({
|
|
9
|
-
name: z.string(),
|
|
10
|
-
}),
|
|
11
|
-
})
|
|
12
|
-
.optional(),
|
|
13
|
-
});
|
|
14
3
|
export const projectsRouter = router({
|
|
15
|
-
list: privateProcedure.query(
|
|
16
|
-
.getServices()
|
|
17
|
-
.map(async (service) => {
|
|
18
|
-
const { contents } = await service.readDefinition();
|
|
19
|
-
const parseResult = simpleProjectDefinitionSchema.safeParse(JSON.parse(contents));
|
|
20
|
-
if (!parseResult.success) {
|
|
21
|
-
throw new Error(`Invalid project definition for ${service.directory}: ${parseResult.error.message}`);
|
|
22
|
-
}
|
|
23
|
-
const parsedContents = parseResult.data;
|
|
24
|
-
const name = parsedContents.name ?? parsedContents.settings?.general.name;
|
|
25
|
-
if (!name) {
|
|
26
|
-
throw new Error(`Invalid project definition for ${service.directory}: name is required`);
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
id: service.id,
|
|
30
|
-
name,
|
|
31
|
-
directory: service.directory,
|
|
32
|
-
};
|
|
33
|
-
}))),
|
|
4
|
+
list: privateProcedure.query(({ ctx }) => ctx.serviceManager.getServices().map((service) => service.project)),
|
|
34
5
|
readDefinition: privateProcedure
|
|
35
6
|
.input(z.object({
|
|
36
7
|
id: z.string(),
|
package/dist/api/projects.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIrD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;IACnC,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CACvC,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CACnE;IAED,cAAc,EAAE,gBAAgB;SAC7B,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;KACf,CAAC,CACH;SACA,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC,CAAC;IAEJ,oBAAoB,EAAE,gBAAgB;SACnC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SACnC,YAAY,CAAC,KAAK,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;QAC3D,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,GAAG;aAC5B,MAAM,CAAC,EAAE,CAAC;aACV,OAAO,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEJ,eAAe,EAAE,gBAAgB;SAC9B,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;KAC5B,CAAC,CACH;SACA,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACvE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACvE,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,CAAC;CACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BaseAppConfig, ProjectDefinitionContainer } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import { PackageCompiler } from './package-compiler.js';
|
|
3
|
+
export declare abstract class AppCompiler<TAppConfig extends BaseAppConfig> extends PackageCompiler {
|
|
4
|
+
protected readonly appConfig: TAppConfig;
|
|
5
|
+
constructor(definitionContainer: ProjectDefinitionContainer, appConfig: TAppConfig);
|
|
6
|
+
getPackageName(): string;
|
|
7
|
+
getPackageDirectory(): string;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=app-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-compiler.d.ts","sourceRoot":"","sources":["../../src/compiler/app-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1E,8BAAsB,WAAW,CAC/B,UAAU,SAAS,aAAa,CAChC,SAAQ,eAAe;IACvB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;gBAGvC,mBAAmB,EAAE,0BAA0B,EAC/C,SAAS,EAAE,UAAU;IAMvB,cAAc,IAAI,MAAM;IAMxB,mBAAmB,IAAI,MAAM;CAM9B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { buildPackageName, PackageCompiler } from './package-compiler.js';
|
|
2
|
+
export class AppCompiler extends PackageCompiler {
|
|
3
|
+
appConfig;
|
|
4
|
+
constructor(definitionContainer, appConfig) {
|
|
5
|
+
super(definitionContainer);
|
|
6
|
+
this.appConfig = appConfig;
|
|
7
|
+
}
|
|
8
|
+
getPackageName() {
|
|
9
|
+
const generalSettings = this.definitionContainer.definition.settings.general;
|
|
10
|
+
return buildPackageName(generalSettings, this.appConfig.name);
|
|
11
|
+
}
|
|
12
|
+
getPackageDirectory() {
|
|
13
|
+
const monorepoSettings = this.definitionContainer.definition.settings.monorepo;
|
|
14
|
+
const appsFolder = monorepoSettings?.appsFolder ?? 'apps';
|
|
15
|
+
return `${appsFolder}/${this.appConfig.name}`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=app-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-compiler.js","sourceRoot":"","sources":["../../src/compiler/app-compiler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,OAAgB,WAEpB,SAAQ,eAAe;IACJ,SAAS,CAAa;IAEzC,YACE,mBAA+C,EAC/C,SAAqB;QAErB,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,cAAc;QACZ,MAAM,eAAe,GACnB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvD,OAAO,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB;QACjB,MAAM,gBAAgB,GACpB,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxD,MAAM,UAAU,GAAG,gBAAgB,EAAE,UAAU,IAAI,MAAM,CAAC;QAC1D,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { AppCompiler,
|
|
1
|
+
import type { AppCompiler, AppEntryType, BackendAppConfig, BaseAppConfig, PluginImplementationStore, ProjectDefinition, ProjectDefinitionContainer } from '@baseplate-dev/project-builder-lib';
|
|
2
2
|
import type { GeneratorBundle } from '@baseplate-dev/sync';
|
|
3
|
+
import type { PackageEntry } from './package-entry.js';
|
|
3
4
|
export declare class AppEntryBuilder<AppConfig extends BaseAppConfig = BaseAppConfig> {
|
|
4
5
|
definitionContainer: ProjectDefinitionContainer;
|
|
5
6
|
appConfig: AppConfig;
|
|
@@ -10,9 +11,9 @@ export declare class AppEntryBuilder<AppConfig extends BaseAppConfig = BaseAppCo
|
|
|
10
11
|
constructor(definitionContainer: ProjectDefinitionContainer, appConfig: AppConfig, appConfigType: AppEntryType<AppConfig>);
|
|
11
12
|
nameFromId(id: string): string;
|
|
12
13
|
/**
|
|
13
|
-
* Builds
|
|
14
|
+
* Builds a PackageEntry from the root bundle
|
|
14
15
|
*/
|
|
15
|
-
buildProjectEntry(rootBundle: GeneratorBundle):
|
|
16
|
+
buildProjectEntry(rootBundle: GeneratorBundle, packageDirectory: string): PackageEntry;
|
|
16
17
|
}
|
|
17
18
|
export type BackendAppEntryBuilder = AppEntryBuilder<BackendAppConfig>;
|
|
18
19
|
//# sourceMappingURL=app-entry-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-entry-builder.d.ts","sourceRoot":"","sources":["../../src/compiler/app-entry-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"app-entry-builder.d.ts","sourceRoot":"","sources":["../../src/compiler/app-entry-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,qBAAa,eAAe,CAAC,SAAS,SAAS,aAAa,GAAG,aAAa;IAQjE,mBAAmB,EAAE,0BAA0B;IAC/C,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;IATxC,iBAAiB,EAAE,iBAAiB,CAAC;IAErC,WAAW,EAAE,yBAAyB,CAAC;IAEvC,WAAW,EAAE,WAAW,CAAC;gBAGvB,mBAAmB,EAAE,0BAA0B,EAC/C,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,YAAY,CAAC,SAAS,CAAC;IAoB/C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAK9B;;OAEG;IACH,iBAAiB,CACf,UAAU,EAAE,eAAe,EAC3B,gBAAgB,EAAE,MAAM,GACvB,YAAY;CAQhB;AAED,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { appCompilerSpec,
|
|
1
|
+
import { appCompilerSpec, createAppCompiler, } from '@baseplate-dev/project-builder-lib';
|
|
2
2
|
export class AppEntryBuilder {
|
|
3
3
|
definitionContainer;
|
|
4
4
|
appConfig;
|
|
@@ -29,13 +29,13 @@ export class AppEntryBuilder {
|
|
|
29
29
|
return this.definitionContainer.nameFromId(id);
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* Builds
|
|
32
|
+
* Builds a PackageEntry from the root bundle
|
|
33
33
|
*/
|
|
34
|
-
buildProjectEntry(rootBundle) {
|
|
34
|
+
buildProjectEntry(rootBundle, packageDirectory) {
|
|
35
35
|
return {
|
|
36
36
|
id: this.appConfig.id,
|
|
37
37
|
name: this.appConfig.name,
|
|
38
|
-
|
|
38
|
+
packageDirectory,
|
|
39
39
|
generatorBundle: rootBundle,
|
|
40
40
|
};
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-entry-builder.js","sourceRoot":"","sources":["../../src/compiler/app-entry-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-entry-builder.js","sourceRoot":"","sources":["../../src/compiler/app-entry-builder.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,eAAe,EACf,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAI5C,MAAM,OAAO,eAAe;IAQjB;IACA;IACA;IATF,iBAAiB,CAAoB;IAErC,WAAW,CAA4B;IAEvC,WAAW,CAAc;IAEhC,YACS,mBAA+C,EAC/C,SAAoB,EACpB,aAAsC;QAFtC,wBAAmB,GAAnB,mBAAmB,CAA4B;QAC/C,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAyB;QAE7C,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;QAEnD,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAEzE,MAAM,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QACxE,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,OAAO,CAAC;gBACf,aAAa,EAAE,SAAS;gBACxB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAGD,UAAU,CAAC,EAAsB;QAC/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,UAA2B,EAC3B,gBAAwB;QAExB,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YACzB,gBAAgB;YAChB,eAAe,EAAE,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BackendAppConfig } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { PackageTasks } from '../package-compiler.js';
|
|
3
|
+
import type { PackageEntry } from '../package-entry.js';
|
|
4
|
+
import { AppCompiler } from '../app-compiler.js';
|
|
5
|
+
/**
|
|
6
|
+
* Compiler for backend packages
|
|
7
|
+
*
|
|
8
|
+
* Generates a Fastify-based backend application with:
|
|
9
|
+
* - Fastify application with GraphQL (Pothos) and REST endpoints
|
|
10
|
+
* - Vitest testing setup
|
|
11
|
+
* - Plugin-contributed generators (auth, storage, etc.)
|
|
12
|
+
*/
|
|
13
|
+
export declare class BackendPackageCompiler extends AppCompiler<BackendAppConfig> {
|
|
14
|
+
compile(): PackageEntry;
|
|
15
|
+
getTasks(): PackageTasks;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=backend-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/backend-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAQ3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IACvE,OAAO,IAAI,YAAY;IA0BvB,QAAQ,IAAI,YAAY;CAOzB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { composeNodeGenerator, vitestGenerator, } from '@baseplate-dev/core-generators';
|
|
2
|
+
import { backendAppEntryType } from '@baseplate-dev/project-builder-lib';
|
|
3
|
+
import { AppCompiler } from '../app-compiler.js';
|
|
4
|
+
import { buildPackageName, createAppEntryBuilderForPackage, } from '../package-compiler.js';
|
|
5
|
+
import { buildFastify } from './fastify.js';
|
|
6
|
+
/**
|
|
7
|
+
* Compiler for backend packages
|
|
8
|
+
*
|
|
9
|
+
* Generates a Fastify-based backend application with:
|
|
10
|
+
* - Fastify application with GraphQL (Pothos) and REST endpoints
|
|
11
|
+
* - Vitest testing setup
|
|
12
|
+
* - Plugin-contributed generators (auth, storage, etc.)
|
|
13
|
+
*/
|
|
14
|
+
export class BackendPackageCompiler extends AppCompiler {
|
|
15
|
+
compile() {
|
|
16
|
+
const appBuilder = createAppEntryBuilderForPackage(this.definitionContainer, this.appConfig, backendAppEntryType);
|
|
17
|
+
const { projectDefinition } = appBuilder;
|
|
18
|
+
const generalSettings = projectDefinition.settings.general;
|
|
19
|
+
const packageName = buildPackageName(generalSettings, this.appConfig.name);
|
|
20
|
+
const rootBundle = composeNodeGenerator({
|
|
21
|
+
name: `${generalSettings.name}-${this.appConfig.name}`,
|
|
22
|
+
packageName,
|
|
23
|
+
description: `Backend app for ${generalSettings.name}`,
|
|
24
|
+
version: '1.0.0',
|
|
25
|
+
children: {
|
|
26
|
+
fastify: buildFastify(appBuilder, this.appConfig),
|
|
27
|
+
vitest: vitestGenerator({}),
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return appBuilder.buildProjectEntry(rootBundle, this.getPackageDirectory());
|
|
31
|
+
}
|
|
32
|
+
getTasks() {
|
|
33
|
+
return {
|
|
34
|
+
build: ['build'],
|
|
35
|
+
dev: ['dev'],
|
|
36
|
+
watch: [],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=backend-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-compiler.js","sourceRoot":"","sources":["../../../src/compiler/backend/backend-compiler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAKzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAA6B;IACvE,OAAO;QACL,MAAM,UAAU,GAAG,+BAA+B,CAChD,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,SAAS,EACd,mBAAmB,CACpB,CAAC;QAEF,MAAM,EAAE,iBAAiB,EAAE,GAAG,UAAU,CAAC;QACzC,MAAM,eAAe,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAE3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE3E,MAAM,UAAU,GAAG,oBAAoB,CAAC;YACtC,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACtD,WAAW;YACX,WAAW,EAAE,mBAAmB,eAAe,CAAC,IAAI,EAAE;YACtD,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjD,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC;aAC5B;SACF,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,QAAQ;QACN,OAAO;YACL,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,GAAG,EAAE,CAAC,KAAK,CAAC;YACZ,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/fastify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA0B3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/fastify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA0B3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAStE,wBAAgB,YAAY,CAC1B,OAAO,EAAE,sBAAsB,EAC/B,GAAG,EAAE,gBAAgB,GACpB,eAAe,CA8DjB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { appModuleGenerator, axiosGenerator, bullMqGenerator, composeFastifyApplication, fastifyBullBoardGenerator, fastifyPostmarkGenerator, fastifyRedisGenerator, fastifySentryGenerator, fastifyServerGenerator, fastifyStripeGenerator, pothosGenerator, pothosPrismaGenerator, pothosScalarGenerator, pothosSentryGenerator, prismaGenerator,
|
|
1
|
+
import { appModuleGenerator, axiosGenerator, bullMqGenerator, composeFastifyApplication, dataUtilsGenerator, fastifyBullBoardGenerator, fastifyPostmarkGenerator, fastifyRedisGenerator, fastifySentryGenerator, fastifyServerGenerator, fastifyStripeGenerator, pothosGenerator, pothosPrismaGenerator, pothosScalarGenerator, pothosSentryGenerator, prismaGenerator, prismaVitestGenerator, readmeGenerator, yogaPluginGenerator, } from '@baseplate-dev/fastify-generators';
|
|
2
2
|
import { FeatureUtils } from '@baseplate-dev/project-builder-lib';
|
|
3
3
|
import { safeMergeAll } from '@baseplate-dev/utils';
|
|
4
|
+
import { getPostgresSettings, getRedisSettings, isRedisEnabled, } from '../infrastructure-utils.js';
|
|
4
5
|
import { buildFeature } from './feature.js';
|
|
5
|
-
import { getPostgresSettings, getRedisSettings } from './utils.js';
|
|
6
6
|
export function buildFastify(builder, app) {
|
|
7
7
|
const { projectDefinition, appCompiler } = builder;
|
|
8
8
|
const rootFeatures = FeatureUtils.getRootFeatures(projectDefinition);
|
|
@@ -15,6 +15,8 @@ export function buildFastify(builder, app) {
|
|
|
15
15
|
pothosScalarGenerator({ type: 'uuid' }),
|
|
16
16
|
pothosScalarGenerator({ type: 'dateTime' }),
|
|
17
17
|
pothosScalarGenerator({ type: 'date' }),
|
|
18
|
+
pothosScalarGenerator({ type: 'json' }),
|
|
19
|
+
pothosScalarGenerator({ type: 'jsonObject' }),
|
|
18
20
|
],
|
|
19
21
|
},
|
|
20
22
|
});
|
|
@@ -27,7 +29,7 @@ export function buildFastify(builder, app) {
|
|
|
27
29
|
projectName: `${projectDefinition.settings.general.name} backend`,
|
|
28
30
|
}),
|
|
29
31
|
sentry: fastifySentryGenerator({}),
|
|
30
|
-
redis:
|
|
32
|
+
redis: isRedisEnabled(projectDefinition)
|
|
31
33
|
? fastifyRedisGenerator({
|
|
32
34
|
defaultUrl: getRedisSettings(projectDefinition).url,
|
|
33
35
|
})
|
|
@@ -44,7 +46,7 @@ export function buildFastify(builder, app) {
|
|
|
44
46
|
defaultDatabaseUrl: getPostgresSettings(projectDefinition).url,
|
|
45
47
|
}),
|
|
46
48
|
prismaVitest: prismaVitestGenerator({}),
|
|
47
|
-
|
|
49
|
+
dataUtils: dataUtilsGenerator({}),
|
|
48
50
|
yoga: yogaPluginGenerator({
|
|
49
51
|
enableSubscriptions: app.enableSubscriptions,
|
|
50
52
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../../src/compiler/backend/fastify.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../../src/compiler/backend/fastify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiB3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiB3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAkNtE,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,GAChB,eAAe,EAAE,CAmBnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { pothosAuthorizeFieldGenerator, pothosEnumsFileGenerator, pothosPrismaCrudMutationGenerator, pothosPrismaEnumGenerator, pothosPrismaFindQueryGenerator, pothosPrismaListQueryGenerator, pothosPrismaObjectGenerator, pothosPrismaPrimaryKeyGenerator, pothosTypesFileGenerator, } from '@baseplate-dev/fastify-generators';
|
|
2
2
|
import { authConfigSpec, ModelUtils } from '@baseplate-dev/project-builder-lib';
|
|
3
|
-
import { notEmpty } from '@baseplate-dev/utils';
|
|
3
|
+
import { notEmpty, uppercaseFirstChar } from '@baseplate-dev/utils';
|
|
4
4
|
import { kebabCase } from 'change-case';
|
|
5
5
|
function buildObjectTypeFile(appBuilder, model) {
|
|
6
6
|
const { graphql } = model;
|
|
@@ -90,8 +90,7 @@ function buildMutationsFileForModel(appBuilder, model) {
|
|
|
90
90
|
const isAuthEnabled = !!authConfig;
|
|
91
91
|
const sharedMutationConfig = {
|
|
92
92
|
modelName: model.name,
|
|
93
|
-
crudServiceRef: `prisma-
|
|
94
|
-
hasPrimaryKeyInputType: ModelUtils.getModelIdFields(model).length > 1,
|
|
93
|
+
crudServiceRef: `prisma-data-service:${model.name}`,
|
|
95
94
|
};
|
|
96
95
|
return pothosTypesFileGenerator({
|
|
97
96
|
id: `${model.id}-mutations`,
|
|
@@ -101,7 +100,7 @@ function buildMutationsFileForModel(appBuilder, model) {
|
|
|
101
100
|
? pothosPrismaCrudMutationGenerator({
|
|
102
101
|
...sharedMutationConfig,
|
|
103
102
|
order: 0,
|
|
104
|
-
|
|
103
|
+
name: `create${uppercaseFirstChar(model.name)}`,
|
|
105
104
|
children: {
|
|
106
105
|
authorize: isAuthEnabled && create.roles
|
|
107
106
|
? pothosAuthorizeFieldGenerator({
|
|
@@ -115,7 +114,7 @@ function buildMutationsFileForModel(appBuilder, model) {
|
|
|
115
114
|
? pothosPrismaCrudMutationGenerator({
|
|
116
115
|
...sharedMutationConfig,
|
|
117
116
|
order: 1,
|
|
118
|
-
|
|
117
|
+
name: `update${uppercaseFirstChar(model.name)}`,
|
|
119
118
|
children: {
|
|
120
119
|
authorize: isAuthEnabled && update.roles
|
|
121
120
|
? pothosAuthorizeFieldGenerator({
|
|
@@ -129,7 +128,7 @@ function buildMutationsFileForModel(appBuilder, model) {
|
|
|
129
128
|
? pothosPrismaCrudMutationGenerator({
|
|
130
129
|
...sharedMutationConfig,
|
|
131
130
|
order: 2,
|
|
132
|
-
|
|
131
|
+
name: `delete${uppercaseFirstChar(model.name)}`,
|
|
133
132
|
children: {
|
|
134
133
|
authorize: isAuthEnabled && del.roles
|
|
135
134
|
? pothosAuthorizeFieldGenerator({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,iCAAiC,EACjC,yBAAyB,EACzB,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/compiler/backend/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function compileBackend(definitionContainer: ProjectDefinitionContainer, app: BackendAppConfig): AppEntry;
|
|
1
|
+
export { BackendPackageCompiler } from './backend-compiler.js';
|
|
3
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,34 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { backendAppEntryType } from '@baseplate-dev/project-builder-lib';
|
|
3
|
-
import { AppEntryBuilder } from '../app-entry-builder.js';
|
|
4
|
-
import { buildFastify } from './fastify.js';
|
|
5
|
-
import { getPostgresSettings, getRedisSettings } from './utils.js';
|
|
6
|
-
function buildDocker(projectDefinition, app) {
|
|
7
|
-
return dockerComposeGenerator({
|
|
8
|
-
postgres: getPostgresSettings(projectDefinition).config,
|
|
9
|
-
...(app.enableRedis
|
|
10
|
-
? { redis: getRedisSettings(projectDefinition).config }
|
|
11
|
-
: {}),
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
export function compileBackend(definitionContainer, app) {
|
|
15
|
-
const appBuilder = new AppEntryBuilder(definitionContainer, app, backendAppEntryType);
|
|
16
|
-
const { projectDefinition } = appBuilder;
|
|
17
|
-
const generalSettings = projectDefinition.settings.general;
|
|
18
|
-
const packageName = generalSettings.packageScope
|
|
19
|
-
? `@${generalSettings.packageScope}/${app.name}`
|
|
20
|
-
: `${generalSettings.name}-${app.name}`;
|
|
21
|
-
const rootBundle = composeNodeGenerator({
|
|
22
|
-
name: `${generalSettings.name}-${app.name}`,
|
|
23
|
-
packageName,
|
|
24
|
-
description: `Backend app for ${generalSettings.name}`,
|
|
25
|
-
version: '1.0.0',
|
|
26
|
-
children: {
|
|
27
|
-
docker: buildDocker(projectDefinition, app),
|
|
28
|
-
fastify: buildFastify(appBuilder, app),
|
|
29
|
-
vitest: vitestGenerator({}),
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
return appBuilder.buildProjectEntry(rootBundle);
|
|
33
|
-
}
|
|
1
|
+
export { BackendPackageCompiler } from './backend-compiler.js';
|
|
34
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/compiler/backend/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/compiler/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/services.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/compiler/backend/services.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiB3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AA6HtE,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,GAChB,eAAe,EAAE,CAcnB"}
|
|
@@ -1,77 +1,79 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { modelTransformerCompilerSpec, ModelUtils,
|
|
3
|
-
import { notEmpty } from '@baseplate-dev/utils';
|
|
1
|
+
import { prismaDataCreateGenerator, prismaDataDeleteGenerator, prismaDataNestedFieldGenerator, prismaDataServiceGenerator, prismaDataUpdateGenerator, serviceFileGenerator, } from '@baseplate-dev/fastify-generators';
|
|
2
|
+
import { modelTransformerCompilerSpec, ModelUtils, } from '@baseplate-dev/project-builder-lib';
|
|
3
|
+
import { notEmpty, uppercaseFirstChar } from '@baseplate-dev/utils';
|
|
4
4
|
import { kebabCase } from 'change-case';
|
|
5
5
|
const embeddedRelationTransformerCompiler = {
|
|
6
6
|
name: 'embeddedRelation',
|
|
7
|
-
|
|
7
|
+
compileField(definition, { definitionContainer, model }) {
|
|
8
8
|
// find foreign relation
|
|
9
|
-
const
|
|
10
|
-
if (!
|
|
11
|
-
throw new Error(`Could not find relation ${definition.foreignRelationRef} for
|
|
9
|
+
const nestedRelation = ModelUtils.getRelationsToModel(definitionContainer.definition, model.id).find(({ relation }) => relation.foreignId === definition.foreignRelationRef);
|
|
10
|
+
if (!nestedRelation) {
|
|
11
|
+
throw new Error(`Could not find relation ${definition.foreignRelationRef} for nested relation field`);
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
? foreignModel.name
|
|
20
|
-
: undefined,
|
|
13
|
+
return prismaDataNestedFieldGenerator({
|
|
14
|
+
modelName: model.name,
|
|
15
|
+
relationName: definitionContainer.nameFromId(definition.foreignRelationRef),
|
|
16
|
+
nestedModelName: nestedRelation.model.name,
|
|
17
|
+
scalarFieldNames: definition.embeddedFieldNames.map((e) => definitionContainer.nameFromId(e)),
|
|
18
|
+
virtualInputFieldNames: definition.embeddedTransformerNames?.map((t) => definitionContainer.nameFromId(t)),
|
|
21
19
|
});
|
|
22
20
|
},
|
|
23
21
|
};
|
|
24
|
-
|
|
25
|
-
name: 'password',
|
|
26
|
-
compileTransformer() {
|
|
27
|
-
return prismaPasswordTransformerGenerator({});
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
function buildTransformer(appBuilder, transformer, model) {
|
|
22
|
+
function buildVirtualInputField(appBuilder, transformer, model) {
|
|
31
23
|
const { pluginStore } = appBuilder;
|
|
32
24
|
const compilerImplementation = pluginStore.getPluginSpec(modelTransformerCompilerSpec);
|
|
33
|
-
const compiler = compilerImplementation.getModelTransformerCompiler(transformer.type, [embeddedRelationTransformerCompiler
|
|
34
|
-
return compiler.
|
|
25
|
+
const compiler = compilerImplementation.getModelTransformerCompiler(transformer.type, [embeddedRelationTransformerCompiler]);
|
|
26
|
+
return compiler.compileField(transformer, {
|
|
35
27
|
definitionContainer: appBuilder.definitionContainer,
|
|
36
28
|
model,
|
|
37
29
|
});
|
|
38
30
|
}
|
|
39
|
-
function
|
|
40
|
-
const { service } = model;
|
|
31
|
+
function buildDataServiceForModel(appBuilder, model) {
|
|
41
32
|
if (!ModelUtils.hasService(model)) {
|
|
42
33
|
return undefined;
|
|
43
34
|
}
|
|
35
|
+
const createFields = model.service.create.enabled
|
|
36
|
+
? (model.service.create.fields?.map((f) => appBuilder.nameFromId(f)) ?? [])
|
|
37
|
+
: [];
|
|
38
|
+
const updateFields = model.service.update.enabled
|
|
39
|
+
? (model.service.update.fields?.map((f) => appBuilder.nameFromId(f)) ?? [])
|
|
40
|
+
: [];
|
|
41
|
+
const allFields = [...new Set([...createFields, ...updateFields])];
|
|
44
42
|
return serviceFileGenerator({
|
|
45
|
-
name: `${model.name}
|
|
46
|
-
id: `prisma-
|
|
47
|
-
fileName: `${kebabCase(model.name)}.
|
|
43
|
+
name: `${model.name}DataService`,
|
|
44
|
+
id: `prisma-data-service:${model.name}`,
|
|
45
|
+
fileName: `${kebabCase(model.name)}.data-service`,
|
|
48
46
|
children: {
|
|
49
|
-
$
|
|
47
|
+
$data: prismaDataServiceGenerator({
|
|
50
48
|
modelName: model.name,
|
|
49
|
+
modelFieldNames: allFields,
|
|
51
50
|
children: {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
$fields: model.service.transformers
|
|
52
|
+
.map((transfomer) => buildVirtualInputField(appBuilder, transfomer, model))
|
|
53
|
+
.filter(notEmpty),
|
|
54
|
+
$create: createFields.length > 0
|
|
55
|
+
? prismaDataCreateGenerator({
|
|
56
|
+
name: `create${uppercaseFirstChar(model.name)}`,
|
|
57
57
|
modelName: model.name,
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
fields: [
|
|
59
|
+
...createFields,
|
|
60
|
+
...(model.service.create.transformerNames?.map((t) => appBuilder.nameFromId(t)) ?? []),
|
|
61
|
+
],
|
|
60
62
|
})
|
|
61
63
|
: undefined,
|
|
62
|
-
update:
|
|
63
|
-
?
|
|
64
|
-
name:
|
|
65
|
-
order: 2,
|
|
64
|
+
$update: updateFields.length > 0
|
|
65
|
+
? prismaDataUpdateGenerator({
|
|
66
|
+
name: `update${uppercaseFirstChar(model.name)}`,
|
|
66
67
|
modelName: model.name,
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
fields: [
|
|
69
|
+
...updateFields,
|
|
70
|
+
...(model.service.update.transformerNames?.map((t) => appBuilder.nameFromId(t)) ?? []),
|
|
71
|
+
],
|
|
69
72
|
})
|
|
70
73
|
: undefined,
|
|
71
|
-
delete: service.delete.enabled
|
|
72
|
-
?
|
|
73
|
-
name:
|
|
74
|
-
order: 3,
|
|
74
|
+
$delete: model.service.delete.enabled
|
|
75
|
+
? prismaDataDeleteGenerator({
|
|
76
|
+
name: `delete${uppercaseFirstChar(model.name)}`,
|
|
75
77
|
modelName: model.name,
|
|
76
78
|
})
|
|
77
79
|
: undefined,
|
|
@@ -86,7 +88,7 @@ export function buildServicesForFeature(appBuilder, featureId) {
|
|
|
86
88
|
!!m.service.delete.enabled ||
|
|
87
89
|
m.service.transformers.length > 0);
|
|
88
90
|
return models
|
|
89
|
-
.map((model) =>
|
|
91
|
+
.map((model) => buildDataServiceForModel(appBuilder, model))
|
|
90
92
|
.filter(notEmpty);
|
|
91
93
|
}
|
|
92
94
|
//# sourceMappingURL=services.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/compiler/backend/services.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/compiler/backend/services.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SchemaParserContext } from '@baseplate-dev/project-builder-lib';
|
|
2
|
+
import type { PackageEntry } from './package-entry.js';
|
|
3
|
+
/**
|
|
4
|
+
* Compile all packages in a project definition
|
|
5
|
+
*
|
|
6
|
+
* Root package is compiled first, then backend apps, then other apps.
|
|
7
|
+
*
|
|
8
|
+
* @param projectJson - Serialized project definition JSON
|
|
9
|
+
* @param context - Schema parser context
|
|
10
|
+
* @returns Array of compiled package entries with generator bundles (root first, then apps)
|
|
11
|
+
*/
|
|
12
|
+
export declare function compilePackages(projectJson: unknown, context: SchemaParserContext): PackageEntry[];
|
|
13
|
+
//# sourceMappingURL=compile-packages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-packages.d.ts","sourceRoot":"","sources":["../../src/compiler/compile-packages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAS5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8BvD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,mBAAmB,GAC3B,YAAY,EAAE,CA2BhB"}
|