From 7e10a12fbf453f87d2da425f7a37c8abc75f1e77 Mon Sep 17 00:00:00 2001 From: Gerald Date: Sat, 9 Mar 2024 13:57:06 +0800 Subject: [PATCH] chore: show version and commit in playground --- package.json | 9 +++-- pnpm-lock.yaml | 96 +++++++++++++++++++++++++++++++++++++++++++++ rollup.config.mjs | 38 ++++++++++++++++-- src/demo/app.js | 4 +- src/demo/index.html | 9 ++++- 5 files changed, 148 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 97ca58f..47b595d 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "build:js": "NODE_ENV=production rollup -c", "build:types": "tsc -p tsconfig.prod.json", "build": "run-s ci clean build:*", - "demo:cp": "cp src/demo/* dist", - "demo": "run-s build:js demo:cp" + "demo:dev": "DEMO=1 run-s demo:cp dev", + "demo:build": "DEMO=1 run-s build", + "demo:cp": "cp src/demo/index.html dist", + "demo": "run-s demo:build demo:cp" }, "unpkg": "dist/index.js", "jsdelivr": "dist/index.js", @@ -47,7 +49,8 @@ "@gera2ld/plaid-test": "~2.6.0", "del-cli": "^5.1.0", "husky": "^9.0.11", - "jest-environment-jsdom": "^29.7.0" + "jest-environment-jsdom": "^29.7.0", + "vue": "^3.4.21" }, "jest": { "testEnvironment": "jsdom" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6da4c70..7397a96 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,6 +28,9 @@ devDependencies: jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 + vue: + specifier: ^3.4.21 + version: 3.4.21(typescript@5.4.2) packages: @@ -2728,6 +2731,79 @@ packages: - rollup dev: true + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + dependencies: + '@babel/parser': 7.24.0 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + dependencies: + '@babel/parser': 7.24.0 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.8 + postcss: 8.4.35 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} + dependencies: + '@vue/shared': 3.4.21 + dev: true + + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} + dependencies: + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} + dependencies: + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 + csstype: 3.1.3 + dev: true + + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} + peerDependencies: + vue: 3.4.21 + dependencies: + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21(typescript@5.4.2) + dev: true + + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + dev: true + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -3430,6 +3506,10 @@ packages: cssom: 0.3.8 dev: true + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true + /data-urls@3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -7216,6 +7296,22 @@ packages: fsevents: 2.3.3 dev: true + /vue@3.4.21(typescript@5.4.2): + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/runtime-dom': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21) + '@vue/shared': 3.4.21 + typescript: 5.4.2 + dev: true + /w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} diff --git a/rollup.config.mjs b/rollup.config.mjs index 64902d2..e026ef2 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,13 +1,22 @@ import { defineExternal, definePlugins } from '@gera2ld/plaid-rollup'; +import { execSync } from 'node:child_process'; import { defineConfig } from 'rollup'; import pkg from './package.json' assert { type: 'json' }; const banner = `/*! ${pkg.name} v${pkg.version} | ${pkg.license} License */`; +const commit = execSync('git rev-parse --short HEAD').toString().trim(); const bundleOptions = { extend: true, esModule: false, }; +const values = { + 'process.env.VERSION': JSON.stringify(pkg.version), + 'process.env.COMMIT': JSON.stringify(commit), +}; +const external = defineExternal( + Object.keys({ ...pkg.dependencies, ...pkg.devDependencies }), +); export default defineConfig([ { @@ -17,10 +26,10 @@ export default defineConfig([ minimize: false, replaceValues: { 'process.env.VM': false, - 'process.env.VERSION': JSON.stringify(pkg.version), + ...values, }, }), - external: defineExternal(Object.keys(pkg.dependencies)), + external, output: { format: 'esm', file: `dist/index.mjs`, @@ -34,7 +43,7 @@ export default defineConfig([ minimize: false, replaceValues: { 'process.env.VM': true, - 'process.env.VERSION': JSON.stringify(pkg.version), + ...values, }, }), output: { @@ -45,4 +54,27 @@ export default defineConfig([ ...bundleOptions, }, }, + ...(process.env.DEMO + ? [ + { + input: 'src/demo/app.js', + plugins: definePlugins({ + esm: true, + minimize: false, + replaceValues: { + 'process.env.VM': true, + ...values, + }, + }), + external, + output: { + format: 'iife', + file: 'dist/app.js', + globals: { + vue: 'Vue', + }, + }, + }, + ] + : []), ]); diff --git a/src/demo/app.js b/src/demo/app.js index bdb176a..d7e1215 100644 --- a/src/demo/app.js +++ b/src/demo/app.js @@ -1,4 +1,5 @@ -const { createApp, nextTick, ref, watch, onMounted } = Vue; +import { createApp, nextTick, ref, watch, onMounted } from 'vue'; + createApp({ setup() { const shortcuts = ref(`\ @@ -97,6 +98,7 @@ ArrowUp ArrowUp ArrowDown ArrowDown ArrowLeft ArrowRight ArrowLeft ArrowRight B return { version: VM.shortcut.version, + commit: process.env.COMMIT, shortcuts, sequence, keyTriggered, diff --git a/src/demo/index.html b/src/demo/index.html index 9cacef8..3bcc9af 100644 --- a/src/demo/index.html +++ b/src/demo/index.html @@ -43,7 +43,14 @@

@violentmonkey/shortcut Playground

-

Version: {{version}}

+

+ Version: {{version}} + +

Triggering a Shortcut