Skip to content

Commit 9d49476

Browse files
committed
initial commit
1 parent 9cc2cb9 commit 9d49476

14 files changed

+3541
-1
lines changed

.github/CODEOWNERS

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @luxass

.github/renovate.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": ["github>luxass/renovate-config"]
4+
}

.github/workflows/ci.yaml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
types:
9+
- opened
10+
- synchronize
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
node-version: [18, 20]
18+
steps:
19+
- uses: actions/[email protected]
20+
21+
- name: setup pnpm
22+
uses: pnpm/action-setup@v4
23+
24+
- name: setup node
25+
uses: actions/[email protected]
26+
with:
27+
node-version: ${{ matrix.node-version }}
28+
29+
- name: install dependencies
30+
run: pnpm install
31+
32+
- name: build
33+
run: pnpm build
34+
35+
- name: lint
36+
run: pnpm lint
37+
38+
- name: test
39+
run: pnpm test
40+
41+
- name: typecheck
42+
run: pnpm typecheck

.github/workflows/release.yaml

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
release:
10+
permissions:
11+
id-token: write
12+
contents: write
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/[email protected]
16+
with:
17+
fetch-depth: 0
18+
19+
- name: Setup pnpm
20+
uses: pnpm/action-setup@v4
21+
22+
- name: Setup node
23+
uses: actions/[email protected]
24+
with:
25+
registry-url: "https://registry.npmjs.org"
26+
node-version: 20
27+
28+
- run: pnpx changelogithub
29+
env:
30+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31+
32+
- name: Install dependencies
33+
run: pnpm install
34+
35+
- name: Build
36+
run: pnpm build
37+
38+
- name: Publish to NPM
39+
run: npm publish --access public --no-git-checks
40+
env:
41+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
42+
NPM_CONFIG_PROVENANCE: true
43+
44+
- name: Publish to JSR
45+
run: npx jsr publish --allow-dirty
46+
47+
- name: Print Dirty Files
48+
run: git status --porcelain

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
dist
3+
.vitest-testdirs

.vscode/extensions.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"recommendations": ["editorconfig.editorconfig", "biomejs.biome"],
3+
"unwantedRecommendations": []
4+
}

.vscode/settings.json

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"[json]": {
3+
"editor.defaultFormatter": "biomejs.biome"
4+
},
5+
"[javascript]": {
6+
"editor.defaultFormatter": "biomejs.biome"
7+
},
8+
"[typescript]": {
9+
"editor.defaultFormatter": "biomejs.biome"
10+
},
11+
"editor.codeActionsOnSave": {
12+
"quickFix.biome": "explicit",
13+
"source.fixAll.biome": "explicit"
14+
},
15+
"typescript.tsdk": "node_modules/typescript/lib",
16+
}

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024-PRESENT Lucas Nørgård
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

biome.json

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"$schema": "https://biomejs.dev/schemas/1.9.3/schema.json",
3+
"files": {
4+
"ignoreUnknown": false,
5+
"ignore": ["dist/**"]
6+
},
7+
"formatter": {
8+
"indentStyle": "tab",
9+
"indentWidth": 2,
10+
"lineWidth": 100
11+
},
12+
"organizeImports": {
13+
"enabled": true
14+
},
15+
"linter": {
16+
"enabled": true,
17+
"rules": {
18+
"recommended": true
19+
}
20+
},
21+
"javascript": {
22+
"formatter": {
23+
"quoteStyle": "double"
24+
}
25+
},
26+
"json": {
27+
"parser": {
28+
"allowComments": true,
29+
"allowTrailingCommas": true
30+
},
31+
"formatter": {
32+
"indentStyle": "space",
33+
"trailingCommas": "none"
34+
}
35+
},
36+
"overrides": [
37+
{
38+
"include": ["package.json"],
39+
"json": {
40+
"formatter": {
41+
"lineWidth": 1
42+
}
43+
}
44+
}
45+
]
46+
}

package.json

+62-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,66 @@
22
"name": "vsix-builder",
33
"type": "module",
44
"version": "0.0.1",
5-
"description": "A programmatic way to create VSIX files for Visual Studio Code extensions."
5+
"description": "A programmatic way to create VSIX files for Visual Studio Code extensions.",
6+
"author": {
7+
"name": "Lucas Nørgård",
8+
"email": "[email protected]",
9+
"url": "https://luxass.dev"
10+
},
11+
"packageManager": "[email protected]",
12+
"license": "MIT",
13+
"homepage": "https://github.com/luxass/vsix-builder",
14+
"repository": {
15+
"type": "git",
16+
"url": "git+https://github.com/luxass/vsix-builder.git"
17+
},
18+
"bugs": {
19+
"url": "https://github.com/luxass/vsix-builder/issues"
20+
},
21+
"exports": {
22+
".": {
23+
"import": {
24+
"types": "./dist/index.d.ts",
25+
"default": "./dist/index.mjs"
26+
},
27+
"require": {
28+
"types": "./dist/index.d.cts",
29+
"default": "./dist/index.cjs"
30+
}
31+
},
32+
"./package.json": "./package.json"
33+
},
34+
"main": "dist/index.cjs",
35+
"module": "dist/index.mjs",
36+
"types": "dist/index.d.ts",
37+
"files": [
38+
"dist"
39+
],
40+
"scripts": {
41+
"build": "tsup",
42+
"dev": "tsup --watch",
43+
"lint": "biome lint",
44+
"lint:fix": "biome lint --write",
45+
"format": "biome format",
46+
"format:fix": "biome format --write",
47+
"test": "vitest --run",
48+
"test:watch": "vitest",
49+
"typecheck": "tsc --noEmit"
50+
},
51+
"dependencies": {
52+
"ignore": "^7.0.0",
53+
"package-manager-detector": "^0.2.8",
54+
"semver": "^7.6.3",
55+
"tinyglobby": "^0.2.10",
56+
"zod": "^3.23.8"
57+
},
58+
"devDependencies": {
59+
"@biomejs/biome": "^1.9.3",
60+
"@types/node": "20.16.11",
61+
"@types/semver": "^7.5.8",
62+
"tsup": "^8.3.0",
63+
"typescript": "^5.6.3",
64+
"vitest": "^2.1.3",
65+
"vitest-testdirs": "^1.4.0"
66+
}
667
}

0 commit comments

Comments
 (0)