Socket
Socket
Sign inDemoInstall

cspell-config-lib

Package Overview
Dependencies
Maintainers
1
Versions
124
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cspell-config-lib - npm Package Compare versions

Comparing version 8.0.0 to 8.1.0

dist/ConfigReadWriteHandler.d.ts

16

dist/createReaderWriter.d.ts

@@ -1,5 +0,13 @@

import type { CSpellConfigFileReaderWriter } from './CSpellConfigFileReaderWriter';
import type { Deserializer } from './Deserializer';
import type { IO } from './IO';
export declare function createReaderWriter(deserializers?: Deserializer[], io?: IO): CSpellConfigFileReaderWriter;
import type { CSpellConfigFileReaderWriter } from './CSpellConfigFileReaderWriter.js';
import type { FileLoaderMiddleware } from './FileLoader.js';
import type { IO } from './IO.js';
import type { SerializerMiddleware } from './Serializer.js';
/**
*
* @param deserializers - Additional deserializers to use when reading a config file. The order of the deserializers is
* important. The last one in the list will be the first one to be called.
* @param io - an optional injectable IO interface. The default it to use the file system.
* @returns
*/
export declare function createReaderWriter(deserializers?: SerializerMiddleware[], loaders?: FileLoaderMiddleware[], io?: IO): CSpellConfigFileReaderWriter;
//# sourceMappingURL=createReaderWriter.d.ts.map

