@kensio/yulin 0.0.2 → 0.1.0
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.
- package/.nvmrc +1 -1
- package/README.md +1 -1
- package/dist/command/command-handler.d.ts +4 -0
- package/dist/command/command-handler.d.ts.map +1 -0
- package/dist/command/command-handler.js +2 -0
- package/dist/command/command-handler.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts +7 -0
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.d.ts.map +1 -0
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.js +33 -0
- package/dist/service/cloudfront/factory/cloudfront-functions.factory.js.map +1 -0
- package/dist/service/cloudfront/index.d.ts +3 -0
- package/dist/service/cloudfront/index.d.ts.map +1 -0
- package/dist/service/cloudfront/index.js +2 -0
- package/dist/service/cloudfront/index.js.map +1 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.d.ts +37 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.d.ts.map +1 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.js +2 -0
- package/dist/service/cloudfront/typings/cloudfront-functions.js.map +1 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts +20 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.d.ts.map +1 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.js +47 -0
- package/dist/service/dynamodb/command/create-table/create-table.handler.js.map +1 -0
- package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts +17 -0
- package/dist/service/dynamodb/command/describe-table/describe-table.handler.d.ts.map +1 -0
- package/dist/service/dynamodb/command/describe-table/describe-table.handler.js +37 -0
- package/dist/service/dynamodb/command/describe-table/describe-table.handler.js.map +1 -0
- package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts +17 -0
- package/dist/service/dynamodb/command/list-tables/list-tables.handler.d.ts.map +1 -0
- package/dist/service/dynamodb/command/list-tables/list-tables.handler.js +32 -0
- package/dist/service/dynamodb/command/list-tables/list-tables.handler.js.map +1 -0
- package/dist/service/dynamodb/command/put-item/put-item.handler.d.ts +17 -0
- package/dist/service/dynamodb/command/put-item/put-item.handler.d.ts.map +1 -0
- package/dist/service/dynamodb/command/put-item/put-item.handler.js +39 -0
- package/dist/service/dynamodb/command/put-item/put-item.handler.js.map +1 -0
- package/dist/service/dynamodb/dynamodb.d.ts +27 -0
- package/dist/service/dynamodb/dynamodb.d.ts.map +1 -0
- package/dist/service/dynamodb/dynamodb.js +43 -0
- package/dist/service/dynamodb/dynamodb.js.map +1 -0
- package/dist/service/dynamodb/index.d.ts +2 -0
- package/dist/service/dynamodb/index.d.ts.map +1 -0
- package/dist/service/dynamodb/index.js +2 -0
- package/dist/service/dynamodb/index.js.map +1 -0
- package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts +21 -0
- package/dist/service/dynamodb/item/dynamodb-item-attribute.d.ts.map +1 -0
- package/dist/service/dynamodb/item/dynamodb-item-attribute.js +92 -0
- package/dist/service/dynamodb/item/dynamodb-item-attribute.js.map +1 -0
- package/dist/service/dynamodb/item/dynamodb-item.d.ts +18 -0
- package/dist/service/dynamodb/item/dynamodb-item.d.ts.map +1 -0
- package/dist/service/dynamodb/item/dynamodb-item.js +29 -0
- package/dist/service/dynamodb/item/dynamodb-item.js.map +1 -0
- package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts +30 -0
- package/dist/service/dynamodb/table/dynamodb-key-schema.d.ts.map +1 -0
- package/dist/service/dynamodb/table/dynamodb-key-schema.js +61 -0
- package/dist/service/dynamodb/table/dynamodb-key-schema.js.map +1 -0
- package/dist/service/dynamodb/table/dynamodb-table.d.ts +34 -0
- package/dist/service/dynamodb/table/dynamodb-table.d.ts.map +1 -0
- package/dist/service/dynamodb/table/dynamodb-table.js +55 -0
- package/dist/service/dynamodb/table/dynamodb-table.js.map +1 -0
- package/dist/service/organizations/index.d.ts +2 -0
- package/dist/service/organizations/index.d.ts.map +1 -0
- package/dist/service/organizations/index.js +2 -0
- package/dist/service/organizations/index.js.map +1 -0
- package/dist/service/organizations/sim-aws-account.d.ts +19 -0
- package/dist/service/organizations/sim-aws-account.d.ts.map +1 -0
- package/dist/service/organizations/sim-aws-account.js +26 -0
- package/dist/service/organizations/sim-aws-account.js.map +1 -0
- package/dist/service/s3/index.d.ts +2 -0
- package/dist/service/s3/index.d.ts.map +1 -0
- package/dist/service/s3/index.js +3 -0
- package/dist/service/s3/index.js.map +1 -0
- package/dist/util/background/background.d.ts +28 -0
- package/dist/util/background/background.d.ts.map +1 -0
- package/dist/util/background/background.js +44 -0
- package/dist/util/background/background.js.map +1 -0
- package/dist/util/brand.type.d.ts +8 -0
- package/dist/util/brand.type.d.ts.map +1 -0
- package/dist/util/brand.type.js +2 -0
- package/dist/util/brand.type.js.map +1 -0
- package/dist/util/defined.d.ts +5 -0
- package/dist/util/defined.d.ts.map +1 -0
- package/dist/util/defined.js +11 -0
- package/dist/util/defined.js.map +1 -0
- package/dist/util/memo/memo.d.ts +15 -0
- package/dist/util/memo/memo.d.ts.map +1 -0
- package/dist/util/memo/memo.js +24 -0
- package/dist/util/memo/memo.js.map +1 -0
- package/dist/util/sleep.d.ts +10 -0
- package/dist/util/sleep.d.ts.map +1 -0
- package/dist/util/sleep.js +16 -0
- package/dist/util/sleep.js.map +1 -0
- package/eslint.config.ts +18 -4
- package/package.json +32 -19
- package/pnpm-workspace.yaml +23 -1
- package/scripts/publish.sh +14 -0
- package/src/index.ts +0 -0
- package/src/service/cloudfront/factory/cloudfront-functions.factory.iso.test.ts +10 -0
- package/src/service/cloudfront/factory/cloudfront-functions.factory.ts +34 -0
- package/src/service/cloudfront/index.ts +13 -0
- package/src/service/cloudfront/typings/cloudfront-functions.ts +48 -0
- package/src/service/dynamodb/command/create-table/create-table.handler.ts +5 -3
- package/src/service/dynamodb/command/create-table/create-table.iso.test.ts +36 -4
- package/src/service/dynamodb/command/describe-table/describe-table.handler.ts +3 -1
- package/src/service/dynamodb/command/describe-table/describe-table.iso.test.ts +18 -3
- package/src/service/dynamodb/command/list-tables/list-tables.handler.ts +3 -1
- package/src/service/dynamodb/command/list-tables/list-tables.iso.test.ts +54 -9
- package/src/service/dynamodb/command/put-item/put-item.handler.ts +56 -0
- package/src/service/dynamodb/command/put-item/put-item.iso.test.ts +354 -0
- package/src/service/dynamodb/dynamodb.ts +15 -1
- package/src/service/dynamodb/index.ts +0 -0
- package/src/service/dynamodb/item/dynamodb-item-attribute.iso.test.ts +19 -0
- package/src/service/dynamodb/item/dynamodb-item-attribute.ts +116 -0
- package/src/service/dynamodb/item/dynamodb-item.ts +39 -0
- package/src/service/dynamodb/table/dynamodb-key-schema.ts +94 -0
- package/src/service/dynamodb/{dynamodb-table.iso.test.ts → table/dynamodb-table.iso.test.ts} +8 -3
- package/src/service/dynamodb/table/dynamodb-table.ts +75 -0
- package/src/service/organizations/index.ts +0 -0
- package/src/service/s3/index.ts +1 -0
- package/src/util/background/background.ts +1 -1
- package/src/util/defined.ts +15 -0
- package/src/util/sleep.ts +1 -1
- package/tsconfig.json +11 -8
- package/src/service/dynamodb/dynamodb-table.ts +0 -46
- package/typings/eslint-plugin-promise.d.ts +0 -11
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Brand } from "../../../util/brand.type.js";
|
|
2
|
+
import type { CreateTableCommand, TableStatus } from "@aws-sdk/client-dynamodb";
|
|
3
|
+
import { DynamoDbKeySchema } from "./dynamodb-key-schema.js";
|
|
4
|
+
import { assertDefined } from "../../../util/defined.js";
|
|
5
|
+
import type { DynamoDbItem } from "../item/dynamodb-item.js";
|
|
6
|
+
import type { BackgroundScheduler } from "../../../util/background/background.js";
|
|
7
|
+
|
|
8
|
+
export type DynamoDbTableName = Brand<string, "DynamoDbTableName">;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Simulated DynamoDB Table.
|
|
12
|
+
*/
|
|
13
|
+
export class SimDynamoDbTable {
|
|
14
|
+
public readonly creationDateTime: Date;
|
|
15
|
+
|
|
16
|
+
private readonly _tableName: DynamoDbTableName;
|
|
17
|
+
private readonly _keySchema: DynamoDbKeySchema;
|
|
18
|
+
private _status: TableStatus = "CREATING";
|
|
19
|
+
|
|
20
|
+
private readonly items = new Map<string, DynamoDbItem>();
|
|
21
|
+
|
|
22
|
+
constructor(
|
|
23
|
+
createCommand: CreateTableCommand,
|
|
24
|
+
private readonly background: BackgroundScheduler,
|
|
25
|
+
) {
|
|
26
|
+
assertDefined(
|
|
27
|
+
createCommand.input.TableName,
|
|
28
|
+
"createCommand.input.TableName",
|
|
29
|
+
);
|
|
30
|
+
this._tableName = createCommand.input.TableName as DynamoDbTableName;
|
|
31
|
+
this.creationDateTime = new Date();
|
|
32
|
+
|
|
33
|
+
if (
|
|
34
|
+
createCommand.input.KeySchema === undefined ||
|
|
35
|
+
createCommand.input.KeySchema.length === 0
|
|
36
|
+
) {
|
|
37
|
+
throw new Error("Table KeySchema is not defined");
|
|
38
|
+
}
|
|
39
|
+
this._keySchema = new DynamoDbKeySchema(createCommand.input);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Simulate the table entering ACTIVE status.
|
|
44
|
+
*/
|
|
45
|
+
activate(): Promise<void> {
|
|
46
|
+
this._status = "ACTIVE";
|
|
47
|
+
return Promise.resolve();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Get the DynamoDB table name.
|
|
52
|
+
*/
|
|
53
|
+
public get tableName(): DynamoDbTableName {
|
|
54
|
+
return this._tableName;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Get the current table status.
|
|
59
|
+
*/
|
|
60
|
+
public get status(): TableStatus {
|
|
61
|
+
return this._status;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Put an item into the table.
|
|
66
|
+
*/
|
|
67
|
+
public putItem(item: DynamoDbItem): Promise<void> {
|
|
68
|
+
const keyString = this._keySchema.makeItemKey(item);
|
|
69
|
+
this.background.schedule(() => {
|
|
70
|
+
this.items.set(keyString, item);
|
|
71
|
+
return Promise.resolve();
|
|
72
|
+
});
|
|
73
|
+
return Promise.resolve();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class RequiredValueUndefinedError extends Error {
|
|
2
|
+
//
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Require that a given value is defined.
|
|
7
|
+
*/
|
|
8
|
+
export function assertDefined<T>(
|
|
9
|
+
value: T | undefined,
|
|
10
|
+
description: string,
|
|
11
|
+
): asserts value is T {
|
|
12
|
+
if (value === undefined) {
|
|
13
|
+
throw new RequiredValueUndefinedError(`${description} must be defined`);
|
|
14
|
+
}
|
|
15
|
+
}
|
package/src/util/sleep.ts
CHANGED
package/tsconfig.json
CHANGED
|
@@ -6,28 +6,31 @@
|
|
|
6
6
|
"lib": ["ES2023"],
|
|
7
7
|
"types": ["node"],
|
|
8
8
|
|
|
9
|
-
"
|
|
9
|
+
"allowUnreachableCode": false,
|
|
10
|
+
"allowUnusedLabels": false,
|
|
10
11
|
"exactOptionalPropertyTypes": true,
|
|
12
|
+
"incremental": true,
|
|
13
|
+
"noCheck": false,
|
|
14
|
+
"noEmitOnError": true,
|
|
15
|
+
"noFallthroughCasesInSwitch": true,
|
|
11
16
|
"noImplicitOverride": true,
|
|
12
17
|
"noImplicitReturns": true,
|
|
13
18
|
"noPropertyAccessFromIndexSignature": true,
|
|
14
19
|
"noUncheckedIndexedAccess": true,
|
|
15
20
|
"noUnusedLocals": true,
|
|
16
21
|
"noUnusedParameters": true,
|
|
17
|
-
"
|
|
18
|
-
"allowUnusedLabels": false,
|
|
19
|
-
"allowUnreachableCode": false,
|
|
22
|
+
"strict": true,
|
|
20
23
|
|
|
21
|
-
"isolatedModules": true,
|
|
22
|
-
"verbatimModuleSyntax": true,
|
|
23
|
-
"skipLibCheck": true,
|
|
24
24
|
"forceConsistentCasingInFileNames": true,
|
|
25
|
+
"isolatedModules": true,
|
|
25
26
|
"resolveJsonModule": true,
|
|
27
|
+
"skipLibCheck": true,
|
|
28
|
+
"verbatimModuleSyntax": true,
|
|
26
29
|
|
|
27
30
|
"declaration": true,
|
|
28
31
|
"declarationMap": true,
|
|
29
|
-
"sourceMap": true,
|
|
30
32
|
"removeComments": false,
|
|
33
|
+
"sourceMap": true,
|
|
31
34
|
|
|
32
35
|
"outDir": "dist",
|
|
33
36
|
"rootDir": "."
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Brand } from "../../util/brand.type.js";
|
|
2
|
-
import type { CreateTableCommand, TableStatus } from "@aws-sdk/client-dynamodb";
|
|
3
|
-
|
|
4
|
-
export type DynamoDbTableName = Brand<string, "DynamoDbTableName">;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Simulated DynamoDB Table.
|
|
8
|
-
*/
|
|
9
|
-
export class SimDynamoDbTable {
|
|
10
|
-
public readonly creationDateTime: Date;
|
|
11
|
-
|
|
12
|
-
private readonly _tableName: DynamoDbTableName;
|
|
13
|
-
private _status: TableStatus = "CREATING";
|
|
14
|
-
|
|
15
|
-
constructor(private readonly createCommand: CreateTableCommand) {
|
|
16
|
-
if (createCommand.input.TableName === undefined) {
|
|
17
|
-
throw new Error(
|
|
18
|
-
"DynamoDB CreateTableCommand.input.TableName is required",
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
this._tableName = this.createCommand.input.TableName as DynamoDbTableName;
|
|
22
|
-
this.creationDateTime = new Date();
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Simulate the table entering ACTIVE status.
|
|
27
|
-
*/
|
|
28
|
-
activate(): Promise<void> {
|
|
29
|
-
this._status = "ACTIVE";
|
|
30
|
-
return Promise.resolve();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Get the DynamoDB table name.
|
|
35
|
-
*/
|
|
36
|
-
public get tableName(): DynamoDbTableName {
|
|
37
|
-
return this._tableName;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Get the current table status.
|
|
42
|
-
*/
|
|
43
|
-
public get status(): TableStatus {
|
|
44
|
-
return this._status;
|
|
45
|
-
}
|
|
46
|
-
}
|