2.4.12 • Published 4 months ago

@volar/kit v2.4.12

Weekly downloads
-
License
MIT
Repository
github
Last release
4 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

4 months ago

2.4.11

7 months ago

2.4.10

8 months ago

2.4.9

8 months ago

2.4.7

9 months ago

2.4.8

9 months ago

2.4.6

9 months ago

2.4.1

11 months ago

2.4.3

10 months ago

2.4.2

11 months ago

2.4.5

10 months ago

2.4.4

10 months ago

2.4.0

11 months ago

2.4.0-alpha.20

11 months ago

2.4.0-alpha.19

11 months ago

2.4.0-alpha.18

12 months 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

12 months 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

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

2.0.0-alpha.14

1 year 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

2 years ago

1.2.0-alpha.8

2 years ago

1.2.0-alpha.7

2 years ago

1.2.0-alpha.6

2 years ago

1.2.0-alpha.5

2 years ago

1.2.0-alpha.4

2 years ago

1.2.0-alpha.3

2 years ago

1.2.0-alpha.2

2 years ago

1.2.0-alpha.1

2 years ago

1.1.0-alpha.2

2 years ago