2.4.12 • Published 5 months ago

@volar/kit v2.4.12

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Kit

Example: Use FileWatcher

import * as fs from 'fs';
import * as path from 'path';
import { watch } from 'chokidar';
import * as kit from '@volar/kit';

const tsconfig = getTsconfig();
const project = kit.createProject(tsconfig, [{ extension: 'foo', isMixedContent: true, scriptKind: 7 }]);
const config: kit.Config = {
    languages: {
        // ...
    },
    services: {
        // ...
    },
};
const linter = kit.createLinter(config, project.languageServiceHost);

let req = 0;

update();

createWatcher(path.dirname(tsconfig), ['ts', 'js', 'foo'])
    .on('add', (fileName) => {
        project.fileCreated(fileName);
        update();
    })
    .on('unlink', (fileName) => {
        project.fileDeleted(fileName);
        update();
    })
    .on('change', (fileName) => {
        project.fileUpdated(fileName);
        update();
    });

function createWatcher(rootPath: string, extension: string[]) {
    return watch(`${rootPath}/**/*.{${extension.join(',')}}`, {
        ignored: (path) => path.includes('node_modules'),
        ignoreInitial: true
    });
}

async function update() {

    const currentReq = ++req;
    const isCanceled = () => currentReq !== req;
    await new Promise(resolve => setTimeout(resolve, 100));
    if (isCanceled()) return;

    process.stdout.write('\x1Bc'); // clear console

    let hasError = false;
    for (const fileName of project.languageServiceHost.getScriptFileNames()) {
        const errors = await linter.check(fileName);
        if (isCanceled()) return;
        if (errors.length) {
            linter.logErrors(fileName, errors);
            hasError = true;
        }
    }
    if (!hasError) {
        console.log('No errors');
    }
}

function getTsconfig() {

    let tsconfig = path.resolve(process.cwd(), './tsconfig.json');

    const tsconfigIndex = process.argv.indexOf('--tsconfig');
    if (tsconfigIndex >= 0) {
        tsconfig = path.resolve(process.cwd(), process.argv[tsconfigIndex + 1]);
    }

    if (!fs.existsSync(tsconfig)) {
        throw `tsconfig.json not found: ${tsconfig}`;
    }

    return tsconfig;
}

Create Project without tsconfig.json

const rootPath = process.cwd();
const fileNames = [
	path.resolve(rootPath, './src/a.ts'),
	path.resolve(rootPath, './src/b.js'),
	path.resolve(rootPath, './src/c.foo'),
];
const project = kit.createInferredProject(rootPath, fileNames);
2.4.12

5 months ago

2.4.11

8 months ago

2.4.10

9 months ago

2.4.9

9 months ago

2.4.7

10 months ago

2.4.8

10 months ago

2.4.6

10 months ago

2.4.1

12 months ago

2.4.3

11 months ago

2.4.2

11 months ago

2.4.5

11 months ago

2.4.4

11 months ago

2.4.0

12 months ago

2.4.0-alpha.20

12 months ago

2.4.0-alpha.19

12 months ago

2.4.0-alpha.18

1 year ago

2.3.5-alpha.1

1 year ago

2.3.5-alpha.2

1 year ago

2.4.0-alpha.10

1 year ago

2.3.2

1 year ago

2.4.0-alpha.11

1 year ago

2.3.1

1 year ago

2.4.0-alpha.12

1 year ago

2.3.4

1 year ago

2.4.0-alpha.13

1 year ago

2.3.3

1 year ago

2.4.0-alpha.14

1 year ago

2.4.0-alpha.15

1 year ago

2.4.0-alpha.16

1 year ago

2.4.0-alpha.17

1 year ago

2.4.0-alpha.0

1 year ago

2.4.0-alpha.2

1 year ago

2.4.0-alpha.1

1 year ago

2.4.0-alpha.4

1 year ago

2.4.0-alpha.3

1 year ago

2.4.0-alpha.6

1 year ago

2.4.0-alpha.5

1 year ago

2.4.0-alpha.8

1 year ago

2.4.0-alpha.7

1 year ago

2.4.0-alpha.9

1 year ago

2.3.0-alpha.8

1 year ago

2.3.0-alpha.9

1 year ago

2.3.0

1 year ago

2.3.0-alpha.10

1 year ago

2.3.0-alpha.13

1 year ago

2.3.0-alpha.14

1 year ago

2.3.0-alpha.11

1 year ago

2.3.0-alpha.12

1 year ago

2.3.0-alpha.15

1 year ago

2.3.0-alpha.6

1 year ago

2.3.0-alpha.7

1 year ago

2.3.0-alpha.2

1 year ago

2.3.0-alpha.3

1 year ago

2.3.0-alpha.0

1 year ago

2.3.0-alpha.1

1 year ago

2.3.0-alpha.4

