Skip to content

Commit

Permalink
ref: elaborate on resource value resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
Sv443 committed Nov 17, 2024
1 parent ad61f47 commit f30782a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
3 changes: 2 additions & 1 deletion contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@ The main files you will be working with are:
- Adding an asset (image, icon, stylesheet, translation file and misc. other files):
1. Add the asset to the `assets` folder in the root of the project, under the correct subfolder
2. Add the asset to the [`assets/resources.json`](./assets/resources.json) file by following the format of the other entries.
If the path begins with a slash, it will start at the project root (where package.json is), otherwise it will start at the `assets` folder.
If the path begins with a slash, it will start at the project root (where package.json is), otherwise it will start at the `assets` folder.
The path string or all values in the object of each resource will be passed through the function `resolveResourceVal()` in [`src/tools/post-build.ts`](./src/tools/post-build.ts) to resolve placeholders like `$BRANCH`. View all replacements by looking up that function.
3. The asset will be immediately available in the userscript after the next build and the `@resource` directive will automatically point at the locally served asset or the GitHub CDN, depending on the build mode.
4. **When committing, make sure to commit the assets first, then rebuild the userscript and make a second commit.**
This needs to be done because the build script at `src/tools/post-build.ts` will use the *previous* commit hash to create version-independent URLs for the assets. These will continue to work in the future, instead of pointing to an ever-changing branch where files could be moved, renamed or deleted at any time.
Expand Down
8 changes: 4 additions & 4 deletions src/tools/post-build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,8 +254,8 @@ async function exists(path: string) {
}

/** Resolves the value of an entry in resources.json */
function resolveVal(value: string, buildNbr: string) {
if(!value.includes("$"))
function resolveResourceVal(value: string, buildNbr: string) {
if(!(/\$/.test(value)))
return value;

const replacements = [
Expand Down Expand Up @@ -284,8 +284,8 @@ async function getResourceDirectives(ref: string) {
? await getFileHashSha256(pathVal.replace(/\?.+/g, ""))
: undefined;
resourcesHashed[name] = typeof val === "object"
? { path: resolveVal(val.path, ref), ref: resolveVal(val.ref, ref), hash }
: { path: getResourceUrl(resolveVal(val, ref), ref), ref, hash };
? { path: resolveResourceVal(val.path, ref), ref: resolveResourceVal(val.ref, ref), hash }
: { path: getResourceUrl(resolveResourceVal(val, ref), ref), ref, hash };
}

const addResourceHashed = async (name: string, path: string, ref: string) => {
Expand Down

0 comments on commit f30782a

Please sign in to comment.