From 878b2cbe01b10a3960f8b532a6ce9ab863a46d20 Mon Sep 17 00:00:00 2001 From: Hexagon Date: Sun, 29 Sep 2024 23:36:28 +0200 Subject: [PATCH] Fixes for esbuild/jsr/npm --- .gitignore | 3 ++- build/clean.ts | 25 ++++++++++++++++++------- build/esbuild.ts | 2 +- build/npm.ts | 10 ++++------ deno.json | 16 ++++++++++------ 5 files changed, 35 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index b38af42..d9045d2 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ test.js deno.lock # Built npm module -dist \ No newline at end of file +dist +package.json \ No newline at end of file diff --git a/build/clean.ts b/build/clean.ts index 341dfb0..e47afd9 100644 --- a/build/clean.ts +++ b/build/clean.ts @@ -1,17 +1,28 @@ import { resolve, fromFileUrl, dirname } from "@std/path"; -import { rmdir } from "@cross/fs"; -import { isDir } from "@cross/fs/stat"; +import { rm, rmdir } from "@cross/fs"; +import { isDir, isFile } from "@cross/fs/stat"; const relativeProjectRoot = "../"; const outputFolder = "dist"; const currentScriptDir = dirname(fromFileUrl(import.meta.url)); -const resolvedPath = resolve(currentScriptDir, relativeProjectRoot, outputFolder); +const resolvedDistPath = resolve(currentScriptDir, relativeProjectRoot, outputFolder); +const resolvedNodeModulesPath = resolve(currentScriptDir, relativeProjectRoot, "node_modules"); +const resolvedPackageJsonPath = resolve(currentScriptDir, relativeProjectRoot, "package.json"); -if (await isDir(resolvedPath)) { - await rmdir(resolvedPath, { - recursive: true, - force: true +if (await isDir(resolvedDistPath)) { + await rmdir(resolvedDistPath, { + recursive: true }); +} + +if (await isDir(resolvedNodeModulesPath)) { + await rmdir(resolvedNodeModulesPath, { + recursive: true + }); +} + +if (await isFile(resolvedPackageJsonPath)) { + await rm(resolvedPackageJsonPath); } \ No newline at end of file diff --git a/build/esbuild.ts b/build/esbuild.ts index 242bd22..8e79330 100644 --- a/build/esbuild.ts +++ b/build/esbuild.ts @@ -49,7 +49,7 @@ async function build() { // ESM build await esbuild.build({ entryPoints: [resolve(relativeProjectRoot, 'src/base64.ts')], - outfile: resolve(relativeProjectRoot, outputFolder, 'base64.esm.js'), + outfile: resolve(relativeProjectRoot, outputFolder, 'base64.js'), bundle: true, platform: 'neutral', format: 'esm', diff --git a/build/npm.ts b/build/npm.ts index 4711537..5dfb17d 100644 --- a/build/npm.ts +++ b/build/npm.ts @@ -1,5 +1,4 @@ -import { readJson, writeJson } from "https://deno.land/std/fs/mod.ts"; - +import { readFile, writeFile } from "@cross/fs"; import { resolve, fromFileUrl, dirname } from "@std/path"; const relativeProjectRoot = "../"; @@ -12,7 +11,7 @@ async function generatePackageJson() { // Read deno.json const denoConfigPath = resolve(resolvedPath, "deno.json"); - const denoConfig = await readJson(denoConfigPath) as { name: string; version: string }; + const denoConfig = JSON.parse(new TextDecoder().decode(await readFile(denoConfigPath))) as { name: string; version: string }; // Define package.json template const packageJson = { @@ -43,7 +42,6 @@ async function generatePackageJson() { "base64", "base64url", "parser", - "base64", "isomorphic", "arraybuffer", "string" @@ -55,7 +53,7 @@ async function generatePackageJson() { types: "./dist/base64.d.ts", exports: { ".": { - import: "./src/base64.js", + import: "./dist/base64.js", require: "./dist/base64.cjs.js", browser: "./dist/base64.umd.js" } @@ -65,7 +63,7 @@ async function generatePackageJson() { // Write package.json const packageJsonPath = resolve(resolvedPath, "package.json"); - await writeJson(packageJsonPath, packageJson, { spaces: 2 }); + await writeFile(packageJsonPath, new TextEncoder().encode(JSON.stringify(packageJson,undefined, 2))); console.log("package.json has been generated successfully."); } diff --git a/deno.json b/deno.json index c8bec6b..d9e14b8 100644 --- a/deno.json +++ b/deno.json @@ -1,22 +1,23 @@ { "name": "@hexagon/base64", - "version": "2.0.0-dev.1", + "version": "2.0.0-dev.2", "exports": "./src/base64.ts", "lint": { "include": ["src", "test"], - "exclude": ["dist"] + "exclude": ["dist", "build"] }, "fmt": { "include": ["src", "test"], - "exclude": ["dist"], + "exclude": ["dist", "build"], "lineWidth": 100 }, "test": { - "exclude": ["dist"] + "exclude": ["dist", "build"] }, "tasks": { - "clean": "deno run --allow-read --allow-write build/clean.ts", - "build": "deno test && deno task clean && deno run --allow-read --allow-write --allow-env --allow-run build/esbuild.ts", + "build:clean": "deno run --allow-read --allow-write build/clean.ts", + "build:npm": "deno run --allow-read --allow-write build/npm.ts", + "build": "deno test && deno task build:clean && deno run --allow-read --allow-write --allow-env --allow-run build/esbuild.ts && deno task build:npm", "check-deps": "deno run -A jsr:@check/deps" }, "imports": { @@ -26,5 +27,8 @@ "@std/path": "jsr:@std/path@^1.0.6", "esbuild": "npm:esbuild@^0.24.0", "esbuild-plugin-d.ts": "npm:esbuild-plugin-d.ts@^1.3.0" + }, + "publish": { + "exclude": ["build", "dist", "package.json", ".github"] } }