Skip to content

Commit

Permalink
disable cache for most tests to handle quota limit
Browse files Browse the repository at this point in the history
  • Loading branch information
leyhline committed May 18, 2023
1 parent 6aa1e8a commit 80e71de
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 19 deletions.
6 changes: 5 additions & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
{
"recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
"recommendations": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint",
"github.vscode-github-actions"
]
}
8 changes: 4 additions & 4 deletions src/MecabWorker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ describe("MecabWorker integration tests", function () {
});

it("creates a worker with UNIDIC2 and parses a string, inserting spaces", async function () {
const worker = await MecabWorker.create(UNIDIC2);
const worker = await MecabWorker.create(UNIDIC2, { noCache: true });
const result = await worker.parse(
"青森県と秋田県にまたがり所在する十和田湖、御鼻部山展望台からの展望"
);
Expand All @@ -27,7 +27,7 @@ describe("MecabWorker integration tests", function () {
});

it("creates a worker with UNIDIC2 and parses a string, returning a node for each word", async function () {
const worker = await MecabWorker.create(UNIDIC2);
const worker = await MecabWorker.create(UNIDIC2, { noCache: true });
const nodes = await worker.parseToNodes(
"青森県と秋田県にまたがり所在する十和田湖、御鼻部山展望台からの展望"
);
Expand Down Expand Up @@ -65,7 +65,7 @@ describe("MecabWorker integration tests", function () {
});

it("creates a worker with JUMANDIC and parses a string, inserting spaces", async function () {
const worker = await MecabWorker.create(JUMANDIC);
const worker = await MecabWorker.create(JUMANDIC, { noCache: true });
const result = await worker.parse(
"青森県と秋田県にまたがり所在する十和田湖、御鼻部山展望台からの展望"
);
Expand All @@ -75,7 +75,7 @@ describe("MecabWorker integration tests", function () {
});

it("creates a worker with JUMANDIC and parses a string, returning a node for each word", async function () {
const worker = await MecabWorker.create(JUMANDIC);
const worker = await MecabWorker.create(JUMANDIC, { noCache: true });
const nodes = await worker.parseToNodes(
"青森県と秋田県にまたがり所在する十和田湖、御鼻部山展望台からの展望"
);
Expand Down
42 changes: 28 additions & 14 deletions src/mecab-worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ async function loadDictionaryFiles(
noCache = false
): Promise<File[]> {
if (noCache || !(await caches.has(cacheName))) {
return loadDictionaryFilesFromNetwork(cacheName, url);
return loadDictionaryFilesFromNetwork(cacheName, url, noCache);
} else {
return loadDictionaryFilesFromCache(cacheName);
}
Expand Down Expand Up @@ -273,31 +273,45 @@ async function loadDictionaryFilesFromCache(
*/
async function loadDictionaryFilesFromNetwork(
cacheName: string,
url: string
url: string,
noCache: boolean
): Promise<File[]> {
const c = tryForCachesApi();
const cache = await c.open(cacheName);
try {
const stream = await unzipDictionary(url);
const reader = stream.getReader();
const files: File[] = [];
const stream = await unzipDictionary(url);
const reader = stream.getReader();
const files: File[] = [];
if (noCache) {
while (true) {
const { done, value } = await reader.read();
if (done) break;
const message: MecabUnzip = { type: "unzip", filename: value.name };
postMessage(message);
const { pathname, response } = fileToResponse(value);
await cache.put("/" + pathname, response);
files.push(value);
}
if (files.length === 0) {
throw new Error("No files extracted");
}
return files;
} catch (error) {
c.delete(cacheName);
throw error;
} else {
const c = tryForCachesApi();
const cache = await c.open(cacheName);
try {
while (true) {
const { done, value } = await reader.read();
if (done) break;
const message: MecabUnzip = { type: "unzip", filename: value.name };
postMessage(message);
const { pathname, response } = fileToResponse(value);
await cache.put("/" + pathname, response);
files.push(value);
}
if (files.length === 0) {
throw new Error("No files extracted");
}
} catch (error) {
c.delete(cacheName);
throw error;
}
}
return files;
}

function tryForCachesApi(): CacheStorage {
Expand Down

0 comments on commit 80e71de

Please sign in to comment.