@@ -1,23 +0,15 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createReaderWriter = void 0;
const fs_1 = require("fs");
const CSpellConfigFileReaderWriter_1 = require("./CSpellConfigFileReaderWriter");
const deserializers_1 = require("./deserializers");
const defaultIO = {
readFile,
writeFile,
};
function createReaderWriter(deserializers = [], io = defaultIO) {
return new CSpellConfigFileReaderWriter_1.CSpellConfigFileReaderWriterImpl(io, deserializers.concat(deserializers_1.defaultDeserializers));
import { CSpellConfigFileReaderWriterImpl } from './CSpellConfigFileReaderWriter.js';
import { defaultIO } from './defaultIO.js';
import { defaultLoaders } from './loaders/index.js';
import { defaultDeserializers } from './serializers/index.js';
/**
*
* @param deserializers - Additional deserializers to use when reading a config file. The order of the deserializers is
* important. The last one in the list will be the first one to be called.
* @param io - an optional injectable IO interface. The default it to use the file system.
* @returns
*/
export function createReaderWriter(deserializers = [], loaders = [], io = defaultIO) {
return new CSpellConfigFileReaderWriterImpl(io, defaultDeserializers.concat(deserializers), defaultLoaders.concat(loaders));
}
exports.createReaderWriter = createReaderWriter;
function readFile(uriFile) {
const uri = new URL(uriFile);
return fs_1.promises.readFile(uri, 'utf-8');
}
function writeFile(uriFile, content) {
const uri = new URL(uriFile);
return fs_1.promises.writeFile(uri, content);
}
//# sourceMappingURL=createReaderWriter.js.map
import type { CSpellSettings } from '@cspell/cspell-types';
import type { Serializer } from './Serializer';
export interface CSpellConfigFile {
readonly uri: string;
export interface CSpellConfigFileReference {
readonly url: URL;
}
export interface ICSpellConfigFile {
readonly url: URL;
readonly settings: CSpellSettings;
serialize(): string;
addWords(words: string[]): this;
readonly readonly?: boolean;
}
export declare class ImplCSpellConfigFile implements CSpellConfigFile {
readonly uri: string;
export declare abstract class CSpellConfigFile implements ICSpellConfigFile {
readonly url: URL;
constructor(url: URL);
abstract readonly settings: CSpellSettings;
abstract addWords(words: string[]): this;
get readonly(): boolean;
}
export declare abstract class ImplCSpellConfigFile extends CSpellConfigFile {
readonly url: URL;
readonly settings: CSpellSettings;
readonly serializer: Serializer;
constructor(uri: string, settings: CSpellSettings, serializer: Serializer);
serialize(): string;
constructor(url: URL, settings: CSpellSettings);
addWords(words: string[]): this;

@@ -19,2 +25,3 @@ }

* Adds words to a list, sorts the list and makes sure it is unique.
* Note: this method is used to try and preserve comments in the config file.
* @param list - list to be modified

@@ -21,0 +28,0 @@ * @param toAdd - words to add

@@ -1,17 +0,21 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.__testing__ = exports.ImplCSpellConfigFile = void 0;
class ImplCSpellConfigFile {
uri;
export class CSpellConfigFile {
url;
constructor(url) {
this.url = url;
}
get readonly() {
return this.settings.readonly || this.url.protocol !== 'file:';
}
}
export class ImplCSpellConfigFile extends CSpellConfigFile {
url;
settings;
serializer;
constructor(uri, settings, serializer) {
this.uri = uri;
constructor(url, settings) {
super(url);
this.url = url;
this.settings = settings;
this.serializer = serializer;
}
serialize() {
return this.serializer(this.settings);
}
addWords(words) {
if (this.readonly)
throw new Error(`Config file is readonly: ${this.url.href}`);
const w = this.settings.words || [];

@@ -23,5 +27,5 @@ this.settings.words = w;

}
exports.ImplCSpellConfigFile = ImplCSpellConfigFile;
/**
* Adds words to a list, sorts the list and makes sure it is unique.
* Note: this method is used to try and preserve comments in the config file.
* @param list - list to be modified

@@ -40,5 +44,5 @@ * @param toAdd - words to add

}
exports.__testing__ = {
export const __testing__ = {
addUniqueWordsToListAndSort,
};
//# sourceMappingURL=CSpellConfigFile.js.map

@@ -1,18 +0,30 @@

import type { CSpellConfigFile } from './CSpellConfigFile';
import type { Deserializer, DeserializerNext } from './Deserializer';
import type { IO } from './IO';
export declare const defaultNextDeserializer: DeserializerNext;
import type { CSpellConfigFile, ICSpellConfigFile } from './CSpellConfigFile.js';
import type { FileLoaderMiddleware } from './FileLoader.js';
import type { IO } from './IO.js';
import type { DeserializerNext, SerializerMiddleware } from './Serializer.js';
import type { TextFileRef } from './TextFile.js';
export interface CSpellConfigFileReaderWriter {
readonly io: IO;
readonly deserializers: Deserializer[];
readConfig(uri: string): Promise<CSpellConfigFile>;
writeConfig(configFile: CSpellConfigFile): Promise<void>;
readonly middleware: SerializerMiddleware[];
readonly loaders: FileLoaderMiddleware[];
readConfig(uri: URL | string): Promise<CSpellConfigFile>;
writeConfig(configFile: CSpellConfigFile): Promise<TextFileRef>;
clearCachedFiles(): void;
}
export declare class CSpellConfigFileReaderWriterImpl implements CSpellConfigFileReaderWriter {
readonly io: IO;
readonly deserializers: Deserializer[];
constructor(io: IO, deserializers: Deserializer[]);
readConfig(uri: string): Promise<CSpellConfigFile>;
writeConfig(configFile: CSpellConfigFile): Promise<void>;
readonly middleware: SerializerMiddleware[];
readonly loaders: FileLoaderMiddleware[];
/**
* @param io - an optional injectable IO interface. The default is to use the file system.
* @param deserializers - Additional deserializers to use when reading a config file. The order of the deserializers is
* important. The last one in the list will be the first one to be called.
*/
constructor(io: IO, middleware: SerializerMiddleware[], loaders: FileLoaderMiddleware[]);
readConfig(uri: URL | string): Promise<CSpellConfigFile>;
getDeserializer(): DeserializerNext;
serialize(configFile: ICSpellConfigFile): string;
writeConfig(configFile: ICSpellConfigFile): Promise<TextFileRef>;
clearCachedFiles(): void;
}
//# sourceMappingURL=CSpellConfigFileReaderWriter.d.ts.map

@@ -1,33 +0,41 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CSpellConfigFileReaderWriterImpl = exports.defaultNextDeserializer = void 0;
const defaultNextDeserializer = (content) => {
throw new Error(`Unable to parse config file: "${content.uri}"`);
};
exports.defaultNextDeserializer = defaultNextDeserializer;
class CSpellConfigFileReaderWriterImpl {
import { getDeserializer, getLoader, getSerializer } from './middlewareHelper.js';
import { toURL } from './util/toURL.js';
export class CSpellConfigFileReaderWriterImpl {
io;
deserializers;
constructor(io, deserializers) {
middleware;
loaders;
/**
* @param io - an optional injectable IO interface. The default is to use the file system.
* @param deserializers - Additional deserializers to use when reading a config file. The order of the deserializers is
* important. The last one in the list will be the first one to be called.
*/
constructor(io, middleware, loaders) {
this.io = io;
this.deserializers = deserializers;
this.middleware = middleware;
this.loaders = loaders;
}
async readConfig(uri) {
const content = await this.io.readFile(uri);
let next = exports.defaultNextDeserializer;
const desContent = { uri, content };
for (const des of [...this.deserializers].reverse()) {
next = curry(des, next);
readConfig(uri) {
const loader = getLoader(this.loaders);
return loader({ url: toURL(uri), context: { deserialize: this.getDeserializer(), io: this.io } });
}
getDeserializer() {
return getDeserializer(this.middleware);
}
serialize(configFile) {
const serializer = getSerializer(this.middleware);
return serializer(configFile);
}
async writeConfig(configFile) {
if (configFile.readonly)
throw new Error(`Config file is readonly: ${configFile.url.href}`);
const content = this.serialize(configFile);
await this.io.writeFile({ url: configFile.url, content });
return { url: configFile.url };
}
clearCachedFiles() {
for (const loader of this.loaders) {
loader.reset?.();
}
return next(desContent);
}
writeConfig(configFile) {
const content = configFile.serialize();
return this.io.writeFile(configFile.uri, content);
}
}
exports.CSpellConfigFileReaderWriterImpl = CSpellConfigFileReaderWriterImpl;
function curry(des, next) {
return (content) => des(content, next);
}
//# sourceMappingURL=CSpellConfigFileReaderWriter.js.map

@@ -1,7 +0,8 @@

export { createReaderWriter } from './createReaderWriter';
export type { CSpellConfigFile } from './CSpellConfigFile';
export type { CSpellConfigFileReaderWriter } from './CSpellConfigFileReaderWriter';
export type { Deserializer, DeserializerNext, DeserializerParams } from './Deserializer';
export type { IO } from './IO';
export type { Serializer } from './Serializer';
export { createReaderWriter } from './createReaderWriter.js';
export { CSpellConfigFile } from './CSpellConfigFile.js';
export { CSpellConfigFileInMemory, CSpellConfigFileJavaScript, CSpellConfigFileJson, CSpellConfigFilePackageJson, CSpellConfigFileYaml, } from './CSpellConfigFile/index.js';
export type { CSpellConfigFileReaderWriter } from './CSpellConfigFileReaderWriter.js';
export type { IO } from './IO.js';
export type { DeserializerNext, DeserializerParams, DeserializerReducer, SerializerMiddleware, SerializerNext, SerializerReducer, SerializeSettingsFn, } from './Serializer.js';
export type { TextFile, TextFileRef } from './TextFile.js';
//# sourceMappingURL=index.d.ts.map

@@ -1,6 +0,4 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createReaderWriter = void 0;
var createReaderWriter_1 = require("./createReaderWriter");
Object.defineProperty(exports, "createReaderWriter", { enumerable: true, get: function () { return createReaderWriter_1.createReaderWriter; } });
export { createReaderWriter } from './createReaderWriter.js';
export { CSpellConfigFile } from './CSpellConfigFile.js';
export { CSpellConfigFileInMemory, CSpellConfigFileJavaScript, CSpellConfigFileJson, CSpellConfigFilePackageJson, CSpellConfigFileYaml, } from './CSpellConfigFile/index.js';
//# sourceMappingURL=index.js.map

@@ -0,5 +1,6 @@

import type { TextFile, TextFileRef } from './TextFile.js';
export interface IO {
readFile(uri: string): Promise<string>;
writeFile(uri: string, content: string): Promise<void>;
readFile(url: URL): Promise<TextFile>;
writeFile(file: TextFile): Promise<TextFileRef>;
}
//# sourceMappingURL=IO.d.ts.map

@@ -1,3 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=IO.js.map
import type { CSpellSettings } from '@cspell/cspell-types';
export interface Serializer {
(settings: CSpellSettings): string;
import type { CSpellConfigFile, ICSpellConfigFile } from './CSpellConfigFile.js';
import type { TextFile } from './TextFile.js';
export interface SerializerNext {
(content: ICSpellConfigFile): string;
}
export interface SerializerReducer {
/**
* If a Serializer can handle a given request, it returns a CSpellConfigFile, otherwise it calls `next`.
*/
(settings: ICSpellConfigFile, next: SerializerNext): string;
}
export type SerializeSettingsFn = (settings: CSpellSettings) => string;
export interface DeserializerParams extends TextFile {
}
export interface DeserializerNext {
(content: DeserializerParams): CSpellConfigFile;
}
export interface DeserializerReducer {
/**
* If a Deserializer can handle a given request, it returns a CSpellConfigFile, otherwise it calls `next`.
*/
(params: DeserializerParams, next: DeserializerNext): CSpellConfigFile;
}
export interface SerializerMiddleware {
serialize: SerializerReducer;
deserialize: DeserializerReducer;
}
//# sourceMappingURL=Serializer.d.ts.map

@@ -1,3 +0,2 @@

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export {};
//# sourceMappingURL=Serializer.js.map

@@ -1,33 +0,6 @@

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fixtures = void 0;
const path = __importStar(require("path"));
import * as path from 'path';
const fixturesDir = path.join(__dirname, '../../fixtures');
function fixtures(pathOfFixture = '') {
export function fixtures(pathOfFixture = '') {
return path.resolve(fixturesDir, pathOfFixture);
}
exports.fixtures = fixtures;
//# sourceMappingURL=fixtures.js.map

@@ -1,47 +0,18 @@

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyFile = exports.createPathForFile = exports.tempPath = exports.json = void 0;
const fs_1 = require("fs");
const path = __importStar(require("path"));
function json(obj, indent = 2) {
import { promises as fs } from 'fs';
import * as path from 'path';
import { expect } from 'vitest';
export function json(obj, indent = 2) {
return JSON.stringify(obj, null, indent) + '\n';
}
exports.json = json;
function tempPath(file) {
export function tempPath(file) {
const testState = expect.getState();
return path.join(__dirname, '../../temp', testState.currentTestName || 'test', file);
return path.join(__dirname, '../../.temp', testState.currentTestName?.replace(/[^a-z./-]/gi, '_') || 'test', file);
}
exports.tempPath = tempPath;
async function createPathForFile(file) {
await fs_1.promises.mkdir(path.dirname(file), { recursive: true });
export async function createPathForFile(file) {
await fs.mkdir(path.dirname(file), { recursive: true });
}
exports.createPathForFile = createPathForFile;
async function copyFile(fromFile, toFile) {
export async function copyFile(fromFile, toFile) {
await createPathForFile(toFile);
return fs_1.promises.copyFile(fromFile, toFile);
return fs.copyFile(fromFile, toFile);
}
exports.copyFile = copyFile;
//# sourceMappingURL=util.js.map
{
"name": "cspell-config-lib",
"version": "8.0.0",
"version": "8.1.0",
"description": "CSpell Config library",

@@ -12,3 +12,6 @@ "keywords": [

"license": "MIT",
"main": "dist/index.js",
"type": "module",
"exports": {
".": "./dist/index.js"
},
"directories": {

@@ -31,5 +34,5 @@ "dist": "dist"

"clean-build": "pnpm run clean && pnpm run build",
"coverage": "jest --coverage",
"test-watch": "jest --watch",
"test": "jest"
"coverage": "vitest run --coverage",
"test-watch": "vitest",
"test": "vitest run"
},

@@ -47,12 +50,7 @@ "repository": {

"dependencies": {
"@cspell/cspell-types": "8.0.0",
"@cspell/cspell-types": "8.1.0",
"comment-json": "^4.2.3",
"vscode-uri": "^3.0.8",
"yaml": "^1.10.2"
"yaml": "^2.3.4"
},
"devDependencies": {
"@types/jest": "^29.5.7",
"jest": "^29.7.0"
},
"gitHead": "67c22bf98baed1c17bbc658fba8656262d17e370"
"gitHead": "28568808deaf39b9ffa71fd0f722441ff1b8c794"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc