Skip to content

Commit eea5bc2

Browse files
msujewkaisalmen
andauthored
Update all packages to esm (#1125)
Co-authored-by: Kai Salmen <[email protected]>
1 parent 929a80d commit eea5bc2

File tree

324 files changed

+3350
-9850
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

324 files changed

+3350
-9850
lines changed

.github/workflows/actions.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: Use Node.js
2424
uses: actions/setup-node@v3
2525
with:
26-
node-version: '16'
26+
node-version: '18'
2727
- name: Build
2828
shell: bash
2929
run: |
@@ -44,7 +44,7 @@ jobs:
4444
- name: Use Node.js
4545
uses: actions/setup-node@v3
4646
with:
47-
node-version: '16'
47+
node-version: '18'
4848
- name: Build
4949
shell: bash
5050
run: |

examples/arithmetics/bin/cli

-3
This file was deleted.

examples/arithmetics/bin/cli.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env node
2+
3+
import '../out/cli/cli.js';

examples/arithmetics/esbuild.mjs

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//@ts-check
2+
import * as esbuild from 'esbuild';
3+
4+
const watch = process.argv.includes('--watch');
5+
6+
const ctx = await esbuild.context({
7+
entryPoints: ['src/extension.ts', 'src/language-server/main.ts'],
8+
outdir: 'out',
9+
outExtension: {
10+
'.js': '.cjs'
11+
},
12+
bundle: true,
13+
target: "ES2017",
14+
format: 'cjs',
15+
loader: { '.ts': 'ts' },
16+
external: ['vscode'],
17+
platform: 'node',
18+
sourcemap: true
19+
});
20+
21+
if (watch) {
22+
await ctx.watch();
23+
} else {
24+
await ctx.rebuild();
25+
ctx.dispose();
26+
}

examples/arithmetics/package.json

+16-18
Original file line numberDiff line numberDiff line change
@@ -44,32 +44,30 @@
4444
"language-configuration.json"
4545
],
4646
"bin": {
47-
"arithmetics-cli": "./bin/cli"
47+
"arithmetics-cli": "./bin/cli.js"
4848
},
49-
"main": "./out/extension.js",
50-
"types": "./out/extension.d.ts",
49+
"type": "module",
50+
"main": "./out/extension.cjs",
5151
"exports": {
52-
".": {
53-
"types": "./out/extension.d.ts",
54-
"default": "./out/extension.js"
55-
},
56-
"./api": {
57-
"types": "./out/language-server/generated/ast.d.ts",
58-
"default": "./out/language-server/generated/ast.js"
59-
}
52+
".": {
53+
"types": "./out/extension.d.ts",
54+
"default": "./out/extension.js"
55+
},
56+
"./api": {
57+
"types": "./out/language-server/generated/ast.d.ts",
58+
"default": "./out/language-server/generated/ast.js"
59+
}
6060
},
6161
"scripts": {
62-
"vscode:prepublish": "npm run build && npm run lint",
63-
"build": "tsc",
64-
"watch": "tsc -watch",
62+
"build": "node esbuild.mjs",
63+
"watch": "node esbuild.mjs --watch",
6564
"lint": "eslint src test --ext ts",
6665
"langium:generate": "langium generate",
67-
"langium:watch": "langium generate --watch",
6866
"publish:next": "npm --no-git-tag-version version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" && npm publish --tag next",
6967
"publish:latest": "npm publish --tag latest --access public"
7068
},
7169
"dependencies": {
72-
"chalk": "~4.1.2",
70+
"chalk": "~5.3.0",
7371
"commander": "~10.0.0",
7472
"langium": "~1.2.0",
7573
"vscode-languageclient": "~8.0.2",
@@ -79,8 +77,8 @@
7977
"langium-cli": "~1.2.0"
8078
},
8179
"volta": {
82-
"node": "16.19.0",
83-
"npm": "8.19.3"
80+
"node": "18.17.0",
81+
"npm": "9.5.1"
8482
},
8583
"repository": {
8684
"type": "git",

examples/arithmetics/src/cli/cli-util.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
******************************************************************************/
66

77
import type { AstNode, LangiumDocument, LangiumServices } from 'langium';
8-
import fs from 'fs';
9-
import path from 'path';
8+
import { URI } from 'langium';
9+
import * as fs from 'node:fs';
10+
import * as path from 'node:path';
1011
import chalk from 'chalk';
11-
import { URI } from 'vscode-uri';
1212

1313
export async function extractDocument<T extends AstNode>(fileName: string, extensions: readonly string[], services: LangiumServices): Promise<LangiumDocument<T>> {
1414
if (!extensions.includes(path.extname(fileName))) {

examples/arithmetics/src/cli/cli.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@
66

77
import 'chalk';
88
import { Command } from 'commander';
9-
import { ArithmeticsLanguageMetaData } from '../language-server/generated/module';
10-
import { evalAction } from './interpreter';
9+
import { ArithmeticsLanguageMetaData } from '../language-server/generated/module.js';
10+
import { evalAction } from './interpreter.js';
11+
import * as url from 'node:url';
12+
import * as fs from 'node:fs/promises';
13+
import * as path from 'node:path';
14+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
15+
16+
const packagePath = path.resolve(__dirname, '..', '..', 'package.json');
17+
const packageContent = await fs.readFile(packagePath, 'utf-8');
1118

1219
const program = new Command();
1320

14-
program
15-
// eslint-disable-next-line @typescript-eslint/no-var-requires
16-
.version(require('../../package.json').version);
21+
program.version(JSON.parse(packageContent).version);
1722

1823
program
1924
.command('eval')

examples/arithmetics/src/cli/interpreter.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { Module } from '../language-server/generated/ast';
7+
import type { Module } from '../language-server/generated/ast.js';
88
import { NodeFileSystem } from 'langium/node';
9-
import { createArithmeticsServices } from '../language-server/arithmetics-module';
10-
import { ArithmeticsLanguageMetaData } from '../language-server/generated/module';
11-
import { extractDocument } from './cli-util';
9+
import { createArithmeticsServices } from '../language-server/arithmetics-module.js';
10+
import { ArithmeticsLanguageMetaData } from '../language-server/generated/module.js';
11+
import { extractDocument } from './cli-util.js';
1212
import chalk from 'chalk';
13-
import { interpretEvaluations } from '../language-server/arithmetics-evaluator';
13+
import { interpretEvaluations } from '../language-server/arithmetics-evaluator.js';
1414

1515
export const evalAction = async (fileName: string): Promise<void> => {
1616
const services = createArithmeticsServices(NodeFileSystem).arithmetics;

examples/arithmetics/src/extension.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { LanguageClientOptions, ServerOptions } from 'vscode-languageclient/node';
7+
import type { LanguageClientOptions, ServerOptions } from 'vscode-languageclient/node.js';
88
import * as vscode from 'vscode';
9-
import * as path from 'path';
10-
import { LanguageClient, TransportKind } from 'vscode-languageclient/node';
9+
import * as path from 'node:path';
10+
import { LanguageClient, TransportKind } from 'vscode-languageclient/node.js';
1111

1212
let client: LanguageClient;
1313

@@ -25,7 +25,7 @@ export function deactivate(): Thenable<void> | undefined {
2525
}
2626

2727
function startLanguageClient(context: vscode.ExtensionContext): LanguageClient {
28-
const serverModule = context.asAbsolutePath(path.join('out', 'language-server', 'main'));
28+
const serverModule = context.asAbsolutePath(path.join('out', 'language-server', 'main.cjs'));
2929
// The debug options for the server
3030
// --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
3131
const debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] };

examples/arithmetics/src/language-server/arithmetics-evaluator.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
* This program and the accompanying materials are made available under the
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
6-
import type { AbstractDefinition, Definition, Evaluation, Expression, Module, Statement } from './generated/ast';
7-
import { isBinaryExpression, isDefinition, isEvaluation, isFunctionCall, isNumberLiteral } from './generated/ast';
8-
import { applyOp } from './arithmetics-util';
6+
import type { AbstractDefinition, Definition, Evaluation, Expression, Module, Statement } from './generated/ast.js';
7+
import { isBinaryExpression, isDefinition, isEvaluation, isFunctionCall, isNumberLiteral } from './generated/ast.js';
8+
import { applyOp } from './arithmetics-util.js';
99

1010
export function interpretEvaluations(module: Module): Map<Evaluation, number> {
1111
const ctx = <InterpreterContext>{

examples/arithmetics/src/language-server/arithmetics-module.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
import type { DefaultSharedModuleContext, LangiumServices, LangiumSharedServices, Module, PartialLangiumServices } from 'langium';
88
import { createDefaultModule, createDefaultSharedModule, inject } from 'langium';
9-
import { ArithmeticsGeneratedModule, ArithmeticsGeneratedSharedModule } from './generated/module';
10-
import { ArithmeticsValidator, registerValidationChecks } from './arithmetics-validator';
11-
import { ArithmeticsScopeProvider } from './arithmetics-scope-provider';
9+
import { ArithmeticsGeneratedModule, ArithmeticsGeneratedSharedModule } from './generated/module.js';
10+
import { ArithmeticsValidator, registerValidationChecks } from './arithmetics-validator.js';
11+
import { ArithmeticsScopeProvider } from './arithmetics-scope-provider.js';
1212

1313
/**
1414
* Declaration of custom services - add your own service classes here.

examples/arithmetics/src/language-server/arithmetics-util.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { BinaryExpression } from './generated/ast';
7+
import type { BinaryExpression } from './generated/ast.js';
88

99
export function applyOp(op: BinaryExpression['operator']): (x: number, y: number) => number {
1010
switch (op) {

examples/arithmetics/src/language-server/arithmetics-validator.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { ArithmeticsAstType, Definition, Expression, BinaryExpression, Module, DeclaredParameter, FunctionCall } from './generated/ast';
8-
import type { ArithmeticsServices } from './arithmetics-module';
7+
import type { ArithmeticsAstType, Definition, Expression, BinaryExpression, Module, DeclaredParameter, FunctionCall } from './generated/ast.js';
8+
import type { ArithmeticsServices } from './arithmetics-module.js';
99
import type { ValidationChecks, ValidationAcceptor } from 'langium';
10-
import { isNumberLiteral, isFunctionCall, isBinaryExpression } from './generated/ast';
11-
import { applyOp } from './arithmetics-util';
10+
import { isNumberLiteral, isFunctionCall, isBinaryExpression } from './generated/ast.js';
11+
import { applyOp } from './arithmetics-util.js';
1212
import { MultiMap } from 'langium';
13-
import { evalExpression } from './arithmetics-evaluator';
13+
import { evalExpression } from './arithmetics-evaluator.js';
1414

1515
export function registerValidationChecks(services: ArithmeticsServices): void {
1616
const registry = services.validation.ValidationRegistry;

examples/arithmetics/src/language-server/generated/module.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
******************************************************************************/
55

66
import type { LangiumGeneratedServices, LangiumGeneratedSharedServices, LangiumSharedServices, LangiumServices, LanguageMetaData, Module } from 'langium';
7-
import { ArithmeticsAstReflection } from './ast';
8-
import { ArithmeticsGrammar } from './grammar';
7+
import { ArithmeticsAstReflection } from './ast.js';
8+
import { ArithmeticsGrammar } from './grammar.js';
99

1010
export const ArithmeticsLanguageMetaData = {
1111
languageId: 'arithmetics',

examples/arithmetics/src/language-server/main-browser.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
* terms of the MIT License, which is available in the project root.
55
******************************************************************************/
66

7-
import type { Diagnostic, Range } from 'vscode-languageserver/browser';
7+
import type { Diagnostic, Range } from 'vscode-languageserver/browser.js';
88
import { startLanguageServer, EmptyFileSystem, DocumentState } from 'langium';
9-
import { BrowserMessageReader, BrowserMessageWriter, createConnection, NotificationType } from 'vscode-languageserver/browser';
10-
import { createArithmeticsServices } from './arithmetics-module';
11-
import { interpretEvaluations } from './arithmetics-evaluator';
12-
import type { Module } from './generated/ast';
9+
import { BrowserMessageReader, BrowserMessageWriter, createConnection, NotificationType } from 'vscode-languageserver/browser.js';
10+
import { createArithmeticsServices } from './arithmetics-module.js';
11+
import { interpretEvaluations } from './arithmetics-evaluator.js';
12+
import type { Module } from './generated/ast.js';
1313

1414
/* browser specific setup code */
1515
const messageReader = new BrowserMessageReader(self);

examples/arithmetics/src/language-server/main.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import { startLanguageServer } from 'langium';
88
import { NodeFileSystem } from 'langium/node';
9-
import { createConnection, ProposedFeatures } from 'vscode-languageserver/node';
10-
import { createArithmeticsServices } from './arithmetics-module';
9+
import { createConnection, ProposedFeatures } from 'vscode-languageserver/node.js';
10+
import { createArithmeticsServices } from './arithmetics-module.js';
1111

1212
const connection = createConnection(ProposedFeatures.all);
1313

examples/arithmetics/test/arithmetics-cli.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import type { ExecException } from 'child_process';
88
import { describe, expect, test } from 'vitest';
9-
import path from 'path';
9+
import * as path from 'node:path';
1010
import { exec } from 'child_process';
1111

1212
describe('Test the arithmetics CLI', () => {

examples/arithmetics/tsconfig.json

+11-15
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1+
// this file is required for VSCode to work properly
12
{
2-
"extends": "../../tsconfig.json",
3-
"compilerOptions": {
4-
"rootDir": "src",
5-
"outDir": "out",
6-
"lib": ["ESNext", "WebWorker"]
7-
},
8-
"references": [{ "path": "../../packages/langium" }],
9-
"include": [
10-
"src/**/*"
11-
],
12-
"exclude": [
13-
"out",
14-
"/node_modules"
15-
]
16-
}
3+
"extends": "./tsconfig.src.json",
4+
"compilerOptions": {
5+
"noEmit": true,
6+
"rootDir": "."
7+
},
8+
"include": [
9+
"src/**/*",
10+
"test/**/*"
11+
]
12+
}
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"extends": "../../tsconfig.json",
3+
"compilerOptions": {
4+
"rootDir": "src",
5+
"outDir": "out",
6+
"lib": ["ESNext", "WebWorker"]
7+
},
8+
"references": [{
9+
"path": "../../packages/langium/tsconfig.src.json"
10+
}],
11+
"include": [
12+
"src/**/*"
13+
]
14+
}

examples/arithmetics/tsconfig.test.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
2-
"extends": "./tsconfig.json",
2+
"extends": "./tsconfig.src.json",
33
"compilerOptions": {
44
"noEmit": true,
55
"rootDir": "test"
66
},
77
"references": [{
8-
"path": "tsconfig.json"
8+
"path": "./tsconfig.src.json"
99
}],
1010
"include": [
1111
"test/**/*",

examples/domainmodel/bin/cli

-3
This file was deleted.

examples/domainmodel/bin/cli.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env node
2+
3+
import '../out/cli/cli.js';

examples/domainmodel/esbuild.mjs

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//@ts-check
2+
import * as esbuild from 'esbuild';
3+
4+
const watch = process.argv.includes('--watch');
5+
6+
const ctx = await esbuild.context({
7+
entryPoints: ['src/extension.ts', 'src/language-server/main.ts'],
8+
outdir: 'out',
9+
outExtension: {
10+
'.js': '.cjs'
11+
},
12+
bundle: true,
13+
target: "ES2017",
14+
format: 'cjs',
15+
loader: { '.ts': 'ts' },
16+
external: ['vscode'],
17+
platform: 'node',
18+
sourcemap: true
19+
});
20+
21+
if (watch) {
22+
await ctx.watch();
23+
} else {
24+
await ctx.rebuild();
25+
ctx.dispose();
26+
}

0 commit comments

Comments
 (0)