build(deps): update langium to v3 and apply the required changes

This commit is contained in:
Reda Al Sulais
2024-02-29 20:38:15 +03:00
parent d11bfaa6c4
commit 2b2bbe35d0
6 changed files with 74 additions and 51 deletions

View File

@@ -108,7 +108,7 @@
"jison": "^0.4.18", "jison": "^0.4.18",
"js-yaml": "^4.1.0", "js-yaml": "^4.1.0",
"jsdom": "^22.0.0", "jsdom": "^22.0.0",
"langium-cli": "2.1.0", "langium-cli": "3.0.1",
"lint-staged": "^13.2.1", "lint-staged": "^13.2.1",
"nyc": "^15.1.0", "nyc": "^15.1.0",
"path-browserify": "^1.0.1", "path-browserify": "^1.0.1",

View File

@@ -34,7 +34,7 @@
"ast" "ast"
], ],
"dependencies": { "dependencies": {
"langium": "2.1.2" "langium": "3.0.0"
}, },
"devDependencies": { "devDependencies": {
"chevrotain": "^11.0.3" "chevrotain": "^11.0.3"

View File

@@ -1,11 +1,16 @@
import type { import type {
DefaultSharedModuleContext, DefaultSharedCoreModuleContext,
LangiumServices, LangiumCoreServices,
LangiumSharedServices, LangiumSharedCoreServices,
Module, Module,
PartialLangiumServices, PartialLangiumCoreServices,
} from 'langium';
import {
EmptyFileSystem,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
} from 'langium'; } from 'langium';
import { EmptyFileSystem, createDefaultModule, createDefaultSharedModule, inject } from 'langium';
import { CommonValueConverter } from '../common/index.js'; import { CommonValueConverter } from '../common/index.js';
import { InfoGeneratedModule, MermaidGeneratedSharedModule } from '../generated/module.js'; import { InfoGeneratedModule, MermaidGeneratedSharedModule } from '../generated/module.js';
@@ -24,13 +29,13 @@ type InfoAddedServices = {
/** /**
* Union of Langium default services and `Info` services. * Union of Langium default services and `Info` services.
*/ */
export type InfoServices = LangiumServices & InfoAddedServices; export type InfoServices = LangiumCoreServices & InfoAddedServices;
/** /**
* Dependency injection module that overrides Langium default services and * Dependency injection module that overrides Langium default services and
* contributes the declared `Info` services. * contributes the declared `Info` services.
*/ */
export const InfoModule: Module<InfoServices, PartialLangiumServices & InfoAddedServices> = { export const InfoModule: Module<InfoServices, PartialLangiumCoreServices & InfoAddedServices> = {
parser: { parser: {
TokenBuilder: () => new InfoTokenBuilder(), TokenBuilder: () => new InfoTokenBuilder(),
ValueConverter: () => new CommonValueConverter(), ValueConverter: () => new CommonValueConverter(),
@@ -51,16 +56,16 @@ export const InfoModule: Module<InfoServices, PartialLangiumServices & InfoAdded
* @param context - Optional module context with the LSP connection * @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services * @returns An object wrapping the shared services and the language-specific services
*/ */
export function createInfoServices(context: DefaultSharedModuleContext = EmptyFileSystem): { export function createInfoServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {
shared: LangiumSharedServices; shared: LangiumSharedCoreServices;
Info: InfoServices; Info: InfoServices;
} { } {
const shared: LangiumSharedServices = inject( const shared: LangiumSharedCoreServices = inject(
createDefaultSharedModule(context), createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule MermaidGeneratedSharedModule
); );
const Info: InfoServices = inject( const Info: InfoServices = inject(
createDefaultModule({ shared }), createDefaultCoreModule({ shared }),
InfoGeneratedModule, InfoGeneratedModule,
InfoModule InfoModule
); );

View File

@@ -1,11 +1,17 @@
import type { import type {
DefaultSharedModuleContext, DefaultSharedCoreModuleContext,
LangiumServices, LangiumCoreServices,
LangiumSharedServices, LangiumSharedCoreServices,
Module, Module,
PartialLangiumServices, PartialLangiumCoreServices,
} from 'langium'; } from 'langium';
import { EmptyFileSystem, createDefaultModule, createDefaultSharedModule, inject } from 'langium'; import {
EmptyFileSystem,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
} from 'langium';
import { CommonValueConverter } from '../common/valueConverter.js'; import { CommonValueConverter } from '../common/valueConverter.js';
import { MermaidGeneratedSharedModule, PacketGeneratedModule } from '../generated/module.js'; import { MermaidGeneratedSharedModule, PacketGeneratedModule } from '../generated/module.js';
import { PacketTokenBuilder } from './tokenBuilder.js'; import { PacketTokenBuilder } from './tokenBuilder.js';
@@ -23,13 +29,16 @@ type PacketAddedServices = {
/** /**
* Union of Langium default services and `Packet` services. * Union of Langium default services and `Packet` services.
*/ */
export type PacketServices = LangiumServices & PacketAddedServices; export type PacketServices = LangiumCoreServices & PacketAddedServices;
/** /**
* Dependency injection module that overrides Langium default services and * Dependency injection module that overrides Langium default services and
* contributes the declared `Packet` services. * contributes the declared `Packet` services.
*/ */
export const PacketModule: Module<PacketServices, PartialLangiumServices & PacketAddedServices> = { export const PacketModule: Module<
PacketServices,
PartialLangiumCoreServices & PacketAddedServices
> = {
parser: { parser: {
TokenBuilder: () => new PacketTokenBuilder(), TokenBuilder: () => new PacketTokenBuilder(),
ValueConverter: () => new CommonValueConverter(), ValueConverter: () => new CommonValueConverter(),
@@ -50,16 +59,16 @@ export const PacketModule: Module<PacketServices, PartialLangiumServices & Packe
* @param context - Optional module context with the LSP connection * @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services * @returns An object wrapping the shared services and the language-specific services
*/ */
export function createPacketServices(context: DefaultSharedModuleContext = EmptyFileSystem): { export function createPacketServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {
shared: LangiumSharedServices; shared: LangiumSharedCoreServices;
Packet: PacketServices; Packet: PacketServices;
} { } {
const shared: LangiumSharedServices = inject( const shared: LangiumSharedCoreServices = inject(
createDefaultSharedModule(context), createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule MermaidGeneratedSharedModule
); );
const Packet: PacketServices = inject( const Packet: PacketServices = inject(
createDefaultModule({ shared }), createDefaultCoreModule({ shared }),
PacketGeneratedModule, PacketGeneratedModule,
PacketModule PacketModule
); );

View File

@@ -1,11 +1,16 @@
import type { import type {
DefaultSharedModuleContext, DefaultSharedCoreModuleContext,
LangiumServices, LangiumCoreServices,
LangiumSharedServices, LangiumSharedCoreServices,
Module, Module,
PartialLangiumServices, PartialLangiumCoreServices,
} from 'langium';
import {
EmptyFileSystem,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
} from 'langium'; } from 'langium';
import { EmptyFileSystem, createDefaultModule, createDefaultSharedModule, inject } from 'langium';
import { MermaidGeneratedSharedModule, PieGeneratedModule } from '../generated/module.js'; import { MermaidGeneratedSharedModule, PieGeneratedModule } from '../generated/module.js';
import { PieTokenBuilder } from './tokenBuilder.js'; import { PieTokenBuilder } from './tokenBuilder.js';
@@ -24,13 +29,13 @@ type PieAddedServices = {
/** /**
* Union of Langium default services and `Pie` services. * Union of Langium default services and `Pie` services.
*/ */
export type PieServices = LangiumServices & PieAddedServices; export type PieServices = LangiumCoreServices & PieAddedServices;
/** /**
* Dependency injection module that overrides Langium default services and * Dependency injection module that overrides Langium default services and
* contributes the declared `Pie` services. * contributes the declared `Pie` services.
*/ */
export const PieModule: Module<PieServices, PartialLangiumServices & PieAddedServices> = { export const PieModule: Module<PieServices, PartialLangiumCoreServices & PieAddedServices> = {
parser: { parser: {
TokenBuilder: () => new PieTokenBuilder(), TokenBuilder: () => new PieTokenBuilder(),
ValueConverter: () => new PieValueConverter(), ValueConverter: () => new PieValueConverter(),
@@ -51,15 +56,19 @@ export const PieModule: Module<PieServices, PartialLangiumServices & PieAddedSer
* @param context - Optional module context with the LSP connection * @param context - Optional module context with the LSP connection
* @returns An object wrapping the shared services and the language-specific services * @returns An object wrapping the shared services and the language-specific services
*/ */
export function createPieServices(context: DefaultSharedModuleContext = EmptyFileSystem): { export function createPieServices(context: DefaultSharedCoreModuleContext = EmptyFileSystem): {
shared: LangiumSharedServices; shared: LangiumSharedCoreServices;
Pie: PieServices; Pie: PieServices;
} { } {
const shared: LangiumSharedServices = inject( const shared: LangiumSharedCoreServices = inject(
createDefaultSharedModule(context), createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule MermaidGeneratedSharedModule
); );
const Pie: PieServices = inject(createDefaultModule({ shared }), PieGeneratedModule, PieModule); const Pie: PieServices = inject(
createDefaultCoreModule({ shared }),
PieGeneratedModule,
PieModule
);
shared.ServiceRegistry.register(Pie); shared.ServiceRegistry.register(Pie);
return { shared, Pie }; return { shared, Pie };
} }

26
pnpm-lock.yaml generated
View File

@@ -155,8 +155,8 @@ importers:
specifier: ^22.0.0 specifier: ^22.0.0
version: 22.0.0 version: 22.0.0
langium-cli: langium-cli:
specifier: 2.1.0 specifier: 3.0.1
version: 2.1.0 version: 3.0.1
lint-staged: lint-staged:
specifier: ^13.2.1 specifier: ^13.2.1
version: 13.2.3 version: 13.2.3
@@ -496,8 +496,8 @@ importers:
packages/parser: packages/parser:
dependencies: dependencies:
langium: langium:
specifier: 2.1.2 specifier: 3.0.0
version: 2.1.2 version: 3.0.0
devDependencies: devDependencies:
chevrotain: chevrotain:
specifier: ^11.0.3 specifier: ^11.0.3
@@ -11968,8 +11968,8 @@ packages:
engines: {node: '>=12'} engines: {node: '>=12'}
dev: true dev: true
/langium-cli@2.1.0: /langium-cli@3.0.1:
resolution: {integrity: sha512-Gbj4CvfAc1gP/6ihxikd2Je95j1FWjXZu8bbji2/t2vQ6kEP+vs9Fx7kSGOM0AbU/hjZfy6E35bJPOdwsiyqTA==} resolution: {integrity: sha512-s1R/4GKkWItfu2o05DxqP71ID5MiGqb1BfXyPeFvIO3+aRSCj6fCj9EXtasvf18lSTUe27H37aO66TNU9VRr+Q==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
hasBin: true hasBin: true
dependencies: dependencies:
@@ -11977,20 +11977,20 @@ packages:
commander: 11.0.0 commander: 11.0.0
fs-extra: 11.1.1 fs-extra: 11.1.1
jsonschema: 1.4.1 jsonschema: 1.4.1
langium: 2.1.2 langium: 3.0.0
langium-railroad: 2.1.0 langium-railroad: 3.0.0
lodash: 4.17.21 lodash: 4.17.21
dev: true dev: true
/langium-railroad@2.1.0: /langium-railroad@3.0.0:
resolution: {integrity: sha512-2IeAIUSTQzbDjNnJA+0ql8tyN/mhCSN4FS50Mo9LOtLj523qUEBwHflDmCiOGZzW9iZdni6NXJgh8nLqjhTlDw==} resolution: {integrity: sha512-GQOnQBGl5gJqzgK/4bKvJO5QhJGNnprpYH6Fghbl4FviVLHwP6yzyqiouDelLSoCadChCr2JqKaBp5HXv7CgWw==}
dependencies: dependencies:
langium: 2.1.2 langium: 3.0.0
railroad-diagrams: 1.0.0 railroad-diagrams: 1.0.0
dev: true dev: true
/langium@2.1.2: /langium@3.0.0:
resolution: {integrity: sha512-1NDUmhm111xs6NLh1DzQ9YPrOhL6JqJryY9igPIGrG0AbKKGmGf3fahAiY1MUChwIYSec6Fvoj+igwKzvGXQog==} resolution: {integrity: sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
dependencies: dependencies:
chevrotain: 11.0.3 chevrotain: 11.0.3