Add .gitignore to exclude all node packages and lock files
This commit is contained in:
Generated
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
import type { CreateContent } from './writer';
|
||||
export declare const nodeWriter: (path: string) => {
|
||||
createContent: CreateContent;
|
||||
};
|
||||
Generated
Vendored
+82
@@ -0,0 +1,82 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.nodeWriter = void 0;
|
||||
const node_fs_1 = __importDefault(require("node:fs"));
|
||||
const log_1 = require("../log");
|
||||
const createContent = (filename) => {
|
||||
return async ({ logLevel }) => {
|
||||
let writPromise = Promise.resolve();
|
||||
const remove = async () => {
|
||||
log_1.Log.verbose(logLevel, 'Removing file', filename);
|
||||
await node_fs_1.default.promises.unlink(filename).catch(() => { });
|
||||
};
|
||||
await remove();
|
||||
if (!node_fs_1.default.existsSync(filename)) {
|
||||
log_1.Log.verbose(logLevel, 'Creating file', filename);
|
||||
node_fs_1.default.writeFileSync(filename, '');
|
||||
}
|
||||
const writeStream = node_fs_1.default.openSync(filename, 'w');
|
||||
let written = 0;
|
||||
const write = async (data) => {
|
||||
await new Promise((resolve, reject) => {
|
||||
node_fs_1.default.write(writeStream, data, 0, data.length, undefined, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
log_1.Log.verbose(logLevel, 'Wrote', data.length, 'bytes to', filename);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
written += data.byteLength;
|
||||
};
|
||||
const updateDataAt = (position, data) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
node_fs_1.default.write(writeStream, data, 0, data.length, position, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
log_1.Log.verbose(logLevel, 'Wrote', data.length, 'bytes to', filename, 'at position', position);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
};
|
||||
const writer = {
|
||||
write: (arr) => {
|
||||
writPromise = writPromise.then(() => write(arr));
|
||||
return writPromise;
|
||||
},
|
||||
updateDataAt: (position, data) => {
|
||||
writPromise = writPromise.then(() => updateDataAt(position, data));
|
||||
return writPromise;
|
||||
},
|
||||
getWrittenByteCount: () => written,
|
||||
remove,
|
||||
finish: async () => {
|
||||
await writPromise;
|
||||
try {
|
||||
log_1.Log.verbose(logLevel, 'Closing file', filename);
|
||||
node_fs_1.default.closeSync(writeStream);
|
||||
return Promise.resolve();
|
||||
}
|
||||
catch (e) {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
},
|
||||
getBlob: async () => {
|
||||
const file = await node_fs_1.default.promises.readFile(filename);
|
||||
// @ts-expect-error
|
||||
return new Blob([file]);
|
||||
},
|
||||
};
|
||||
return writer;
|
||||
};
|
||||
};
|
||||
const nodeWriter = (path) => {
|
||||
return { createContent: createContent(path) };
|
||||
};
|
||||
exports.nodeWriter = nodeWriter;
|
||||
Generated
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
import type { MediaParserLogLevel } from '../log';
|
||||
export type Writer = {
|
||||
write: (arr: Uint8Array) => Promise<void>;
|
||||
finish: () => Promise<void>;
|
||||
getWrittenByteCount: () => number;
|
||||
updateDataAt: (position: number, data: Uint8Array) => Promise<void>;
|
||||
remove: () => Promise<void>;
|
||||
getBlob: () => Promise<Blob>;
|
||||
};
|
||||
export type CreateContent = (options: {
|
||||
filename: string;
|
||||
mimeType: string;
|
||||
logLevel: MediaParserLogLevel;
|
||||
}) => Promise<Writer>;
|
||||
export type WriterInterface = {
|
||||
createContent: CreateContent;
|
||||
};
|
||||
Generated
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
Reference in New Issue
Block a user