@platformatic/vite 3.0.0-alpha.5 → 3.0.0-alpha.6

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/config.d.ts CHANGED
@@ -114,6 +114,9 @@ export interface PlatformaticViteConfig {
114
114
  runtime?: {
115
115
  preload?: string | string[];
116
116
  basePath?: string;
117
+ services?: {
118
+ [k: string]: unknown;
119
+ }[];
117
120
  workers?: number | string;
118
121
  logger?: {
119
122
  level: (
@@ -201,7 +204,7 @@ export interface PlatformaticViteConfig {
201
204
  restartOnError?: boolean | number;
202
205
  gracefulShutdown?: {
203
206
  runtime: number | string;
204
- service: number | string;
207
+ application: number | string;
205
208
  };
206
209
  health?: {
207
210
  enabled?: boolean | string;
@@ -320,11 +323,11 @@ export interface PlatformaticViteConfig {
320
323
  telemetry?: {
321
324
  enabled?: boolean | string;
322
325
  /**
323
- * The name of the service. Defaults to the folder name if not specified.
326
+ * The name of the application. Defaults to the folder name if not specified.
324
327
  */
325
- serviceName: string;
328
+ applicationName: string;
326
329
  /**
327
- * The version of the service (optional)
330
+ * The version of the application (optional)
328
331
  */
329
332
  version?: string;
330
333
  /**
@@ -400,7 +403,7 @@ export interface PlatformaticViteConfig {
400
403
  watchDisabled?: boolean;
401
404
  [k: string]: unknown;
402
405
  };
403
- serviceTimeout?: number | string;
406
+ applicationTimeout?: number | string;
404
407
  messagingTimeout?: number | string;
405
408
  env?: {
406
409
  [k: string]: string;
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { transform as basicTransform, resolve, validationOptions } from '@platformatic/basic'
2
2
  import { kMetadata, loadConfiguration as utilsLoadConfiguration } from '@platformatic/foundation'
3
+ import { ViteCapability, ViteSSRCapability } from './lib/capability.js'
3
4
  import { schema } from './lib/schema.js'
4
- import { ViteSSRStackable, ViteStackable } from './lib/stackable.js'
5
5
 
6
6
  /* c8 ignore next 5 */
7
7
  export async function transform (config, schema, options) {
@@ -36,10 +36,10 @@ export async function loadConfiguration (configOrRoot, sourceOrConfig, context)
36
36
  export async function create (configOrRoot, sourceOrConfig, context) {
37
37
  const config = await loadConfiguration(configOrRoot, sourceOrConfig, context)
38
38
 
39
- // When in SSR mode, we use ViteSSRStackable, which is a subclass of @platformatic/node
40
- const Stackable = config.vite?.ssr?.enabled ? ViteSSRStackable : ViteStackable
41
- return new Stackable(config[kMetadata].root, config, context)
39
+ // When in SSR mode, we use ViteSSRCapability, which is a subclass of @platformatic/node
40
+ const Capability = config.vite?.ssr?.enabled ? ViteSSRCapability : ViteCapability
41
+ return new Capability(config[kMetadata].root, config, context)
42
42
  }
43
43
 
44
+ export * from './lib/capability.js'
44
45
  export { packageJson, schema, schemaComponents, version } from './lib/schema.js'
45
- export * from './lib/stackable.js'
@@ -1,6 +1,6 @@
1
1
  import fastifyStatic from '@fastify/static'
2
2
  import {
3
- BaseStackable,
3
+ BaseCapability,
4
4
  cleanBasePath,
5
5
  createServerListener,
6
6
  ensureTrailingSlash,
@@ -10,7 +10,7 @@ import {
10
10
  resolvePackage
11
11
  } from '@platformatic/basic'
12
12
  import { ensureLoggableError, features } from '@platformatic/foundation'
13
- import { NodeStackable } from '@platformatic/node'
13
+ import { NodeCapability } from '@platformatic/node'
14
14
  import fastify from 'fastify'
15
15
  import { existsSync } from 'node:fs'
16
16
  import { readFile, writeFile } from 'node:fs/promises'
@@ -20,7 +20,7 @@ import { version } from './schema.js'
20
20
 
21
21
  const supportedVersions = '^5.0.0'
22
22
 
23
- export class ViteStackable extends BaseStackable {
23
+ export class ViteCapability extends BaseCapability {
24
24
  #vite
25
25
  #app
26
26
  #server
@@ -137,7 +137,7 @@ export class ViteStackable extends BaseStackable {
137
137
  getMeta () {
138
138
  const config = this.subprocessConfig ?? this.#app?.config
139
139
 
140
- const composer = {
140
+ const gateway = {
141
141
  tcp: typeof this.url !== 'undefined',
142
142
  url: this.url,
143
143
  prefix: this.basePath ?? config?.base ?? this.#basePath,
@@ -145,7 +145,7 @@ export class ViteStackable extends BaseStackable {
145
145
  needsRootTrailingSlash: true
146
146
  }
147
147
 
148
- return { composer }
148
+ return { gateway }
149
149
  }
150
150
 
151
151
  _getVite () {
@@ -260,7 +260,7 @@ export class ViteStackable extends BaseStackable {
260
260
  }
261
261
  }
262
262
 
263
- export class ViteSSRStackable extends NodeStackable {
263
+ export class ViteSSRCapability extends NodeCapability {
264
264
  #basePath
265
265
 
266
266
  constructor (root, config, context) {
@@ -388,7 +388,7 @@ export class ViteSSRStackable extends NodeStackable {
388
388
  const config = vite?.devServer?.config ?? vite?.config.vite
389
389
  const applicationBasePath = config?.base
390
390
 
391
- const composer = {
391
+ const gateway = {
392
392
  tcp: typeof this.url !== 'undefined',
393
393
  url: this.url,
394
394
  prefix: this.basePath ?? applicationBasePath ?? this.#basePath,
@@ -396,7 +396,7 @@ export class ViteSSRStackable extends NodeStackable {
396
396
  needsRootTrailingSlash: true
397
397
  }
398
398
 
399
- return { composer }
399
+ return { gateway }
400
400
  }
401
401
 
402
402
  _findEntrypoint () {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@platformatic/vite",
3
- "version": "3.0.0-alpha.5",
4
- "description": "Platformatic Vite Stackable",
3
+ "version": "3.0.0-alpha.6",
4
+ "description": "Platformatic Vite Capability",
5
5
  "main": "index.js",
6
6
  "type": "module",
7
7
  "repository": {
@@ -18,13 +18,13 @@
18
18
  "@fastify/static": "^8.0.0",
19
19
  "fastify": "^5.0.0",
20
20
  "semver": "^7.6.3",
21
- "@platformatic/basic": "3.0.0-alpha.5",
22
- "@platformatic/node": "3.0.0-alpha.5",
23
- "@platformatic/foundation": "3.0.0-alpha.5"
21
+ "@platformatic/basic": "3.0.0-alpha.6",
22
+ "@platformatic/foundation": "3.0.0-alpha.6",
23
+ "@platformatic/node": "3.0.0-alpha.6"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@fastify/vite": "^7.0.1",
27
- "borp": "^0.20.0",
27
+ "cleaner-spec-reporter": "^0.5.0",
28
28
  "eslint": "9",
29
29
  "json-schema-to-typescript": "^15.0.1",
30
30
  "neostandard": "^0.12.0",
@@ -33,15 +33,14 @@
33
33
  "typescript": "^5.5.4",
34
34
  "vite": "^5.4.0",
35
35
  "ws": "^8.18.0",
36
- "@platformatic/service": "3.0.0-alpha.5",
37
- "@platformatic/composer": "3.0.0-alpha.5"
36
+ "@platformatic/gateway": "3.0.0-alpha.6",
37
+ "@platformatic/service": "3.0.0-alpha.6"
38
38
  },
39
39
  "engines": {
40
40
  "node": ">=22.18.0"
41
41
  },
42
42
  "scripts": {
43
- "test": "npm run lint && borp --concurrency=1 --timeout 1200000",
44
- "coverage": "npm run lint && borp -C -X test -X test/fixtures --concurrency=1 --timeout 1200000",
43
+ "test": "node --test --test-reporter=cleaner-spec-reporter --test-concurrency=1 --test-timeout=2000000 test/*.test.js test/**/*.test.js",
45
44
  "gen-schema": "node lib/schema.js > schema.json",
46
45
  "gen-types": "json2ts > config.d.ts < schema.json",
47
46
  "build": "pnpm run gen-schema && pnpm run gen-types",
package/schema.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://schemas.platformatic.dev/@platformatic/vite/3.0.0-alpha.5.json",
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/vite/3.0.0-alpha.6.json",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Platformatic Vite Config",
5
5
  "type": "object",
@@ -386,6 +386,235 @@
386
386
  "basePath": {
387
387
  "type": "string"
388
388
  },
389
+ "services": {
390
+ "type": "array",
391
+ "items": {
392
+ "type": "object",
393
+ "anyOf": [
394
+ {
395
+ "required": [
396
+ "id",
397
+ "path"
398
+ ]
399
+ },
400
+ {
401
+ "required": [
402
+ "id",
403
+ "url"
404
+ ]
405
+ }
406
+ ],
407
+ "properties": {
408
+ "id": {
409
+ "type": "string"
410
+ },
411
+ "path": {
412
+ "type": "string",
413
+ "allowEmptyPaths": true,
414
+ "resolvePath": true
415
+ },
416
+ "config": {
417
+ "type": "string"
418
+ },
419
+ "url": {
420
+ "type": "string"
421
+ },
422
+ "gitBranch": {
423
+ "type": "string",
424
+ "default": "main"
425
+ },
426
+ "useHttp": {
427
+ "type": "boolean"
428
+ },
429
+ "workers": {
430
+ "anyOf": [
431
+ {
432
+ "type": "number",
433
+ "minimum": 1
434
+ },
435
+ {
436
+ "type": "string"
437
+ }
438
+ ]
439
+ },
440
+ "health": {
441
+ "type": "object",
442
+ "default": {},
443
+ "properties": {
444
+ "enabled": {
445
+ "anyOf": [
446
+ {
447
+ "type": "boolean"
448
+ },
449
+ {
450
+ "type": "string"
451
+ }
452
+ ]
453
+ },
454
+ "interval": {
455
+ "anyOf": [
456
+ {
457
+ "type": "number",
458
+ "minimum": 0
459
+ },
460
+ {
461
+ "type": "string"
462
+ }
463
+ ]
464
+ },
465
+ "gracePeriod": {
466
+ "anyOf": [
467
+ {
468
+ "type": "number",
469
+ "minimum": 0
470
+ },
471
+ {
472
+ "type": "string"
473
+ }
474
+ ]
475
+ },
476
+ "maxUnhealthyChecks": {
477
+ "anyOf": [
478
+ {
479
+ "type": "number",
480
+ "minimum": 1
481
+ },
482
+ {
483
+ "type": "string"
484
+ }
485
+ ]
486
+ },
487
+ "maxELU": {
488
+ "anyOf": [
489
+ {
490
+ "type": "number",
491
+ "minimum": 0,
492
+ "maximum": 1
493
+ },
494
+ {
495
+ "type": "string"
496
+ }
497
+ ]
498
+ },
499
+ "maxHeapUsed": {
500
+ "anyOf": [
501
+ {
502
+ "type": "number",
503
+ "minimum": 0,
504
+ "maximum": 1
505
+ },
506
+ {
507
+ "type": "string"
508
+ }
509
+ ]
510
+ },
511
+ "maxHeapTotal": {
512
+ "anyOf": [
513
+ {
514
+ "type": "number",
515
+ "minimum": 0
516
+ },
517
+ {
518
+ "type": "string"
519
+ }
520
+ ]
521
+ },
522
+ "maxYoungGeneration": {
523
+ "anyOf": [
524
+ {
525
+ "type": "number",
526
+ "minimum": 0
527
+ },
528
+ {
529
+ "type": "string"
530
+ }
531
+ ]
532
+ }
533
+ },
534
+ "additionalProperties": false
535
+ },
536
+ "arguments": {
537
+ "type": "array",
538
+ "items": {
539
+ "type": "string"
540
+ }
541
+ },
542
+ "env": {
543
+ "type": "object",
544
+ "additionalProperties": {
545
+ "type": "string"
546
+ }
547
+ },
548
+ "envfile": {
549
+ "type": "string"
550
+ },
551
+ "sourceMaps": {
552
+ "type": "boolean",
553
+ "default": false
554
+ },
555
+ "packageManager": {
556
+ "type": "string",
557
+ "enum": [
558
+ "npm",
559
+ "pnpm",
560
+ "yarn"
561
+ ]
562
+ },
563
+ "preload": {
564
+ "anyOf": [
565
+ {
566
+ "type": "string",
567
+ "resolvePath": true
568
+ },
569
+ {
570
+ "type": "array",
571
+ "items": {
572
+ "type": "string",
573
+ "resolvePath": true
574
+ }
575
+ }
576
+ ]
577
+ },
578
+ "nodeOptions": {
579
+ "type": "string"
580
+ },
581
+ "telemetry": {
582
+ "type": "object",
583
+ "properties": {
584
+ "instrumentations": {
585
+ "type": "array",
586
+ "description": "An array of instrumentations loaded if telemetry is enabled",
587
+ "items": {
588
+ "oneOf": [
589
+ {
590
+ "type": "string"
591
+ },
592
+ {
593
+ "type": "object",
594
+ "properties": {
595
+ "package": {
596
+ "type": "string"
597
+ },
598
+ "exportName": {
599
+ "type": "string"
600
+ },
601
+ "options": {
602
+ "type": "object",
603
+ "additionalProperties": true
604
+ }
605
+ },
606
+ "required": [
607
+ "package"
608
+ ]
609
+ }
610
+ ]
611
+ }
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+ },
389
618
  "workers": {
390
619
  "anyOf": [
391
620
  {
@@ -700,7 +929,7 @@
700
929
  ],
701
930
  "default": 10000
702
931
  },
703
- "service": {
932
+ "application": {
704
933
  "anyOf": [
705
934
  {
706
935
  "type": "number",
@@ -716,7 +945,7 @@
716
945
  "default": {},
717
946
  "required": [
718
947
  "runtime",
719
- "service"
948
+ "application"
720
949
  ],
721
950
  "additionalProperties": false
722
951
  },
@@ -1147,13 +1376,13 @@
1147
1376
  }
1148
1377
  ]
1149
1378
  },
1150
- "serviceName": {
1379
+ "applicationName": {
1151
1380
  "type": "string",
1152
- "description": "The name of the service. Defaults to the folder name if not specified."
1381
+ "description": "The name of the application. Defaults to the folder name if not specified."
1153
1382
  },
1154
1383
  "version": {
1155
1384
  "type": "string",
1156
- "description": "The version of the service (optional)"
1385
+ "description": "The version of the application (optional)"
1157
1386
  },
1158
1387
  "skip": {
1159
1388
  "type": "array",
@@ -1260,7 +1489,7 @@
1260
1489
  }
1261
1490
  },
1262
1491
  "required": [
1263
- "serviceName"
1492
+ "applicationName"
1264
1493
  ],
1265
1494
  "additionalProperties": false
1266
1495
  },
@@ -1281,7 +1510,7 @@
1281
1510
  }
1282
1511
  }
1283
1512
  },
1284
- "serviceTimeout": {
1513
+ "applicationTimeout": {
1285
1514
  "anyOf": [
1286
1515
  {
1287
1516
  "type": "number",