@soga/utils 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
+ import { AnalyseResult } from 'chardet';
1
2
  export declare const isUtf8Text: (text: string) => Promise<boolean>;
2
3
  export declare const isUtf8File: (filepath: string) => Promise<boolean>;
3
- export declare const getAllCharcode: (filepath: string) => Promise<import("chardet").AnalyseResult>;
4
- export declare function getBufferEncoding(buffer: Buffer<ArrayBufferLike>): string;
5
- export declare function readFileAsUTF8(filePath: string): Promise<string>;
6
- export declare function saveFileAsUtf8(inputFilePath: string, outputFilePath: string): Promise<void>;
4
+ export declare const getFileAllCharcode: (filepath: string) => Promise<AnalyseResult>;
5
+ export declare const getFileCharcodeName: (filepath: string) => Promise<string>;
6
+ export declare const getBufferCharcodeName: (buffer: Buffer<ArrayBufferLike>) => string;
7
+ export declare const saveFileAsUtf8: (inputFilePath: string, outputFilePath: string) => Promise<void>;
package/dist/charcode.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getAllCharcode=exports.isUtf8File=exports.isUtf8Text=void 0,exports.getBufferEncoding=getBufferEncoding,exports.readFileAsUTF8=readFileAsUTF8,exports.saveFileAsUtf8=saveFileAsUtf8;const chardet_1=__importDefault(require("chardet")),fs_1=require("fs"),fs_extra_1=require("fs-extra"),iconv_lite_1=__importDefault(require("iconv-lite")),buffer_1=require("./buffer"),file_1=require("./file"),isUtf8Text=async e=>"UTF-8"===chardet_1.default.detect(Buffer.from(e)).toUpperCase();exports.isUtf8Text=isUtf8Text;const isUtf8File=async e=>"UTF-8"===(await chardet_1.default.detectFile(e)).toUpperCase();exports.isUtf8File=isUtf8File;const getAllCharcode=async e=>{const t=await(0,file_1.getFileSize)(e);let r=t-1;t>20480&&(r=20480);const i=await(0,buffer_1.getFileBufferSlice)(e,0,r);return chardet_1.default.analyse(i)};function getBufferEncoding(e){const t=chardet_1.default.analyse(e),r=t.find((e=>"UTF-8"===e.name)),i=t.find((e=>e.name.startsWith("GB")));return r?i?r.confidence>=i.confidence?r.name:i.name:r.name:i?i.name:t[0].name}async function readFileAsUTF8(e){return await new Promise(((t,r)=>{(0,fs_extra_1.readFile)(e,((e,i)=>{if(e)return void r(e);const a=getBufferEncoding(i);if("UTF-8"===a)t(i.toString("utf8"));else{const e=iconv_lite_1.default.decode(i,a);t(e)}}))}))}async function saveFileAsUtf8(e,t){await new Promise(((r,i)=>{const a=(0,fs_1.createReadStream)(e),s=(0,fs_1.createWriteStream)(t);a.on("error",(e=>{console.error(`读取文件时发生错误: ${e.message}`),i(e)})),s.on("error",(e=>{console.error(`写入文件时发生错误: ${e.message}`),i(e)})),(async()=>{try{const t=await(0,file_1.getFileSize)(e),o=Math.min(1023,t),f=getBufferEncoding(await(0,buffer_1.getFileBufferSlice)(e,0,o));if("UTF-8"===f)a.pipe(s);else{const e=iconv_lite_1.default.decodeStream(f),t=iconv_lite_1.default.encodeStream("utf8");a.pipe(e).pipe(t).pipe(s).on("finish",(()=>{r(!0)})).on("error",(e=>{console.error(`转换文件时发生错误: ${e.message}`),i(e)}))}}catch(e){i(e)}})()}))}exports.getAllCharcode=getAllCharcode;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.saveFileAsUtf8=exports.getBufferCharcodeName=exports.getFileCharcodeName=exports.getFileAllCharcode=exports.isUtf8File=exports.isUtf8Text=void 0;const chardet_1=__importDefault(require("chardet")),fs_1=require("fs"),iconv_lite_1=__importDefault(require("iconv-lite")),buffer_1=require("./buffer"),file_1=require("./file"),getSampleBuffer=async e=>{const t=await(0,file_1.getFileSize)(e);let r=t-1;t>20480&&(r=20480);return await(0,buffer_1.getFileBufferSlice)(e,0,r)},parseCharcodeInfo=e=>{const t=e.find((e=>"UTF-8"===e.name)),r=e.find((e=>e.name.startsWith("GB")));return t?r?t.confidence>=r.confidence?t:r:t:r||e[0]},isUtf8Text=async e=>"UTF-8"===chardet_1.default.detect(Buffer.from(e)).toUpperCase();exports.isUtf8Text=isUtf8Text;const isUtf8File=async e=>"UTF-8"===(await chardet_1.default.detectFile(e)).toUpperCase();exports.isUtf8File=isUtf8File;const getFileAllCharcode=async e=>{const t=await getSampleBuffer(e);return chardet_1.default.analyse(t)};exports.getFileAllCharcode=getFileAllCharcode;const getFileCharcodeName=async e=>{const t=await(0,exports.getFileAllCharcode)(e);return parseCharcodeInfo(t).name};exports.getFileCharcodeName=getFileCharcodeName;const getBufferCharcodeName=e=>{const t=chardet_1.default.analyse(e);return parseCharcodeInfo(t).name};exports.getBufferCharcodeName=getBufferCharcodeName;const saveFileAsUtf8=async(e,t)=>{await new Promise(((r,a)=>{const o=(0,fs_1.createReadStream)(e),i=(0,fs_1.createWriteStream)(t);o.on("error",(e=>{console.error(`读取文件时发生错误: ${e.message}`),a(e)})),i.on("error",(e=>{console.error(`写入文件时发生错误: ${e.message}`),a(e)})),(async()=>{try{const t=await(0,file_1.getFileSize)(e),s=Math.min(1023,t),f=await(0,buffer_1.getFileBufferSlice)(e,0,s),c=(0,exports.getBufferCharcodeName)(f);if("UTF-8"===c)o.pipe(i);else{const e=iconv_lite_1.default.decodeStream(c),t=iconv_lite_1.default.encodeStream("utf8");o.pipe(e).pipe(t).pipe(i).on("finish",(()=>{r(!0)})).on("error",(e=>{console.error(`转换文件时发生错误: ${e.message}`),a(e)}))}}catch(e){a(e)}})()}))};exports.saveFileAsUtf8=saveFileAsUtf8;
package/dist/language.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFileLanguage=exports.getTextLanguage=void 0;const buffer_1=require("./buffer"),charcode_1=require("./charcode"),file_1=require("./file"),language_map_1=require("./language-map"),langdetect_1=__importDefault(require("langdetect")),iconv_lite_1=__importDefault(require("iconv-lite")),getTextLanguage=async(e,t=!0)=>{try{const a=langdetect_1.default.detectOne(e);return a||t?a&&language_map_1.languageMap[a]?language_map_1.languageMap[a]:language_map_1.defaultLanguage:null}catch(e){return language_map_1.defaultLanguage}};exports.getTextLanguage=getTextLanguage;const getFileLanguage=async(e,t=!0)=>{const a=await(0,file_1.getFileSize)(e);let g=a-1;a>20480&&(g=20480);const n=await(0,buffer_1.getFileBufferSlice)(e,0,g),u=(0,charcode_1.getBufferEncoding)(n);let r="";r="UTF-8"==u.toUpperCase()?n.toString("utf8"):iconv_lite_1.default.decode(n,u);const l=cleanSubtitleContent(r);return await(0,exports.getTextLanguage)(l,t)};function cleanSubtitleContent(e){return e.replace(/[\d:,.()[\]+-_@*]/gm,"")}exports.getFileLanguage=getFileLanguage;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFileLanguage=exports.getTextLanguage=void 0;const buffer_1=require("./buffer"),charcode_1=require("./charcode"),file_1=require("./file"),language_map_1=require("./language-map"),langdetect_1=__importDefault(require("langdetect")),iconv_lite_1=__importDefault(require("iconv-lite")),getSampleBuffer=async e=>{const t=await(0,file_1.getFileSize)(e);let a=t-1;t>20480&&(a=20480);return await(0,buffer_1.getFileBufferSlice)(e,0,a)},getTextLanguage=async(e,t=!0)=>{try{const a=langdetect_1.default.detectOne(e);return a||t?a&&language_map_1.languageMap[a]?language_map_1.languageMap[a]:language_map_1.defaultLanguage:null}catch(e){return language_map_1.defaultLanguage}};exports.getTextLanguage=getTextLanguage;const getFileLanguage=async(e,t=!0)=>{const a=await getSampleBuffer(e),g=(0,charcode_1.getBufferCharcodeName)(a);let u="";u="UTF-8"==g.toUpperCase()?a.toString("utf8"):iconv_lite_1.default.decode(a,g);const n=cleanSubtitleContent(u);return await(0,exports.getTextLanguage)(n,t)};function cleanSubtitleContent(e){return e.replace(/[\d:,.()[\]+-_@*]/gm,"")}exports.getFileLanguage=getFileLanguage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soga/utils",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },