This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const res = client | |
.createTable({ | |
TableName: tableName, | |
AttributeDefinitions: [ | |
{ | |
AttributeName: 'pk', | |
AttributeType: 'S', | |
}, | |
{ | |
AttributeName: 'sk', |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const createMigrations = (): InputMigrations<DynamoDBContext> => { | |
return [ | |
{ | |
name: '00-dummy-migration', | |
async up({ context }) { | |
await context.client | |
.putItem({ | |
TableName: context.tableName, | |
Item: marshall({ | |
pk: '#DUMMY', |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
it('Should connect to local table', async () => { | |
const tableName = await getTableName(); | |
assert(tableName); | |
const dynamoDB = await connect(); | |
assert(dynamoDB); | |
const tableInfo = await dynamoDB | |
.describeTable({ TableName: tableName }) | |
.promise(); | |
assert(tableInfo.Table?.TableStatus === 'ACTIVE'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ensure table initialisation and migrations are only performed once per cold start | |
const coldStartKey = getColdStartKey(packageConfig, deploymentName); | |
if (!coldStart.has(coldStartKey)) { | |
await assertTable(packageConfig, deploymentName, client); | |
await performMigrations(packageConfig, deploymentName, migrations, client); | |
coldStart.set(coldStartKey, true); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { | |
getTableName, | |
connect, | |
} from './table'; | |
const dynamodb = await connect(); | |
await dynamodb.putItem({ | |
TableName: await getTableName(), | |
Item: {}, | |
}).promise(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { Table, Entity } from 'dynamodb-toolbox'; | |
export function createTable<Name extends string>( | |
dynamoDB: DynamoDB.DocumentClient, | |
tableName: string | |
): Table<Name, 'pk', 'sk'> { | |
return new Table({ | |
name: tableName, | |
partitionKey: 'pk', | |
sortKey: 'sk', |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export function UserEntity<Name extends string>( | |
table: Table<Name, 'pk', 'sk'> | |
): Entity<User, UserKey, typeof table> { | |
const e = new Entity<User, UserKey, typeof table>({ | |
name: 'User', | |
attributes: { | |
pk: { partitionKey: true }, | |
sk: { hidden: true, sortKey: true }, | |
name: { type: 'string', required: true }, | |
emailVerified: { type: 'boolean', required: true }, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const table = await connectTable(); | |
const Users = UserEntity(table); | |
await Users.put({ | |
pk: 'joe@email.com', | |
sk: 'admin', | |
name: 'Joe', | |
emailVerified: true, | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { build } from 'esbuild'; | |
import cssServerPlugin from 'esbuild-css-modules-server-plugin'; | |
const generatedCss: string[] = []; | |
const res = await build({ | |
plugins: [ | |
cssServerPlugin({ | |
onCSSGenerated: (css) => { | |
generatedCss.push(css); | |
}, | |
}), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { build } from 'esbuild'; | |
import cssPlugin from 'esbuild-css-modules-client-plugin'; | |
const res = await build({ | |
plugins: [cssPlugin()], | |
}); |