1 year ago

2.3.0-alpha.5

1 year ago

2.2.5

1 year ago

2.2.3

1 year ago

2.2.4

1 year ago

2.2.2

1 year ago

2.2.1

1 year ago

2.2.0

1 year ago

2.2.0-alpha.11

1 year ago

2.2.0-alpha.12

1 year ago

2.2.0-alpha.10

1 year ago

2.2.0-alpha.9

1 year ago

2.2.0-alpha.8

1 year ago

2.2.0-alpha.7

1 year ago

2.2.0-alpha.6

1 year ago

2.2.0-alpha.5

1 year ago

2.2.0-alpha.4

1 year ago

2.2.0-alpha.3

1 year ago

2.2.0-alpha.2

1 year ago

2.1.6

1 year ago

2.2.0-alpha.1

1 year ago

2.2.0-alpha.0

1 year ago

2.1.5

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.2

1 year ago

2.1.1

1 year ago

2.1.0

1 year ago

2.0.4

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

2.0.0-alpha.14

2 years ago

2.0.0-alpha.13

2 years ago

2.0.0-alpha.11

2 years ago

2.0.0-alpha.12

2 years ago

2.0.0-alpha.8

2 years ago

2.0.0-alpha.9

2 years ago

2.0.0-alpha.10

2 years ago

2.0.0-alpha.7

2 years ago

2.0.0-alpha.6

2 years ago

2.0.0-alpha.5

2 years ago

2.0.0-alpha.4

2 years ago

2.0.0-alpha.3

2 years ago

2.0.0-alpha.1

2 years ago

2.0.0-alpha.2

2 years ago

2.0.0-alpha.0

2 years ago

1.10.5

2 years ago

1.10.4

2 years ago

1.10.3

2 years ago

1.10.2

2 years ago

1.10.9

2 years ago

1.10.8

2 years ago

1.10.7

2 years ago

1.10.6

2 years ago

1.8.2

2 years ago

1.8.1

2 years ago

1.8.0

2 years ago

1.9.2

2 years ago

1.11.0

2 years ago

1.11.1

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

1.10.10-alpha.1

2 years ago

1.10.10-alpha.0

2 years ago

1.10.10

2 years ago

1.8.3

2 years ago

1.10.1

2 years ago

1.10.0

2 years ago

1.7.10

2 years ago

1.7.9

2 years ago

1.6.4

2 years ago

1.6.3

2 years ago

1.7.8

2 years ago

1.7.7

2 years ago

1.7.6

2 years ago

1.7.5

2 years ago

1.7.4

2 years ago

1.7.3

2 years ago

1.7.2

2 years ago

1.7.1

2 years ago

1.7.0

2 years ago

1.6.9-patch.2

2 years ago

1.6.9-patch.1

2 years ago

1.6.9

2 years ago

1.6.8

2 years ago

1.6.7

2 years ago

1.6.6

2 years ago

1.6.5

2 years ago

1.4.0-alpha.0

2 years ago

1.4.0-alpha.1

2 years ago

1.4.0-alpha.2

2 years ago

1.4.0-alpha.3

2 years ago

1.6.2

2 years ago

1.6.1

2 years ago

1.6.0

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.4.0-alpha.8

2 years ago

1.4.0-alpha.9

2 years ago

1.4.0-alpha.4

2 years ago

1.4.0-alpha.5

2 years ago

1.4.0-alpha.6

2 years ago

1.4.0-alpha.7

2 years ago

1.3.0-alpha.0

2 years ago

1.3.0-alpha.2

2 years ago

1.3.0-alpha.1

2 years ago

1.3.0-alpha.3

2 years ago

1.5.4

2 years ago

1.5.3

2 years ago

1.4.0-alpha.11

2 years ago

1.5.2

2 years ago

1.4.0-alpha.12

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

1.4.0-alpha.10

2 years ago

1.5.0-alpha.0

2 years ago

1.2.0-alpha.10

2 years ago

1.2.0-alpha.12

2 years ago

1.2.0-alpha.11

2 years ago

1.2.0-alpha.14

2 years ago

1.2.0-alpha.13

2 years ago

1.2.0-alpha.16

2 years ago

1.2.0-alpha.15

2 years ago

1.2.0-alpha.18

2 years ago

1.2.0-alpha.17

2 years ago

1.2.0-alpha.19

2 years ago

1.2.0-alpha.9

3 years ago

1.2.0-alpha.8

3 years ago

1.2.0-alpha.7

3 years ago

1.2.0-alpha.6

3 years ago

1.2.0-alpha.5

3 years ago

1.2.0-alpha.4

3 years ago

1.2.0-alpha.3

3 years ago

1.2.0-alpha.2

3 years ago

1.2.0-alpha.1

3 years ago

1.1.0-alpha.2

3 years ago