added doga
This commit is contained in:
21
25_02_24/node_modules/lowdb/lib/adapters/node/DataFile.d.ts
generated
vendored
Normal file
21
25_02_24/node_modules/lowdb/lib/adapters/node/DataFile.d.ts
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
/// <reference types="node" resolution-mode="require"/>
|
||||
import { PathLike } from 'fs';
|
||||
import { Adapter, SyncAdapter } from '../../core/Low.js';
|
||||
export declare class DataFile<T> implements Adapter<T> {
|
||||
#private;
|
||||
constructor(filename: PathLike, { parse, stringify, }: {
|
||||
parse: (str: string) => T;
|
||||
stringify: (data: T) => string;
|
||||
});
|
||||
read(): Promise<T | null>;
|
||||
write(obj: T): Promise<void>;
|
||||
}
|
||||
export declare class DataFileSync<T> implements SyncAdapter<T> {
|
||||
#private;
|
||||
constructor(filename: PathLike, { parse, stringify, }: {
|
||||
parse: (str: string) => T;
|
||||
stringify: (data: T) => string;
|
||||
});
|
||||
read(): T | null;
|
||||
write(obj: T): void;
|
||||
}
|
||||
45
25_02_24/node_modules/lowdb/lib/adapters/node/DataFile.js
generated
vendored
Normal file
45
25_02_24/node_modules/lowdb/lib/adapters/node/DataFile.js
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
import { TextFile, TextFileSync } from './TextFile.js';
|
||||
export class DataFile {
|
||||
#adapter;
|
||||
#parse;
|
||||
#stringify;
|
||||
constructor(filename, { parse, stringify, }) {
|
||||
this.#adapter = new TextFile(filename);
|
||||
this.#parse = parse;
|
||||
this.#stringify = stringify;
|
||||
}
|
||||
async read() {
|
||||
const data = await this.#adapter.read();
|
||||
if (data === null) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
return this.#parse(data);
|
||||
}
|
||||
}
|
||||
write(obj) {
|
||||
return this.#adapter.write(this.#stringify(obj));
|
||||
}
|
||||
}
|
||||
export class DataFileSync {
|
||||
#adapter;
|
||||
#parse;
|
||||
#stringify;
|
||||
constructor(filename, { parse, stringify, }) {
|
||||
this.#adapter = new TextFileSync(filename);
|
||||
this.#parse = parse;
|
||||
this.#stringify = stringify;
|
||||
}
|
||||
read() {
|
||||
const data = this.#adapter.read();
|
||||
if (data === null) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
return this.#parse(data);
|
||||
}
|
||||
}
|
||||
write(obj) {
|
||||
this.#adapter.write(this.#stringify(obj));
|
||||
}
|
||||
}
|
||||
9
25_02_24/node_modules/lowdb/lib/adapters/node/JSONFile.d.ts
generated
vendored
Normal file
9
25_02_24/node_modules/lowdb/lib/adapters/node/JSONFile.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
/// <reference types="node" resolution-mode="require"/>
|
||||
import { PathLike } from 'fs';
|
||||
import { DataFile, DataFileSync } from './DataFile.js';
|
||||
export declare class JSONFile<T> extends DataFile<T> {
|
||||
constructor(filename: PathLike);
|
||||
}
|
||||
export declare class JSONFileSync<T> extends DataFileSync<T> {
|
||||
constructor(filename: PathLike);
|
||||
}
|
||||
17
25_02_24/node_modules/lowdb/lib/adapters/node/JSONFile.js
generated
vendored
Normal file
17
25_02_24/node_modules/lowdb/lib/adapters/node/JSONFile.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
import { DataFile, DataFileSync } from './DataFile.js';
|
||||
export class JSONFile extends DataFile {
|
||||
constructor(filename) {
|
||||
super(filename, {
|
||||
parse: JSON.parse,
|
||||
stringify: (data) => JSON.stringify(data, null, 2),
|
||||
});
|
||||
}
|
||||
}
|
||||
export class JSONFileSync extends DataFileSync {
|
||||
constructor(filename) {
|
||||
super(filename, {
|
||||
parse: JSON.parse,
|
||||
stringify: (data) => JSON.stringify(data, null, 2),
|
||||
});
|
||||
}
|
||||
}
|
||||
15
25_02_24/node_modules/lowdb/lib/adapters/node/TextFile.d.ts
generated
vendored
Normal file
15
25_02_24/node_modules/lowdb/lib/adapters/node/TextFile.d.ts
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/// <reference types="node" resolution-mode="require"/>
|
||||
import { PathLike } from 'node:fs';
|
||||
import { Adapter, SyncAdapter } from '../../core/Low.js';
|
||||
export declare class TextFile implements Adapter<string> {
|
||||
#private;
|
||||
constructor(filename: PathLike);
|
||||
read(): Promise<string | null>;
|
||||
write(str: string): Promise<void>;
|
||||
}
|
||||
export declare class TextFileSync implements SyncAdapter<string> {
|
||||
#private;
|
||||
constructor(filename: PathLike);
|
||||
read(): string | null;
|
||||
write(str: string): void;
|
||||
}
|
||||
54
25_02_24/node_modules/lowdb/lib/adapters/node/TextFile.js
generated
vendored
Normal file
54
25_02_24/node_modules/lowdb/lib/adapters/node/TextFile.js
generated
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
import { readFileSync, renameSync, writeFileSync } from 'node:fs';
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
import { Writer } from 'steno';
|
||||
export class TextFile {
|
||||
#filename;
|
||||
#writer;
|
||||
constructor(filename) {
|
||||
this.#filename = filename;
|
||||
this.#writer = new Writer(filename);
|
||||
}
|
||||
async read() {
|
||||
let data;
|
||||
try {
|
||||
data = await readFile(this.#filename, 'utf-8');
|
||||
}
|
||||
catch (e) {
|
||||
if (e.code === 'ENOENT') {
|
||||
return null;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
write(str) {
|
||||
return this.#writer.write(str);
|
||||
}
|
||||
}
|
||||
export class TextFileSync {
|
||||
#tempFilename;
|
||||
#filename;
|
||||
constructor(filename) {
|
||||
this.#filename = filename;
|
||||
const f = filename.toString();
|
||||
this.#tempFilename = path.join(path.dirname(f), `.${path.basename(f)}.tmp`);
|
||||
}
|
||||
read() {
|
||||
let data;
|
||||
try {
|
||||
data = readFileSync(this.#filename, 'utf-8');
|
||||
}
|
||||
catch (e) {
|
||||
if (e.code === 'ENOENT') {
|
||||
return null;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
write(str) {
|
||||
writeFileSync(this.#tempFilename, str);
|
||||
renameSync(this.#tempFilename, this.#filename);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user