Skip to content

Commit

Permalink
feat!: rewrite lib to support esm
Browse files Browse the repository at this point in the history
solves #2, #12, #17
  • Loading branch information
onmax committed Oct 30, 2024
1 parent 70bbce1 commit ef6aaf2
Show file tree
Hide file tree
Showing 338 changed files with 10,512 additions and 11,702 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/playground.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Deploy Playground to GitHub Pages

on:
# Runs on pushes targeting the `main` branch. Change this to `master` if you're
# using the `master` branch as the default branch.
push:
branches: [main]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Not needed if lastUpdated is not enabled
- uses: pnpm/action-setup@v3
with:
version: latest
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Install dependencies
run: pnpm install
- name: Build package
run: pnpm build
- name: Build playground
run: BASE_URL="/identicons" pnpm --filter playground build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: playground/dist

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build
runs-on: ubuntu-latest
name: Deploy
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
21 changes: 20 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
.cache
.DS_Store
.idea
*.log
*.tgz
coverage
dist
lib-cov
logs
node_modules
temp

.DS_Store
tmp
.vite-ssg-dist
.vite-ssg-temp
*.local
dist
dist-ssr
node_modules
.idea/
*.log
cypress/downloads
7 changes: 7 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"recommendations": [
"Vue.volar",
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig"
]
}
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ The library is heavily optimized for performance.
[See the Identicons in action here.](https://nimiq.github.io/identicons/)

- [Installation](#installation)
- [Browsers](#browsers)
- [NodeJS](#nodejs)
- [Browsers](#browsers)
- [NodeJS](#nodejs)
- [Usage](#usage)
- [Demos](#demos)

Expand Down Expand Up @@ -62,37 +62,37 @@ All methods generating identicons are async and return promises.
Get a raw SVG text string:

```js
const svg = await Identicons.svg(text)
const svg = await Identicons.svg(text)
```

Get a SVG data url string (the one starting with `data:image/svg+xml;base64,...`),
which can be set as `img.src`:

```js
const dataUrl = await Identicons.toDataUrl(text)
const dataUrl = await Identicons.toDataUrl(text)
```

Render an identicon SVG into the DOM (only in browsers!):

```js
await Identicons.render(text, element)
await Identicons.render(text, element)
```

Get an `<img>` DOM node (only in browsers!):

```js
const img = await Identicons.image(text)
const img = await Identicons.image(text)
```

You can generate a placeholder icon with these (sync) methods:

```js
// Placeholder SVG:
const svg = Identicons.placeholder(color = '#bbb', strokeWidth = 1)
// Placeholder data url:
const dataUrl = Identicons.placeholderToDataUrl(color = '#bbb', strokeWidth = 1)
// Render placeholder SVG into `element`:
Identicons.renderPlaceholder(element, color = '#bbb', strokeWidth = 1)
// Placeholder SVG:
const svg = Identicons.placeholder(color = '#bbb', strokeWidth = 1)
// Placeholder data url:
const dataUrl = Identicons.placeholderToDataUrl(color = '#bbb', strokeWidth = 1)
// Render placeholder SVG into `element`:
Identicons.renderPlaceholder(element, color = '#bbb', strokeWidth = 1)
```

## Demos
Expand Down
30 changes: 30 additions & 0 deletions build.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { defineBuildConfig } from 'unbuild'

export default defineBuildConfig({
entries: [
{
input: 'src/index',
name: 'index',
builder: 'rollup',
},
{
input: 'src/index',
name: 'index.min',
builder: 'rollup',
},
],
declaration: true,
clean: true,
rollup: {
emitCJS: true,
inlineDependencies: true,
esbuild: {
target: 'es2020',
platform: 'browser',
},
},
externals: [
'node:*',
'jiti',
],
})
Loading

0 comments on commit ef6aaf2

Please sign in to comment.