Skip to content

Commit f4fdc70

Browse files
committed
feat: add browser bundle build for CDN usage
- add build.js — esbuild script that creates dist/cs2-masked-inspect.min.js as IIFE with Buffer polyfill bundled in (browser-compatible) - add esbuild + buffer as devDependencies - add npm run build script - update release.yml: install deps, build bundle, upload .min.js as release asset via gh release upload before npm publish - add dist/ to .gitignore Also commit previously unstaged v1.1.0 changes: - src/GenCode.js — generate, toGenCode, parseGenCode, genCodeFromLink - tests/gen_codes.test.js — gen code tests - index.js — export gen code functions
1 parent 7a450df commit f4fdc70

8 files changed

Lines changed: 880 additions & 5 deletions

File tree

.github/workflows/release.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
runs-on: ubuntu-latest
1010
environment: npm
1111
permissions:
12-
id-token: write # required for npm trusted publishing (OIDC)
13-
contents: read
12+
id-token: write # required for npm OIDC trusted publishing
13+
contents: write # required for uploading release assets
1414

1515
steps:
1616
- uses: actions/checkout@v4
@@ -26,5 +26,16 @@ jobs:
2626
VERSION="${GITHUB_REF_NAME#v}"
2727
npm version "$VERSION" --no-git-tag-version
2828
29+
- name: Install dev dependencies
30+
run: npm install
31+
32+
- name: Build browser bundle
33+
run: npm run build
34+
35+
- name: Upload browser bundle to release
36+
run: gh release upload "$GITHUB_REF_NAME" dist/cs2-masked-inspect.min.js --clobber
37+
env:
38+
GH_TOKEN: ${{ github.token }}
39+
2940
- name: Publish to npm
3041
run: npm publish --access public --provenance

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
node_modules/
2+
dist/
23
.DS_Store
34
*.log
45
.idea/

build.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env node
2+
'use strict';
3+
4+
const { buildSync } = require('esbuild');
5+
const { mkdirSync } = require('fs');
6+
7+
mkdirSync('dist', { recursive: true });
8+
9+
buildSync({
10+
stdin: {
11+
contents: `
12+
var Buffer = require('buffer').Buffer;
13+
globalThis.Buffer = Buffer;
14+
module.exports = require('./index.js');
15+
`,
16+
resolveDir: __dirname,
17+
},
18+
bundle: true,
19+
format: 'iife',
20+
globalName: 'Cs2MaskedInspect',
21+
platform: 'browser',
22+
outfile: 'dist/cs2-masked-inspect.min.js',
23+
minify: true,
24+
});
25+
26+
console.log('Built dist/cs2-masked-inspect.min.js');

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
const InspectLink = require('./src/InspectLink');
44
const ItemPreviewData = require('./src/ItemPreviewData');
55
const Sticker = require('./src/Sticker');
6+
const { toGenCode, generate, parseGenCode, genCodeFromLink, INSPECT_BASE } = require('./src/GenCode');
67

7-
module.exports = { InspectLink, ItemPreviewData, Sticker };
8+
module.exports = { InspectLink, ItemPreviewData, Sticker, toGenCode, generate, parseGenCode, genCodeFromLink, INSPECT_BASE };

0 commit comments

Comments
 (0)