From aadb9fccb07ca461a2cc4bcefe75c44b470896c7 Mon Sep 17 00:00:00 2001 From: Phuoc Nguyen Date: Sun, 9 May 2021 16:54:21 +0700 Subject: [PATCH] Update screenshot script --- bin/generateScreenshot.ts | 34 ++++++++++++++++++++++++++++++++++ bin/generateScreenshots.ts | 29 ----------------------------- package.json | 2 +- 3 files changed, 35 insertions(+), 30 deletions(-) create mode 100644 bin/generateScreenshot.ts delete mode 100644 bin/generateScreenshots.ts diff --git a/bin/generateScreenshot.ts b/bin/generateScreenshot.ts new file mode 100644 index 0000000..b39e2ef --- /dev/null +++ b/bin/generateScreenshot.ts @@ -0,0 +1,34 @@ +#!/usr/bin/env node + +// Run this script from the root folder +// $ npm run screenshot slug-of-pattern-here + +const puppeteer = require('puppeteer'); + +const main = () => { + const args = process.argv; + if (!args || !Array.isArray(args) || args.length < 2) { + console.log('Please specific the pattern: npm run screenshot slug-of-pattern-here'); + return; + } + + const pattern = args[2]; + + (async () => { + const browser = await puppeteer.launch(); + + const page = await browser.newPage(); + await page.goto(`http://localhost:1234/patterns/${pattern}`); + + await page.waitForSelector('.demo__live'); + const element = await page.$('.demo__live'); + await element.screenshot({ + path: `public/assets/patterns/${pattern}.png` + }); + await page.close(); + + await browser.close(); + })(); +}; + +main(); diff --git a/bin/generateScreenshots.ts b/bin/generateScreenshots.ts deleted file mode 100644 index c5410d9..0000000 --- a/bin/generateScreenshots.ts +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env node - -const puppeteer = require('puppeteer'); - -import Pattern from '../client/constants/Pattern'; -import slug from '../client/helpers/slug'; - -process.setMaxListeners(0); - -(async () => { - const browser = await puppeteer.launch(); - - await Promise.all( - Object.entries(Pattern).map(async ([_, patternName]) => { - const page = await browser.newPage(); - const pattern = slug(patternName); - await page.goto(`http://localhost:1234/patterns/${pattern}`); - - await page.waitForSelector('.demo'); - const element = await page.$('.demo'); - await element.screenshot({ - path: `public/assets/patterns/${pattern}.png` - }); - await page.close(); - }) - ); - - await browser.close(); -})(); diff --git a/package.json b/package.json index e928708..8e773f0 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "deploy": "npm run build && netlify deploy --dir=dist --prod", "analyse": "NODE_ENV=analyse webpack --config webpack.config.js -p", "lint": "tslint -c tslint.json -o tslint.log 'client/**/*.{ts,tsx}'", - "screenshot": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' ts-node bin/generateScreenshots.ts" + "screenshot": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' ts-node bin/generateScreenshot.ts" }, "dependencies": { "@loadable/component": "^5.14.1",