From 0973d616fd1ddbfbfc80650546f9b5c6d04950d8 Mon Sep 17 00:00:00 2001 From: productdevbook Date: Wed, 13 Dec 2023 08:15:27 +0300 Subject: [PATCH] feat(examples): add json2csv --- examples/p-S3/package.json | 2 +- examples/p-S3/pergel/README.yaml | 2 +- examples/p-json2csv/.gitignore | 24 ++++++ examples/p-json2csv/.npmrc | 2 + examples/p-json2csv/README.md | 75 ++++++++++++++++++ examples/p-json2csv/app.vue | 5 ++ examples/p-json2csv/nuxt.config.ts | 14 ++++ examples/p-json2csv/package.json | 24 ++++++ examples/p-json2csv/pergel/README.yaml | 9 +++ examples/p-json2csv/public/favicon.ico | Bin 0 -> 4286 bytes examples/p-json2csv/server/api/csvDownload.ts | 33 ++++++++ examples/p-json2csv/server/api/csvTest.ts | 30 +++++++ examples/p-json2csv/server/tsconfig.json | 3 + examples/p-json2csv/tsconfig.json | 4 + examples/p-nodeCron/package.json | 2 +- examples/p-nodeCron/pergel/README.yaml | 2 +- examples/p-ses/package.json | 2 +- examples/p-ses/pergel/README.yaml | 2 +- examples/pnpm-lock.yaml | 65 +++++++++++++-- packages/nuxt/playground/pergel/README.yaml | 2 +- 20 files changed, 287 insertions(+), 15 deletions(-) create mode 100644 examples/p-json2csv/.gitignore create mode 100644 examples/p-json2csv/.npmrc create mode 100644 examples/p-json2csv/README.md create mode 100644 examples/p-json2csv/app.vue create mode 100644 examples/p-json2csv/nuxt.config.ts create mode 100644 examples/p-json2csv/package.json create mode 100644 examples/p-json2csv/pergel/README.yaml create mode 100644 examples/p-json2csv/public/favicon.ico create mode 100644 examples/p-json2csv/server/api/csvDownload.ts create mode 100644 examples/p-json2csv/server/api/csvTest.ts create mode 100644 examples/p-json2csv/server/tsconfig.json create mode 100644 examples/p-json2csv/tsconfig.json diff --git a/examples/p-S3/package.json b/examples/p-S3/package.json index 9fb06661..69220f86 100644 --- a/examples/p-S3/package.json +++ b/examples/p-S3/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@pergel/module-s3": "0.0.0", - "@pergel/nuxt": "^0.0.4" + "@pergel/nuxt": "^0.1.0" }, "devDependencies": { "@nuxt/devtools": "latest", diff --git a/examples/p-S3/pergel/README.yaml b/examples/p-S3/pergel/README.yaml index 34c9b536..5b036602 100644 --- a/examples/p-S3/pergel/README.yaml +++ b/examples/p-S3/pergel/README.yaml @@ -1,6 +1,6 @@ pergel: # This file is generated by pergel. Do not edit it manually. - # Version: 0.0.4 + # Version: 0.1.0 rocket: S3: env: diff --git a/examples/p-json2csv/.gitignore b/examples/p-json2csv/.gitignore new file mode 100644 index 00000000..4a7f73a2 --- /dev/null +++ b/examples/p-json2csv/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/examples/p-json2csv/.npmrc b/examples/p-json2csv/.npmrc new file mode 100644 index 00000000..b1886ec3 --- /dev/null +++ b/examples/p-json2csv/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +ignore-workspace-root-check=true \ No newline at end of file diff --git a/examples/p-json2csv/README.md b/examples/p-json2csv/README.md new file mode 100644 index 00000000..f5db2a2d --- /dev/null +++ b/examples/p-json2csv/README.md @@ -0,0 +1,75 @@ +# Nuxt 3 Minimal Starter + +Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. + +## Setup + +Make sure to install the dependencies: + +```bash +# npm +npm install + +# pnpm +pnpm install + +# yarn +yarn install + +# bun +bun install +``` + +## Development Server + +Start the development server on `http://localhost:3000`: + +```bash +# npm +npm run dev + +# pnpm +pnpm run dev + +# yarn +yarn dev + +# bun +bun run dev +``` + +## Production + +Build the application for production: + +```bash +# npm +npm run build + +# pnpm +pnpm run build + +# yarn +yarn build + +# bun +bun run build +``` + +Locally preview production build: + +```bash +# npm +npm run preview + +# pnpm +pnpm run preview + +# yarn +yarn preview + +# bun +bun run preview +``` + +Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information. diff --git a/examples/p-json2csv/app.vue b/examples/p-json2csv/app.vue new file mode 100644 index 00000000..a495b757 --- /dev/null +++ b/examples/p-json2csv/app.vue @@ -0,0 +1,5 @@ + diff --git a/examples/p-json2csv/nuxt.config.ts b/examples/p-json2csv/nuxt.config.ts new file mode 100644 index 00000000..0139bf80 --- /dev/null +++ b/examples/p-json2csv/nuxt.config.ts @@ -0,0 +1,14 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + devtools: { enabled: true }, + modules: [ + '@pergel/nuxt', + ], + pergel: { + projects: { + rocket: { + json2csv: true, + }, + }, + }, +}) diff --git a/examples/p-json2csv/package.json b/examples/p-json2csv/package.json new file mode 100644 index 00000000..ecb514ea --- /dev/null +++ b/examples/p-json2csv/package.json @@ -0,0 +1,24 @@ +{ + "name": "nuxt-app", + "type": "module", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "@json2csv/node": "^7.0.4", + "@pergel/nuxt": "^0.1.0", + "node-cron": "^3.0.3" + }, + "devDependencies": { + "@nuxt/devtools": "latest", + "@types/node-cron": "^3.0.11", + "nuxt": "^3.8.2", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + } +} diff --git a/examples/p-json2csv/pergel/README.yaml b/examples/p-json2csv/pergel/README.yaml new file mode 100644 index 00000000..63ba4550 --- /dev/null +++ b/examples/p-json2csv/pergel/README.yaml @@ -0,0 +1,9 @@ +pergel: + # This file is generated by pergel. Do not edit it manually. + # Version: 0.1.0 +rocket: + json2csv: + # If pergel cli is installed, you can run `pergel install` automatically to install + packageJson: + dependencies: "@json2csv/node@^7.0.4" + devDependencies: "" diff --git a/examples/p-json2csv/public/favicon.ico b/examples/p-json2csv/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..18993ad91cfd43e03b074dd0b5cc3f37ab38e49c GIT binary patch literal 4286 zcmeHLOKuuL5PjK%MHWVi6lD zOGiREbCw`xmFozJ^aNatJY>w+g ze6a2@u~m#^BZm@8wco9#Crlli0uLb^3E$t2-WIc^#(?t)*@`UpuofJ(Uyh@F>b3Ph z$D^m8Xq~pTkGJ4Q`Q2)te3mgkWYZ^Ijq|hkiP^9`De={bQQ%heZC$QU2UpP(-tbl8 zPWD2abEew;oat@w`uP3J^YpsgT%~jT(Dk%oU}sa$7|n6hBjDj`+I;RX(>)%lm_7N{+B7Mu%H?422lE%MBJH!!YTN2oT7xr>>N-8OF$C&qU^ z>vLsa{$0X%q1fjOe3P1mCv#lN{xQ4_*HCSAZjTb1`}mlc+9rl8$B3OP%VT@mch_~G z7Y+4b{r>9e=M+7vSI;BgB?ryZDY4m>&wcHSn81VH1N~`0gvwH{ z8dv#hG|OK`>1;j7tM#B)Z7zDN?{6=dUal}$e { + try { + const { setResponseCsv } = await pergelRocket().json2csv().use({ + data: datas, + }) + + await setResponseCsv({ + event, + csv: true, + }) + } + catch (error: any) { + return error.message + } +}) diff --git a/examples/p-json2csv/server/api/csvTest.ts b/examples/p-json2csv/server/api/csvTest.ts new file mode 100644 index 00000000..83a49975 --- /dev/null +++ b/examples/p-json2csv/server/api/csvTest.ts @@ -0,0 +1,30 @@ +const datas = [ + { + car: 'Audi', + price: 40000, + color: 'blue', + }, + { + car: 'BMW', + price: 35000, + color: 'black', + }, + { + car: 'Porsche', + price: 6000, + color: 'green', + }, +] + +export default defineEventHandler(async () => { + try { + const { csv } = await pergelRocket().json2csv().use({ + data: datas, + }) + + return csv + } + catch (error: any) { + return error.message + } +}) diff --git a/examples/p-json2csv/server/tsconfig.json b/examples/p-json2csv/server/tsconfig.json new file mode 100644 index 00000000..b9ed69c1 --- /dev/null +++ b/examples/p-json2csv/server/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../.nuxt/tsconfig.server.json" +} diff --git a/examples/p-json2csv/tsconfig.json b/examples/p-json2csv/tsconfig.json new file mode 100644 index 00000000..a746f2a7 --- /dev/null +++ b/examples/p-json2csv/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/examples/p-nodeCron/package.json b/examples/p-nodeCron/package.json index d7fe864f..f184f1e9 100644 --- a/examples/p-nodeCron/package.json +++ b/examples/p-nodeCron/package.json @@ -10,7 +10,7 @@ "postinstall": "nuxt prepare" }, "dependencies": { - "@pergel/nuxt": "^0.0.4", + "@pergel/nuxt": "^0.1.0", "node-cron": "^3.0.3" }, "devDependencies": { diff --git a/examples/p-nodeCron/pergel/README.yaml b/examples/p-nodeCron/pergel/README.yaml index ec9159a1..69321b95 100644 --- a/examples/p-nodeCron/pergel/README.yaml +++ b/examples/p-nodeCron/pergel/README.yaml @@ -1,6 +1,6 @@ pergel: # This file is generated by pergel. Do not edit it manually. - # Version: 0.0.4 + # Version: 0.1.0 rocket: nodeCron: # If pergel cli is installed, you can run `pergel install` automatically to install diff --git a/examples/p-ses/package.json b/examples/p-ses/package.json index a9abfd5f..b7e8aeb8 100644 --- a/examples/p-ses/package.json +++ b/examples/p-ses/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@aws-sdk/client-ses": "^3.470.0", - "@pergel/nuxt": "^0.0.4" + "@pergel/nuxt": "^0.1.0" }, "devDependencies": { "@nuxt/devtools": "latest", diff --git a/examples/p-ses/pergel/README.yaml b/examples/p-ses/pergel/README.yaml index 07b75a33..42bee73a 100644 --- a/examples/p-ses/pergel/README.yaml +++ b/examples/p-ses/pergel/README.yaml @@ -1,6 +1,6 @@ pergel: # This file is generated by pergel. Do not edit it manually. - # Version: 0.0.4 + # Version: 0.1.0 rocket: ses: env: diff --git a/examples/pnpm-lock.yaml b/examples/pnpm-lock.yaml index 17e139a7..34b32d5f 100644 --- a/examples/pnpm-lock.yaml +++ b/examples/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 0.0.0 version: 0.0.0 '@pergel/nuxt': - specifier: ^0.0.4 - version: 0.0.4(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) + specifier: ^0.1.0 + version: 0.1.0(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) devDependencies: '@nuxt/devtools': specifier: latest @@ -34,11 +34,39 @@ importers: specifier: ^4.2.5 version: 4.2.5(vue@3.3.11) + p-json2csv: + dependencies: + '@json2csv/node': + specifier: ^7.0.4 + version: 7.0.4 + '@pergel/nuxt': + specifier: ^0.1.0 + version: 0.1.0(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) + node-cron: + specifier: ^3.0.3 + version: 3.0.3 + devDependencies: + '@nuxt/devtools': + specifier: latest + version: 1.0.5(nuxt@3.8.2)(vite@5.0.8) + '@types/node-cron': + specifier: ^3.0.11 + version: 3.0.11 + nuxt: + specifier: ^3.8.2 + version: 3.8.2(@types/node@20.10.0)(vite@5.0.8) + vue: + specifier: ^3.3.8 + version: 3.3.11 + vue-router: + specifier: ^4.2.5 + version: 4.2.5(vue@3.3.11) + p-nodeCron: dependencies: '@pergel/nuxt': - specifier: ^0.0.4 - version: 0.0.4(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) + specifier: ^0.1.0 + version: 0.1.0(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) node-cron: specifier: ^3.0.3 version: 3.0.3 @@ -65,8 +93,8 @@ importers: specifier: ^3.470.0 version: 3.470.0 '@pergel/nuxt': - specifier: ^0.0.4 - version: 0.0.4(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) + specifier: ^0.1.0 + version: 0.1.0(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11) devDependencies: '@nuxt/devtools': specifier: latest @@ -1458,6 +1486,23 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@json2csv/formatters@7.0.4: + resolution: {integrity: sha512-qdlLx0Pk/+BQnu6zreLgGrdLyUzLNVdsyCUU/+2aduHg4zemVo/e0iWjPk1sy/QZXXh+1RXBe+IiP9eDyj95qg==} + dev: false + + /@json2csv/node@7.0.4: + resolution: {integrity: sha512-ZDK56yyn5WFuUNovyjQU14mtSxktL+tV332g3PgqdGcBdIfQhtsGHWugBdD1jmfAHOfacNKkoMZm/JLUOZDJRw==} + dependencies: + '@json2csv/plainjs': 7.0.4 + dev: false + + /@json2csv/plainjs@7.0.4: + resolution: {integrity: sha512-IHLyosebSdXMtVKusHHGqvp8mCpEkVk0Qvc0lAGcdAYdvO8lBvry8o665+CX78uPj/QZBhu+s0cOWyxanxlrQw==} + dependencies: + '@json2csv/formatters': 7.0.4 + '@streamparser/json': 0.0.17 + dev: false + /@kwsites/file-exists@1.1.1: resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} dependencies: @@ -1953,8 +1998,8 @@ packages: - aws-crt dev: false - /@pergel/nuxt@0.0.4(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11): - resolution: {integrity: sha512-PJuaHqp0R2jVqx7hw9ZGgMYIsyjFFZJNBEpolC3OUisDEglZnlhDyUhjqLF07naMJd/2CBqhUPYwpDpt0aBuWg==} + /@pergel/nuxt@0.1.0(nuxt@3.8.2)(vite@5.0.8)(vue@3.3.11): + resolution: {integrity: sha512-cRFosMJ09nvwwvA1xD7Ay+ySo5kEGHiWfaW8obuWj0sz+7SXwhdQ+Sd3tAxtJBvgxgtvY9qnQoMhXc4zHhDStg==} dependencies: '@nuxt/devtools': 1.0.5(nuxt@3.8.2)(vite@5.0.8) '@nuxt/devtools-kit': 1.0.5(nuxt@3.8.2)(vite@5.0.8) @@ -2693,6 +2738,10 @@ packages: tslib: 2.6.2 dev: false + /@streamparser/json@0.0.17: + resolution: {integrity: sha512-mW54K6CTVJVLwXRB6kSS1xGWPmtTuXAStWnlvtesmcySgtop+eFPWOywBFPpJO4UD173epYsPSP6HSW8kuqN8w==} + dev: false + /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} diff --git a/packages/nuxt/playground/pergel/README.yaml b/packages/nuxt/playground/pergel/README.yaml index 6e208921..d2fb6537 100644 --- a/packages/nuxt/playground/pergel/README.yaml +++ b/packages/nuxt/playground/pergel/README.yaml @@ -1,6 +1,6 @@ pergel: # This file is generated by pergel. Do not edit it manually. - # Version: 0.0.4 + # Version: 0.1.0 test: json2csv: # If pergel cli is installed, you can run `pergel install` automatically to install