diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index f129a72..87b7bc1 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -github:Sparticuz +github: Sparticuz diff --git a/.gitignore b/.gitignore index 5d12c95..4c04346 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ _/amazon/samconfig.toml _/amazon/.aws-sam *.tar *.tgz +examples/**/package-lock.json +examples/**/.serverless diff --git a/examples/aws-sam/.gitkeep b/examples/aws-sam/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/examples/production-dependency/index.js b/examples/production-dependency/index.js new file mode 100644 index 0000000..3916263 --- /dev/null +++ b/examples/production-dependency/index.js @@ -0,0 +1,30 @@ +const puppeteer = require("puppeteer-core"); +const chromium = require('@sparticuz/chromium'); + +const handler = async () => { + try { + const browser = await puppeteer.launch({ + args: chromium.args, + defaultViewport: chromium.defaultViewport, + executablePath: await chromium.executablePath(), + headless: chromium.headless, + ignoreHTTPSErrors: true, + }); + + const page = await browser.newPage(); + + await page.goto("https://www.example.com", { waitUntil: "networkidle0" }); + + console.log("Chromium:", await browser.version()); + console.log("Page Title:", await page.title()); + + await page.close(); + + await browser.close(); + + } catch (error) { + throw new Error(error.message); + } +}; + +handler(); diff --git a/examples/production-dependency/package.json b/examples/production-dependency/package.json new file mode 100644 index 0000000..31da53e --- /dev/null +++ b/examples/production-dependency/package.json @@ -0,0 +1,17 @@ +{ + "name": "chromium-production-dependency", + "version": "0.0.0", + "description": "This package demonstrates using @sparticuz/chromium as a production dependency. WARNING: This package is over 50 megabytes and will likely not deploy using anything other than self-host", + "license": "ISC", + "author": { + "name": "Kyle McNally" + }, + "main": "index.js", + "scripts": { + "test": "node index.js" + }, + "dependencies": { + "@sparticuz/chromium": "110.0.0", + "puppeteer-core": "19.6.3" + } +} diff --git a/examples/remote-min-binary/.gitkeep b/examples/remote-min-binary/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/examples/serverless-with-lambda-layer/index.js b/examples/serverless-with-lambda-layer/index.js new file mode 100644 index 0000000..c246b67 --- /dev/null +++ b/examples/serverless-with-lambda-layer/index.js @@ -0,0 +1,30 @@ +const puppeteer = require("puppeteer-core"); +const chromium = require('@sparticuz/chromium'); + +module.exports = { + handler: async () => { + try { + const browser = await puppeteer.launch({ + args: chromium.args, + defaultViewport: chromium.defaultViewport, + executablePath: await chromium.executablePath(), + headless: chromium.headless, + ignoreHTTPSErrors: true, + }); + + const page = await browser.newPage(); + + await page.goto("https://www.example.com", { waitUntil: "networkidle0" }); + + console.log("Chromium:", await browser.version()); + console.log("Page Title:", await page.title()); + + await page.close(); + + await browser.close(); + + } catch (error) { + throw new Error(error.message); + } + } +}; diff --git a/examples/serverless-with-lambda-layer/package.json b/examples/serverless-with-lambda-layer/package.json new file mode 100644 index 0000000..b3d109f --- /dev/null +++ b/examples/serverless-with-lambda-layer/package.json @@ -0,0 +1,21 @@ +{ + "name": "serverless-with-lambda-layer", + "version": "0.0.0", + "description": "This package demonstrates using @sparticuz/chromium as a devDependency with a layer that contains the binaries", + "license": "ISC", + "author": { + "name": "Kyle McNally" + }, + "main": "index.js", + "scripts": { + "deploy": "sls deploy", + "test": "sls invoke --function chromium-test --log" + }, + "dependencies": { + "puppeteer-core": "19.6.3" + }, + "devDependencies": { + "@sparticuz/chromium": "110.0.0", + "serverless": "^3.27.0" + } +} diff --git a/examples/serverless-with-lambda-layer/serverless.yml b/examples/serverless-with-lambda-layer/serverless.yml new file mode 100644 index 0000000..f30bcec --- /dev/null +++ b/examples/serverless-with-lambda-layer/serverless.yml @@ -0,0 +1,19 @@ +service: sls-with-layer + +provider: + name: aws + runtime: nodejs18.x + stage: dev + region: us-east-1 + timeout: 300 + +functions: + chromium-test: + handler: index.handler + layers: + - !Ref ChromiumtestLambdaLayer + +layers: + chromiumtest: + package: + artifact: ../../chromium.zip diff --git a/examples/webpack/.gitkeep b/examples/webpack/.gitkeep new file mode 100644 index 0000000..e69de29