Skip to content

Commit 9f1d7e2

Browse files
committed
tsチェック導入
1 parent 6ec556e commit 9f1d7e2

File tree

8 files changed

+83
-41
lines changed

8 files changed

+83
-41
lines changed

.yarn/install-state.gz

921 Bytes
Binary file not shown.

google-calendar/src/functions/fetchCalendarChanges.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,11 @@ export function fetchCalendarChanges(
4545
function fetchSyncToken(calendarId: string) {
4646
const now = new Date();
4747
let pageToken: string | undefined = undefined;
48+
let res: GoogleAppsScript.Calendar.Schema.Events | undefined = undefined;
4849

4950
// 現在時刻以降のイベントを取得し続ける
5051
while (true) {
51-
const res = Calendar.Events?.list(calendarId, {
52+
res = Calendar.Events?.list(calendarId, {
5253
calendarId,
5354
pageToken,
5455
showDeleted: true,
@@ -57,8 +58,8 @@ function fetchSyncToken(calendarId: string) {
5758
});
5859

5960
// syncToken が得られたら終了する
60-
if (res.nextSyncToken) return res.nextSyncToken;
61-
if (!res.nextPageToken) throw new Error();
61+
if (res?.nextSyncToken) return res.nextSyncToken;
62+
if (!res?.nextPageToken) throw new Error();
6263
pageToken = res.nextPageToken;
6364
}
6465
}

google-calendar/src/main.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ function formatDate(date: Date, format: string) {
8080
mm: pad(date.getMinutes()),
8181
ss: pad(date.getSeconds()),
8282
SSS: pad(date.getMilliseconds(), 3),
83-
A: "日月火水木金土"[date.getDay()],
83+
A: "日月火水木金土"[date.getDay()] || "日",
8484
};
8585

8686
// フォーマット文字列の置換
8787
return Object.keys(replacements).reduce(
88-
(acc, key) => acc.replace(new RegExp(key, "g"), replacements[key]),
88+
(acc, key) => acc.replace(new RegExp(key, "g"), replacements[key] ?? ""),
8989
format,
9090
);
9191
}

package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
"lint": "biome check .",
77
"lint:fix": "biome check --apply-unsafe .",
88
"format": "biome format --write .",
9-
"ci": "biome ci ."
9+
"type-check": "tsc --pretty --noEmit",
10+
"ci": "biome ci . && yarn type-check"
1011
},
1112
"devDependencies": {
12-
"@biomejs/biome": "1.5.3"
13+
"@biomejs/biome": "1.5.3",
14+
"typescript": "5.3.3"
1315
},
1416
"workspaces": [
1517
"triplate-contact-form",

triplate-contact-form/src/main.ts

+14-16
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,20 @@ function main(e: GoogleAppsScript.Events.FormsOnFormSubmit) {
1010
const formResponses = e.response.getItemResponses();
1111
const email = e.response.getRespondentEmail();
1212

13-
let contents = "";
14-
// 項目を繰り返す
15-
for (let i = 0; i < formResponses.length; i++) {
16-
const formResponse = formResponses[i];
17-
18-
try {
19-
const question = formResponse.getItem().getTitle();
20-
const answer = formResponse.getResponse();
21-
22-
contents += `${question}: ${answer}`;
23-
} catch (e) {
24-
console.log(e);
25-
}
26-
27-
if (i + 1 !== formResponses.length) contents += "\n";
28-
}
13+
const contents = formResponses
14+
.map((formResponse) => {
15+
try {
16+
const question = formResponse.getItem().getTitle();
17+
const answer = formResponse.getResponse();
18+
19+
return `${question}: ${answer}`;
20+
} catch (error) {
21+
console.log(error);
22+
return "";
23+
}
24+
})
25+
.filter((line) => line)
26+
.join("\n");
2927

3028
const message = `${email}からお問い合わせです。\n\`\`\`\n${contents}\n\`\`\``;
3129

triplate-delete-user-form/src/main.ts

+16-18
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,22 @@ declare const global: Record<
77
global.main = main;
88

99
function main(e: GoogleAppsScript.Events.FormsOnFormSubmit) {
10-
const formResponses = e.response.getItemResponses();
11-
12-
let contents = "";
13-
// 項目を繰り返す
14-
for (let i = 0; i < formResponses.length; i++) {
15-
const formResponse = formResponses[i];
16-
17-
try {
18-
const question = formResponse.getItem().getTitle();
19-
const answer = formResponse.getResponse();
20-
21-
contents += `${question}: ${answer}`;
22-
} catch (e) {
23-
console.log(e);
24-
}
25-
26-
if (i + 1 !== formResponses.length) contents += "\n";
27-
}
10+
const formResponses = e.response.getItemResponses().filter((e) => e);
11+
12+
const contents = formResponses
13+
.map((formResponse) => {
14+
try {
15+
const question = formResponse.getItem().getTitle();
16+
const answer = formResponse.getResponse();
17+
18+
return `${question}: ${answer}`;
19+
} catch (error) {
20+
console.log(error);
21+
return "";
22+
}
23+
})
24+
.filter((line) => line)
25+
.join("\n");
2826

2927
const message = `アカウント削除申請が届きました。\n\`\`\`\n${contents}\n\`\`\``;
3028

tsconfig.json

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"compilerOptions": {
3+
"module": "ESNext",
4+
"target": "ESNext",
5+
"strict": true,
6+
"strictNullChecks": true,
7+
"strictPropertyInitialization": true,
8+
"allowSyntheticDefaultImports": true,
9+
"experimentalDecorators": true,
10+
"noImplicitAny": true,
11+
"noUncheckedIndexedAccess": true,
12+
"declaration": true,
13+
"importHelpers": true,
14+
"skipLibCheck": true,
15+
"moduleResolution": "node",
16+
"esModuleInterop": true,
17+
"rootDir": "./",
18+
"outDir": "./dist",
19+
},
20+
"include": ["**/*.ts"],
21+
"exclude": ["node_modules"]
22+
}

yarn.lock

+21
Original file line numberDiff line numberDiff line change
@@ -3749,6 +3749,16 @@ __metadata:
37493749
languageName: node
37503750
linkType: hard
37513751

3752+
"typescript@npm:5.3.3":
3753+
version: 5.3.3
3754+
resolution: "typescript@npm:5.3.3"
3755+
bin:
3756+
tsc: bin/tsc
3757+
tsserver: bin/tsserver
3758+
checksum: 10c0/e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f
3759+
languageName: node
3760+
linkType: hard
3761+
37523762
"typescript@npm:^4.4.2":
37533763
version: 4.9.5
37543764
resolution: "typescript@npm:4.9.5"
@@ -3759,6 +3769,16 @@ __metadata:
37593769
languageName: node
37603770
linkType: hard
37613771

3772+
"typescript@patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>":
3773+
version: 5.3.3
3774+
resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7"
3775+
bin:
3776+
tsc: bin/tsc
3777+
tsserver: bin/tsserver
3778+
checksum: 10c0/1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500
3779+
languageName: node
3780+
linkType: hard
3781+
37623782
"typescript@patch:typescript@npm%3A^4.4.2#optional!builtin<compat/typescript>":
37633783
version: 4.9.5
37643784
resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin<compat/typescript>::version=4.9.5&hash=289587"
@@ -3817,6 +3837,7 @@ __metadata:
38173837
resolution: "uplim-integrations@workspace:."
38183838
dependencies:
38193839
"@biomejs/biome": "npm:1.5.3"
3840+
typescript: "npm:5.3.3"
38203841
languageName: unknown
38213842
linkType: soft
38223843

0 commit comments

Comments
 (0)