polotno-node 0.1.16 → 0.2.1

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/dist/client.html CHANGED
@@ -1 +1 @@
1
- <html><head><title>Canvas editor</title><style>body{padding:0;margin:0}</style><meta name="viewport" content="width=device-width, initial-scale=1"></head><body class="bp3-dark"> <div id="root"></div> <script src="client.f410bb82.js"></script> </body></html>
1
+ <html><head><title>Canvas editor</title><style>body{padding:0;margin:0}</style><meta name="viewport" content="width=device-width, initial-scale=1"></head><body class="bp3-dark"> <div id="root"></div> <script src="client.3b178911.js"></script> </body></html>
package/index.js CHANGED
@@ -1,17 +1,10 @@
1
+ const chrome = require('chrome-aws-lambda');
1
2
  const puppeteer = require('puppeteer');
2
3
  const path = require('path');
3
4
 
4
- const defaultLaunch = async () => {
5
- const puppeteer = require('puppeteer');
6
- return await puppeteer.launch({});
7
- };
5
+ const DEFAULT_CLIENT = `file:${path.join(__dirname, 'dist', 'client.html')}`;
8
6
 
9
- module.exports.createInstance = async ({
10
- key,
11
- launch = defaultLaunch,
12
- url,
13
- } = {}) => {
14
- const browser = await launch();
7
+ const getNewPage = async (browser, url) => {
15
8
  const page = await browser.newPage();
16
9
 
17
10
  page.on('console', (msg) => {
@@ -28,23 +21,39 @@ module.exports.createInstance = async ({
28
21
  });
29
22
  });
30
23
 
31
- page.on('error', (err) => {
32
- console.log('error happen at the page: ', err);
33
- });
34
-
35
- page.on('pageerror', (pageerr) => {
36
- console.log('pageerror occurred: ', pageerr);
37
- });
24
+ await page.goto(url);
38
25
 
39
- const visitPage =
40
- url || `file:${path.join(__dirname, 'dist', 'client.html')}?key=${key}`;
26
+ return page;
27
+ };
41
28
 
42
- console.log('visit page', visitPage);
29
+ module.exports.createInstance = async ({ key, url, useParallelPages } = {}) => {
30
+ const browser = await puppeteer.launch({
31
+ args: [
32
+ ...chrome.args,
33
+ '--no-sandbox',
34
+ '--hide-scrollbars',
35
+ '--disable-web-security',
36
+ '--allow-file-access-from-files',
37
+ ],
38
+ defaultViewport: chrome.defaultViewport,
39
+ executablePath: await chrome.executablePath,
40
+ headless: true,
41
+ ignoreHTTPSErrors: true,
42
+ });
43
+ const visitPage = url || `${DEFAULT_CLIENT}?key=${key}`;
43
44
 
44
- await page.goto(visitPage);
45
+ const firstPage = await getNewPage(browser, visitPage);
45
46
 
46
47
  const run = async (func, ...args) => {
47
- return await page.evaluate(func, ...args);
48
+ const page = useParallelPages
49
+ ? await getNewPage(browser, visitPage)
50
+ : firstPage;
51
+
52
+ const result = await page.evaluate(func, ...args);
53
+ if (useParallelPages) {
54
+ page.close();
55
+ }
56
+ return result;
48
57
  };
49
58
 
50
59
  const jsonToDataURL = async (json, attrs) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polotno-node",
3
- "version": "0.1.16",
3
+ "version": "0.2.1",
4
4
  "description": "Polotno workflow from NodeJS",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -14,13 +14,14 @@
14
14
  ],
15
15
  "devDependencies": {
16
16
  "parcel-bundler": "^1.12.4",
17
- "polotno": "^0.34.6",
17
+ "polotno": "^0.38.2",
18
18
  "react": "^17.0.2",
19
19
  "react-dom": "^17.0.2"
20
20
  },
21
21
  "author": "Anton Lavrenov",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
+ "chrome-aws-lambda": "^10.1.0",
24
25
  "puppeteer": "^10.4.0"
25
26
  }
26
27
  }