added initial data

This commit is contained in:
2024-04-19 18:17:44 +07:00
parent e0ec4c2b49
commit ada1af805a
5 changed files with 6335 additions and 1 deletions

View File

@@ -10,6 +10,9 @@ tasks:
db:drop: db:drop:
cmds: cmds:
- pnpm drizzle-kit drop - pnpm drizzle-kit drop
db:initializeData:
cmds:
- pnpm initialize_data
studio: studio:
cmds: cmds:
- pnpm drizzle-kit studio - pnpm drizzle-kit studio

27
addMetadata.ts Normal file
View File

@@ -0,0 +1,27 @@
import { db } from "./src/db";
import { group, opinion, zone, province } from "./src/schema.ts";
import { Groups, Opinions, Provinces, Districts } from "./initialData.ts";
async function main() {
let groupValues = Groups.map((group) => ({ name: group }));
await db.insert(group).values(groupValues);
let opinionValues = Opinions.map((opinion) => ({
name: opinion.name,
type: opinion.choicemode,
}));
await db.insert(opinion).values(opinionValues);
let provinceValues = Provinces.map((province) => ({
id: province.code,
name: province.name_th,
}));
await db.insert(province).values(provinceValues);
const zoneValues = Districts.map((district) => ({
id: district.code,
name: district.name_th,
province: district.province_code,
}));
await db.insert(zone).values(zoneValues);
console.log("Done");
}
main();

