ダメ元エンジニアのお勉強おメモ

ほとんど自分用のメモです。AWS をよく触ります。Web アプリとか作ります。Raspberry Pi も好きです。

TypeScript

DynamoDB の UpdateItem で加算処理を行う

概要 加算処理を行うとき毎回調べるのでメモる。 コード TypeScript だとこんな感じ。 import * as DynamoDB from 'aws-sdk/clients/dynamodb'; const DYNAMODB_API_VERSION = '2012-10-08'; const REGION = 'ap-northeast-1'; const TABLE_NAME = 'sample-t…

DynamoDB で存在しないデータに対して delete-item した際にエラーを発生させたい

概要 DynamoDB で delete-item した際、削除対象のデータが存在しなかったとしてもエラーは発生しない。AWS CLI がその挙動なので、恐らくどの言語でも同じだと思う。 % aws dynamodb delete-item \ --table-name sample-table \ --key '{"pk": {"S": "sampl…

TypeScript + Jest で画像を import する

概要 TypeScript + Jest で画像を単純に import するのが割と難しかったのでメモっておく。 import を通す 普通に画像を import すると VSCode さんに怒られる。 型定義ファイルが必要みたいなので、下記ファイルを作る。 declare module '*.jpg'; declare m…

Material-UI の標準で使用されているエラーの色を要素に適用したい

結論 Material-UI のコンポーネントであれば、下記で指定ができるそう。 <Box color="primary.main">primary.main</Box> material-ui.com HTML の要素に適用する場合は、下記で指定ができるそう。 const useStyles = makeStyles((theme) => ({ errorText: { color: theme.palette.error.main,…

Ajv v7 から email 等のフォーマットをチェックする場合には ajv-formats を入れる必要があるようです

解決方法 「ajv@^7.0.0が「e​​mail」形式のJSONスキーマのコンパイルに失敗するぜ」という Issue があり、 github.com 「フォーマットはajv-formatsパッケージに含まれているぜ」という返答がある。 これだ。 github.com こうすればエラーが発生しなくなる。…

Cognito IdP の ListUserPoolClients を1回呼び出した際に返されるアプリクライアントの数が AWS CLI と AWS SDK for JavaScript で異なる(サービスやアクションに限らない話の可能性あり)

環境 % aws --version aws-cli/2.0.28 Python/3.7.4 Darwin/19.6.0 botocore/2.0.0dev3 % node --version v14.7.0 % yarn --version 1.22.10 % yarn list --depth=0 | grep aws-sdk ├─ aws-sdk@2.934.0 準備 下記の Shell Script で特定のユーザープールに20…

Cognito IdP でユーザーのリストを単に取得してもグループの情報は含まれない

内容 listUsers ではグループの情報が一切取得できない。代わりに listGroups でグループ名を取得してから listUsersInGroup でグループごとにユーザーのリストを取得 & 良い感じに結合するしかなさそう。 下記を参考にして、 stackoverflow.com TypeScript …

React プロジェクト作成時の TypeScript 適用でミスった

環境 % create-react-app --version 4.0.3 ミスった こっちじゃなく、 % create-react-app frontend --typescript こっちだ。 % create-react-app frontend --template typescript 過去のメモ通りコマンドを実行したら、TypeScript が適用されなかった。 過…

TypeScript で JSON を CSV に変換する

追記 自作するのではなく、下記のライブラリを使う方が良さそう。 github.com import { Parser } from 'json2csv'; const parser = new Parser({ fields: ['userId', 'username', 'age'], withBOM: true, }); console.log(parser.parse({ ... })); BOM 有無…

Cognito の JWT を TypeScript で検証する方法 - async / await で

ソースコード こんな感じになる。 import * as Console from 'console'; import { promisify } from 'util'; import jwt, { JwtHeader, TokenExpiredError } from 'jsonwebtoken'; import jwksClient from 'jwks-rsa'; const AWS_REGION = process.env.AWS_R…

【随時更新】React+Redux, Redux-Sagaの理解に役立った記事まとめ

【概要】 タイトル通り、React+Redux, Redux-Sagaを理解するにあたり、 参考にさせて頂いた記事のまとめです。Redux-Sagaに初めて触れた時、意味不明すぎてパニックになりましたが、 何とかサンプルコードを書くことができました。ありがとうございました。 …

JestでTypeScriptのテスト(最低限の設定)

【概要】 Jestを使ってTypeScriptのテストをやろうと思ったら、 なかなか上手くいかなかったのでメモを残しておく。と言っても、参考サイトまんまな部分が多いです。 あと、yarnではなくnpmを使って環境を整えます。 【環境】 $ sw_vers ProductName: Mac OS…