vibe-squire 4.0.1 → 5.0.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/configure-fastify-app.d.ts +2 -0
- package/dist/configure-fastify-app.js +62 -0
- package/dist/configure-fastify-app.js.map +1 -0
- package/dist/graphql/graphql.module.js +28 -25
- package/dist/graphql/graphql.module.js.map +1 -1
- package/dist/main.js +4 -8
- package/dist/main.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/dist/configure-express-app.d.ts +0 -2
- package/dist/configure-express-app.js +0 -84
- package/dist/configure-express-app.js.map +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.configureFastifyApp = configureFastifyApp;
|
|
7
|
+
const node_fs_1 = require("node:fs");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const static_1 = __importDefault(require("@fastify/static"));
|
|
10
|
+
const CLIENT_INDEX = 'index.html';
|
|
11
|
+
function resolveClientRoot() {
|
|
12
|
+
const distClient = (0, node_path_1.join)(__dirname, 'client');
|
|
13
|
+
const monorepoDev = (0, node_path_1.join)(__dirname, '../../web/dist');
|
|
14
|
+
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(distClient, CLIENT_INDEX))) {
|
|
15
|
+
return distClient;
|
|
16
|
+
}
|
|
17
|
+
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(monorepoDev, CLIENT_INDEX))) {
|
|
18
|
+
return monorepoDev;
|
|
19
|
+
}
|
|
20
|
+
return distClient;
|
|
21
|
+
}
|
|
22
|
+
function shouldSkipSpaFallback(pathname, nodeEnv) {
|
|
23
|
+
if (pathname === '/api' || pathname.startsWith('/api/')) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (pathname === '/graphql' || pathname.startsWith('/graphql/')) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (nodeEnv !== 'production' && pathname.startsWith('/graphiql')) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
async function configureFastifyApp(app) {
|
|
35
|
+
const clientRoot = resolveClientRoot();
|
|
36
|
+
const indexPath = (0, node_path_1.join)(clientRoot, CLIENT_INDEX);
|
|
37
|
+
const indexHtml = (0, node_fs_1.existsSync)(indexPath)
|
|
38
|
+
? (0, node_fs_1.readFileSync)(indexPath, 'utf8')
|
|
39
|
+
: null;
|
|
40
|
+
await app.register(static_1.default, {
|
|
41
|
+
root: clientRoot,
|
|
42
|
+
prefix: '/',
|
|
43
|
+
wildcard: false,
|
|
44
|
+
maxAge: '1h',
|
|
45
|
+
});
|
|
46
|
+
const instance = app.getHttpAdapter().getInstance();
|
|
47
|
+
instance.addHook('onRequest', (req, reply, done) => {
|
|
48
|
+
const method = req.method;
|
|
49
|
+
const pathname = req.url.split('?')[0] ?? '/';
|
|
50
|
+
const hasFileExtension = pathname.includes('.');
|
|
51
|
+
if ((method !== 'GET' && method !== 'HEAD') ||
|
|
52
|
+
shouldSkipSpaFallback(pathname, process.env.NODE_ENV) ||
|
|
53
|
+
hasFileExtension ||
|
|
54
|
+
indexHtml === null) {
|
|
55
|
+
done();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
reply.type('text/html; charset=utf-8').send(indexHtml);
|
|
59
|
+
done();
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=configure-fastify-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure-fastify-app.js","sourceRoot":"","sources":["../src/configure-fastify-app.ts"],"names":[],"mappings":";;;;;AA6CA,kDAmCC;AAhFD,qCAAmD;AACnD,yCAAiC;AACjC,6DAA4C;AAG5C,MAAM,YAAY,GAAG,YAAY,CAAC;AAOlC,SAAS,iBAAiB;IACxB,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAEtD,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,OAA2B;IAE3B,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,YAAY,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAMM,KAAK,UAAU,mBAAmB,CACvC,GAA2B;IAE3B,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAA,oBAAU,EAAC,SAAS,CAAC;QACrC,CAAC,CAAC,IAAA,sBAAY,EAAC,SAAS,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAa,EAAE;QAChC,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAC9C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhD,IACE,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;YACvC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YACrD,gBAAgB;YAChB,SAAS,KAAK,IAAI,EAClB,CAAC;YACD,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -9,10 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.GraphqlModule = void 0;
|
|
10
10
|
const node_path_1 = require("node:path");
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
|
-
const
|
|
13
|
-
const disabled_1 = require("@apollo/server/plugin/disabled");
|
|
14
|
-
const apollo_1 = require("@nestjs/apollo");
|
|
12
|
+
const mercurius_1 = require("@nestjs/mercurius");
|
|
15
13
|
const graphql_1 = require("@nestjs/graphql");
|
|
14
|
+
const graphql_2 = require("graphql");
|
|
16
15
|
const app_env_token_1 = require("../config/app-env.token");
|
|
17
16
|
const health_resolver_1 = require("./health.resolver");
|
|
18
17
|
const SCHEMA_FILE = (0, node_path_1.join)(process.cwd(), 'src/generated/schema.graphql');
|
|
@@ -26,7 +25,7 @@ exports.GraphqlModule = GraphqlModule = __decorate([
|
|
|
26
25
|
(0, common_1.Module)({
|
|
27
26
|
imports: [
|
|
28
27
|
graphql_1.GraphQLModule.forRootAsync({
|
|
29
|
-
driver:
|
|
28
|
+
driver: mercurius_1.MercuriusDriver,
|
|
30
29
|
inject: [app_env_token_1.APP_ENV],
|
|
31
30
|
useFactory: (appEnv) => {
|
|
32
31
|
const prod = isProduction(appEnv.nodeEnv);
|
|
@@ -34,27 +33,31 @@ exports.GraphqlModule = GraphqlModule = __decorate([
|
|
|
34
33
|
path: '/graphql',
|
|
35
34
|
autoSchemaFile: SCHEMA_FILE,
|
|
36
35
|
sortSchema: true,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
graphiql: !prod,
|
|
37
|
+
subscription: true,
|
|
38
|
+
validationRules: prod ? [graphql_2.NoSchemaIntrospectionCustomRule] : [],
|
|
39
|
+
errorFormatter(execution) {
|
|
40
|
+
const errors = execution.errors.map((error) => {
|
|
41
|
+
const formatted = error.toJSON();
|
|
42
|
+
const orig = error.originalError;
|
|
43
|
+
if (orig instanceof common_1.HttpException) {
|
|
44
|
+
return {
|
|
45
|
+
...formatted,
|
|
46
|
+
extensions: {
|
|
47
|
+
...formatted.extensions,
|
|
48
|
+
statusCode: orig.getStatus(),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return formatted;
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
statusCode: 200,
|
|
56
|
+
response: {
|
|
57
|
+
data: execution.data ?? null,
|
|
58
|
+
errors,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
58
61
|
},
|
|
59
62
|
};
|
|
60
63
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.module.js","sourceRoot":"","sources":["../../src/graphql/graphql.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yCAAiC;AACjC,2CAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"graphql.module.js","sourceRoot":"","sources":["../../src/graphql/graphql.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yCAAiC;AACjC,2CAAuD;AACvD,iDAA2E;AAC3E,6CAAgD;AAChD,qCAA0D;AAC1D,2DAA+D;AAC/D,uDAAmD;AAEnD,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC;AAExE,SAAS,YAAY,CAAC,OAA2B;IAC/C,OAAO,OAAO,KAAK,YAAY,CAAC;AAClC,CAAC;AA6CM,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IA3CzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,YAAY,CAAwB;gBAChD,MAAM,EAAE,2BAAe;gBACvB,MAAM,EAAE,CAAC,uBAAO,CAAC;gBACjB,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE;oBAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,OAAO;wBACL,IAAI,EAAE,UAAU;wBAChB,cAAc,EAAE,WAAW;wBAC3B,UAAU,EAAE,IAAI;wBAChB,QAAQ,EAAE,CAAC,IAAI;wBACf,YAAY,EAAE,IAAI;wBAClB,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,yCAA+B,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC9D,cAAc,CAAC,SAAS;4BACtB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gCACjC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;gCACjC,IAAI,IAAI,YAAY,sBAAa,EAAE,CAAC;oCAClC,OAAO;wCACL,GAAG,SAAS;wCACZ,UAAU,EAAE;4CACV,GAAG,SAAS,CAAC,UAAU;4CACvB,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;yCAC7B;qCACF,CAAC;gCACJ,CAAC;gCACD,OAAO,SAAS,CAAC;4BACnB,CAAC,CAAC,CAAC;4BACH,OAAO;gCACL,UAAU,EAAE,GAAG;gCACf,QAAQ,EAAE;oCACR,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI;oCAC5B,MAAM;iCACP;6BACF,CAAC;wBACJ,CAAC;qBACF,CAAC;gBACJ,CAAC;aACF,CAAC;SACH;QACD,SAAS,EAAE,CAAC,gCAAc,CAAC;KAC5B,CAAC;GACW,aAAa,CAAG"}
|
package/dist/main.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
require("./load-dotenv");
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
4
|
const core_1 = require("@nestjs/core");
|
|
5
|
+
const platform_fastify_1 = require("@nestjs/platform-fastify");
|
|
6
6
|
const nestjs_pino_1 = require("nestjs-pino");
|
|
7
7
|
const app_module_1 = require("./app.module");
|
|
8
|
-
const
|
|
8
|
+
const configure_fastify_app_1 = require("./configure-fastify-app");
|
|
9
9
|
const env_schema_1 = require("./config/env-schema");
|
|
10
10
|
const resolve_database_url_1 = require("./database/resolve-database-url");
|
|
11
11
|
const sqlite_migrate_1 = require("./database/sqlite-migrate");
|
|
@@ -13,16 +13,12 @@ async function bootstrap() {
|
|
|
13
13
|
(0, resolve_database_url_1.ensureDatabaseUrlFromEnv)();
|
|
14
14
|
(0, sqlite_migrate_1.runSqliteMigrations)((0, resolve_database_url_1.databaseUrlToFilePath)(process.env.DATABASE_URL));
|
|
15
15
|
const env = (0, env_schema_1.parseAppEnv)();
|
|
16
|
-
const app = await core_1.NestFactory.create(app_module_1.AppModule.forRoot(env), {
|
|
16
|
+
const app = await core_1.NestFactory.create(app_module_1.AppModule.forRoot(env), new platform_fastify_1.FastifyAdapter(), {
|
|
17
17
|
bufferLogs: true,
|
|
18
18
|
});
|
|
19
|
-
(0,
|
|
19
|
+
await (0, configure_fastify_app_1.configureFastifyApp)(app);
|
|
20
20
|
app.enableCors({ origin: true });
|
|
21
21
|
app.useLogger(app.get(nestjs_pino_1.Logger));
|
|
22
|
-
app.useGlobalPipes(new common_1.ValidationPipe({
|
|
23
|
-
whitelist: false,
|
|
24
|
-
transform: true,
|
|
25
|
-
}));
|
|
26
22
|
await app.listen(env.port, env.host);
|
|
27
23
|
const logger = app.get(nestjs_pino_1.Logger);
|
|
28
24
|
logger.log(`HTTP server listening on ${await app.getUrl()}`);
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,yBAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,yBAAuB;AACvB,uCAA2C;AAC3C,+DAGkC;AAClC,6CAAqC;AACrC,6CAAyC;AACzC,mEAA8D;AAC9D,oDAAkD;AAClD,0EAGyC;AACzC,8DAAgE;AAEhE,KAAK,UAAU,SAAS;IACtB,IAAA,+CAAwB,GAAE,CAAC;IAC3B,IAAA,oCAAmB,EAAC,IAAA,4CAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,YAAa,CAAC,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,IAAA,wBAAW,GAAE,CAAC;IAE1B,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAClC,sBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EACtB,IAAI,iCAAc,EAAE,EACpB;QACE,UAAU,EAAE,IAAI;KACjB,CACF,CAAC;IACF,MAAM,IAAA,2CAAmB,EAAC,GAAG,CAAC,CAAC;IAC/B,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAC,CAAC;IAE/B,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,4BAA4B,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,SAAS,EAAE,CAAC"}
|