6166
initialData.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,8 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon --exec ts-node --swc src/app.ts" "dev": "nodemon --exec ts-node --swc src/app.ts",
"initialize_data": "node -r @swc-node/register addMetadata.ts"
}, },
"keywords": [], "keywords": [],
"author": "", "author": "",
@@ -18,12 +19,15 @@
"drizzle-orm": "^0.30.8", "drizzle-orm": "^0.30.8",
"drizzle-zod": "^0.5.1", "drizzle-zod": "^0.5.1",
"express": "^4.19.2", "express": "^4.19.2",
"jsonwebtoken": "^9.0.2",
"trpc-playground": "^1.0.4", "trpc-playground": "^1.0.4",
"zod": "^3.22.4" "zod": "^3.22.4"
}, },
"devDependencies": { "devDependencies": {
"@swc-node/register": "^1.9.0",
"@swc/core": "^1.4.16", "@swc/core": "^1.4.16",
"@types/better-sqlite3": "^7.6.9", "@types/better-sqlite3": "^7.6.9",
"@types/jsonwebtoken": "^9.0.6",
"drizzle-kit": "^0.20.14", "drizzle-kit": "^0.20.14",
"nodemon": "^3.1.0", "nodemon": "^3.1.0",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",

134
pnpm-lock.yaml generated
View File

@@ -26,6 +26,9 @@ dependencies:
express: express:
specifier: ^4.19.2 specifier: ^4.19.2
version: 4.19.2 version: 4.19.2
jsonwebtoken:
specifier: ^9.0.2
version: 9.0.2
trpc-playground: trpc-playground:
specifier: ^1.0.4 specifier: ^1.0.4
version: 1.0.4(@trpc/server@10.45.2)(@types/node@20.12.7)(express@4.19.2)(typescript@5.4.5)(zod@3.22.4) version: 1.0.4(@trpc/server@10.45.2)(@types/node@20.12.7)(express@4.19.2)(typescript@5.4.5)(zod@3.22.4)
@@ -34,12 +37,18 @@ dependencies:
version: 3.22.4 version: 3.22.4
devDependencies: devDependencies:
'@swc-node/register':
specifier: ^1.9.0
version: 1.9.0(@swc/core@1.4.16)(@swc/types@0.1.6)(typescript@5.4.5)
'@swc/core': '@swc/core':
specifier: ^1.4.16 specifier: ^1.4.16
version: 1.4.16 version: 1.4.16
'@types/better-sqlite3': '@types/better-sqlite3':
specifier: ^7.6.9 specifier: ^7.6.9
version: 7.6.9 version: 7.6.9
'@types/jsonwebtoken':
specifier: ^9.0.6
version: 9.0.6
drizzle-kit: drizzle-kit:
specifier: ^0.20.14 specifier: ^0.20.14
version: 0.20.14 version: 0.20.14
@@ -481,6 +490,43 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/sourcemap-codec': 1.4.15
dev: true dev: true
/@swc-node/core@1.13.0(@swc/core@1.4.16)(@swc/types@0.1.6):
resolution: {integrity: sha512-lFPD4nmy4ifAOVMChFjwlpXN5KQXvegqeyuzz1KQz42q1lf+cL3Qux1/GteGuZjh8HC+Rj1RdNrHpE/MCfJSTw==}
engines: {node: '>= 10'}
peerDependencies:
'@swc/core': '>= 1.3'
'@swc/types': '>= 0.1'
dependencies:
'@swc/core': 1.4.16
'@swc/types': 0.1.6
dev: true
/@swc-node/register@1.9.0(@swc/core@1.4.16)(@swc/types@0.1.6)(typescript@5.4.5):
resolution: {integrity: sha512-i0iYInD4q5v3xQC6bKvs0QtfUxu197CU5qKALmpxEqTYs7sIhQ7KFLe3kP+eAR4gRkJTvAgjQgrokXLN2jZrOw==}
peerDependencies:
'@swc/core': '>= 1.3'
typescript: '>= 4.3'
dependencies:
'@swc-node/core': 1.13.0(@swc/core@1.4.16)(@swc/types@0.1.6)
'@swc-node/sourcemap-support': 0.5.0
'@swc/core': 1.4.16
colorette: 2.0.20
debug: 4.3.4(supports-color@5.5.0)
pirates: 4.0.6
tslib: 2.6.2
typescript: 5.4.5
transitivePeerDependencies:
- '@swc/types'
- supports-color
dev: true
/@swc-node/sourcemap-support@0.5.0:
resolution: {integrity: sha512-fbhjL5G0YvFoWwNhWleuBUfotiX+USiA9oJqu9STFw+Hb0Cgnddn+HVS/K5fI45mn92e8V+cHD2jgFjk4w2T9Q==}
dependencies:
source-map-support: 0.5.21
tslib: 2.6.2
dev: true
/@swc/core-darwin-arm64@1.4.16: /@swc/core-darwin-arm64@1.4.16:
resolution: {integrity: sha512-UOCcH1GvjRnnM/LWT6VCGpIk0OhHRq6v1U6QXuPt5wVsgXnXQwnf5k3sG5Cm56hQHDvhRPY6HCsHi/p0oek8oQ==} resolution: {integrity: sha512-UOCcH1GvjRnnM/LWT6VCGpIk0OhHRq6v1U6QXuPt5wVsgXnXQwnf5k3sG5Cm56hQHDvhRPY6HCsHi/p0oek8oQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
@@ -665,6 +711,12 @@ packages:
dependencies: dependencies:
'@types/node': 20.12.7 '@types/node': 20.12.7
/@types/jsonwebtoken@9.0.6:
resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==}
dependencies:
'@types/node': 20.12.7
dev: true
/@types/node@20.12.7: /@types/node@20.12.7:
resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==}
dependencies: dependencies:
@@ -784,6 +836,10 @@ packages:
fill-range: 7.0.1 fill-range: 7.0.1
dev: true dev: true
/buffer-equal-constant-time@1.0.1:
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
dev: false
/buffer-from@1.1.2: /buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true dev: true
@@ -851,6 +907,10 @@ packages:
timers-ext: 0.1.7 timers-ext: 0.1.7
dev: true dev: true
/colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
dev: true
/commander@2.20.3: /commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: false dev: false
@@ -1110,6 +1170,12 @@ packages:
zod: 3.22.4 zod: 3.22.4
dev: false dev: false
/ecdsa-sig-formatter@1.0.11:
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
dependencies:
safe-buffer: 5.2.1
dev: false
/ee-first@1.1.1: /ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
dev: false dev: false
@@ -1551,6 +1617,65 @@ packages:
dreamopt: 0.8.0 dreamopt: 0.8.0
dev: true dev: true
/jsonwebtoken@9.0.2:
resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
engines: {node: '>=12', npm: '>=6'}
dependencies:
jws: 3.2.2
lodash.includes: 4.3.0
lodash.isboolean: 3.0.3
lodash.isinteger: 4.0.4
lodash.isnumber: 3.0.3
lodash.isplainobject: 4.0.6
lodash.isstring: 4.0.1
lodash.once: 4.1.1
ms: 2.1.3
semver: 7.6.0
dev: false
/jwa@1.4.1:
resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
dependencies:
buffer-equal-constant-time: 1.0.1
ecdsa-sig-formatter: 1.0.11
safe-buffer: 5.2.1
dev: false
/jws@3.2.2:
resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
dependencies:
jwa: 1.4.1
safe-buffer: 5.2.1
dev: false
/lodash.includes@4.3.0:
resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
dev: false
/lodash.isboolean@3.0.3:
resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
dev: false
/lodash.isinteger@4.0.4:
resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
dev: false
/lodash.isnumber@3.0.3:
resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
dev: false
/lodash.isplainobject@4.0.6:
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
dev: false
/lodash.isstring@4.0.1:
resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
dev: false
/lodash.once@4.1.1:
resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
dev: false
/lodash.throttle@4.1.1: /lodash.throttle@4.1.1:
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
dev: true dev: true
@@ -1759,6 +1884,11 @@ packages:
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
dev: true dev: true
/pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
dev: true
/postcss@8.4.38: /postcss@8.4.38:
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
@@ -2127,6 +2257,10 @@ packages:
yn: 3.1.1 yn: 3.1.1
dev: true dev: true
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
dev: true
/tunnel-agent@0.6.0: /tunnel-agent@0.6.0:
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
dependencies: dependencies: