+10
@@ -0,0 +1,10 @@
|
||||
/******************************************************************************
|
||||
* Copyright 2022 TypeFox GmbH
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the MIT License, which is available in the project root.
|
||||
*
|
||||
* @module langium/node
|
||||
*/
|
||||
export * from './node-file-system-provider.js';
|
||||
export * from './worker-thread-async-parser.js';
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC"}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
/******************************************************************************
|
||||
* Copyright 2022 TypeFox GmbH
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the MIT License, which is available in the project root.
|
||||
*
|
||||
* @module langium/node
|
||||
*/
|
||||
export * from './node-file-system-provider.js';
|
||||
export * from './worker-thread-async-parser.js';
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC"}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
/******************************************************************************
|
||||
* Copyright 2022 TypeFox GmbH
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the MIT License, which is available in the project root.
|
||||
******************************************************************************/
|
||||
import type { URI } from '../utils/uri-utils.js';
|
||||
import type { FileSystemNode, FileSystemProvider } from '../workspace/file-system-provider.js';
|
||||
export type NodeTextEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'latin1';
|
||||
export declare class NodeFileSystemProvider implements FileSystemProvider {
|
||||
encoding: NodeTextEncoding;
|
||||
stat(uri: URI): Promise<FileSystemNode>;
|
||||
statSync(uri: URI): FileSystemNode;
|
||||
exists(uri: URI): Promise<boolean>;
|
||||
existsSync(uri: URI): boolean;
|
||||
readBinary(uri: URI): Promise<Uint8Array>;
|
||||
readBinarySync(uri: URI): Uint8Array;
|
||||
readFile(uri: URI): Promise<string>;
|
||||
readFileSync(uri: URI): string;
|
||||
readDirectory(uri: URI): Promise<FileSystemNode[]>;
|
||||
readDirectorySync(uri: URI): FileSystemNode[];
|
||||
}
|
||||
export declare const NodeFileSystem: {
|
||||
fileSystemProvider: () => NodeFileSystemProvider;
|
||||
};
|
||||
//# sourceMappingURL=node-file-system-provider.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"node-file-system-provider.d.ts","sourceRoot":"","sources":["../../src/node/node-file-system-provider.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG/F,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpG,qBAAa,sBAAuB,YAAW,kBAAkB;IAE7D,QAAQ,EAAE,gBAAgB,CAAW;IAE/B,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAS7C,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc;IASlC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlC,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO;IAI7B,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAIzC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU;IAIpC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAInC,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAIxB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAUxD,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,cAAc,EAAE;CAShD;AAED,eAAO,MAAM,cAAc;;CAE1B,CAAC"}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
/******************************************************************************
|
||||
* Copyright 2022 TypeFox GmbH
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the MIT License, which is available in the project root.
|
||||
******************************************************************************/
|
||||
import { UriUtils } from '../utils/uri-utils.js';
|
||||
import * as fs from 'node:fs';
|
||||
export class NodeFileSystemProvider {
|
||||
constructor() {
|
||||
this.encoding = 'utf-8';
|
||||
}
|
||||
async stat(uri) {
|
||||
const stat = await fs.promises.stat(uri.fsPath);
|
||||
return {
|
||||
isFile: stat.isFile(),
|
||||
isDirectory: stat.isDirectory(),
|
||||
uri
|
||||
};
|
||||
}
|
||||
statSync(uri) {
|
||||
const stat = fs.statSync(uri.fsPath);
|
||||
return {
|
||||
isFile: stat.isFile(),
|
||||
isDirectory: stat.isDirectory(),
|
||||
uri
|
||||
};
|
||||
}
|
||||
exists(uri) {
|
||||
return new Promise(resolve => {
|
||||
fs.stat(uri.fsPath, err => {
|
||||
resolve(!err);
|
||||
});
|
||||
});
|
||||
}
|
||||
existsSync(uri) {
|
||||
return fs.existsSync(uri.fsPath);
|
||||
}
|
||||
readBinary(uri) {
|
||||
return fs.promises.readFile(uri.fsPath);
|
||||
}
|
||||
readBinarySync(uri) {
|
||||
return fs.readFileSync(uri.fsPath);
|
||||
}
|
||||
readFile(uri) {
|
||||
return fs.promises.readFile(uri.fsPath, this.encoding);
|
||||
}
|
||||
readFileSync(uri) {
|
||||
return fs.readFileSync(uri.fsPath, this.encoding);
|
||||
}
|
||||
async readDirectory(uri) {
|
||||
const dirents = await fs.promises.readdir(uri.fsPath, { withFileTypes: true });
|
||||
return dirents.map(dirent => ({
|
||||
dirent, // Include the raw entry, it may be useful...
|
||||
isFile: dirent.isFile(),
|
||||
isDirectory: dirent.isDirectory(),
|
||||
uri: UriUtils.joinPath(uri, dirent.name)
|
||||
}));
|
||||
}
|
||||
readDirectorySync(uri) {
|
||||
const dirents = fs.readdirSync(uri.fsPath, { withFileTypes: true });
|
||||
return dirents.map(dirent => ({
|
||||
dirent, // Include the raw entry, it may be useful...
|
||||
isFile: dirent.isFile(),
|
||||
isDirectory: dirent.isDirectory(),
|
||||
uri: UriUtils.joinPath(uri, dirent.name)
|
||||
}));
|
||||
}
|
||||
}
|
||||
export const NodeFileSystem = {
|
||||
fileSystemProvider: () => new NodeFileSystemProvider()
|
||||
};
|
||||
//# sourceMappingURL=node-file-system-provider.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"node-file-system-provider.js","sourceRoot":"","sources":["../../src/node/node-file-system-provider.ts"],"names":[],"mappings":"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"}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
/******************************************************************************
|
||||
* Copyright 2023 TypeFox GmbH
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the MIT License, which is available in the project root.
|
||||
******************************************************************************/
|
||||
import type { LangiumCoreServices } from '../services.js';
|
||||
import { ParserWorker } from '../parser/async-parser.js';
|
||||
import { AbstractThreadedAsyncParser } from '../parser/async-parser.js';
|
||||
import { Worker } from 'node:worker_threads';
|
||||
export declare class WorkerThreadAsyncParser extends AbstractThreadedAsyncParser {
|
||||
protected workerPath: string | (() => string);
|
||||
constructor(services: LangiumCoreServices, workerPath: string | (() => string));
|
||||
protected createWorker(): ParserWorker;
|
||||
}
|
||||
export declare class WorkerThreadParserWorker extends ParserWorker {
|
||||
constructor(worker: Worker);
|
||||
}
|
||||
//# sourceMappingURL=worker-thread-async-parser.d.ts.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"worker-thread-async-parser.d.ts","sourceRoot":"","sources":["../../src/node/worker-thread-async-parser.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAEhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,qBAAa,uBAAwB,SAAQ,2BAA2B;IAEpE,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;gBAElC,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC;cAK3D,YAAY,IAAI,YAAY;CAOlD;AAED,qBAAa,wBAAyB,SAAQ,YAAY;gBAE1C,MAAM,EAAE,MAAM;CAS7B"}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
/******************************************************************************
|
||||
* Copyright 2023 TypeFox GmbH
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the MIT License, which is available in the project root.
|
||||
******************************************************************************/
|
||||
import { ParserWorker } from '../parser/async-parser.js';
|
||||
import { AbstractThreadedAsyncParser } from '../parser/async-parser.js';
|
||||
import { Worker } from 'node:worker_threads';
|
||||
export class WorkerThreadAsyncParser extends AbstractThreadedAsyncParser {
|
||||
constructor(services, workerPath) {
|
||||
super(services);
|
||||
this.workerPath = workerPath;
|
||||
}
|
||||
createWorker() {
|
||||
const path = typeof this.workerPath === 'function' ? this.workerPath() : this.workerPath;
|
||||
const worker = new Worker(path);
|
||||
const parserWorker = new WorkerThreadParserWorker(worker);
|
||||
return parserWorker;
|
||||
}
|
||||
}
|
||||
export class WorkerThreadParserWorker extends ParserWorker {
|
||||
constructor(worker) {
|
||||
super((message) => worker.postMessage(message), cb => worker.on('message', cb), cb => worker.on('error', cb), () => worker.terminate());
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=worker-thread-async-parser.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"worker-thread-async-parser.js","sourceRoot":"","sources":["../../src/node/worker-thread-async-parser.ts"],"names":[],"mappings":"AAAA;;;;gFAIgF;AAGhF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,uBAAwB,SAAQ,2BAA2B;IAIpE,YAAY,QAA6B,EAAE,UAAmC;QAC1E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEkB,YAAY;QAC3B,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,YAAY,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC;IACxB,CAAC;CAEJ;AAED,MAAM,OAAO,wBAAyB,SAAQ,YAAY;IAEtD,YAAY,MAAc;QACtB,KAAK,CACD,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EACxC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,EAC9B,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,EAC5B,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAC3B,CAAC;IACN,CAAC;CAEJ"}
|
||||
Reference in New Issue
Block a user