switch to tsdown for building library

This commit is contained in:
Joel Wetzell
2026-05-15 11:29:42 -05:00
parent a2fbd2a2b0
commit 3ab3fcbcd8
16 changed files with 923 additions and 57 deletions
+877 -3
View File
File diff suppressed because it is too large Load Diff
+10 -12
View File
@@ -2,22 +2,17 @@
"name": "@jwetzell/osc", "name": "@jwetzell/osc",
"version": "1.7.0", "version": "1.7.0",
"description": "", "description": "",
"main": "./dist/cjs/index.js", "types": "./dist/index.d.cts",
"module": "./dist/esm/index.js",
"types": "./dist/types/index.d.ts",
"exports": { "exports": {
".": { ".": {
"import": "./dist/esm/index.js", "import": "./dist/index.mjs",
"require": "./dist/cjs/index.js", "require": "./dist/index.cjs"
"types": "./dist/types/index.d.ts" },
} "./package.json": "./package.json"
}, },
"scripts": { "scripts": {
"prebuild": "rimraf dist", "prebuild": "rimraf dist",
"build": "npm run build:cjs && npm run build:esm && npm run build:types", "build": "tsdown",
"build:cjs": "tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json",
"build:esm": "tsc -p tsconfig.esm.json && echo '{\"type\": \"module\"}' > dist/esm/package.json",
"build:types": "tsc -p tsconfig.types.json",
"prepublishOnly": "npm run build", "prepublishOnly": "npm run build",
"pretest": "npm run build", "pretest": "npm run build",
"test": "node --test --experimental-test-coverage" "test": "node --test --experimental-test-coverage"
@@ -38,6 +33,9 @@
"devDependencies": { "devDependencies": {
"@types/node": "24.5.2", "@types/node": "24.5.2",
"rimraf": "6.1.3", "rimraf": "6.1.3",
"tsdown": "0.22.0",
"typescript": "5.9.3" "typescript": "5.9.3"
} },
"main": "./dist/index.cjs",
"module": "./dist/index.mjs"
} }
+4 -4
View File
@@ -1,5 +1,5 @@
import { messageFromBuffer, messageToBuffer } from './message.js'; import { messageFromBuffer, messageToBuffer } from './message.js';
import { OSCBundle } from './models.js'; import { type OSCBundle } from './models.js';
import { oscTypeConverterMap } from './osc-types.js'; import { oscTypeConverterMap } from './osc-types.js';
export function bundleFromBuffer(bytes: Uint8Array): [OSCBundle | undefined, Uint8Array | undefined] { export function bundleFromBuffer(bytes: Uint8Array): [OSCBundle | undefined, Uint8Array | undefined] {
@@ -11,7 +11,7 @@ export function bundleFromBuffer(bytes: Uint8Array): [OSCBundle | undefined, Uin
throw new Error('bundle must start with #bundle'); throw new Error('bundle must start with #bundle');
} }
const [bundleHeader, bytesAfterHeader] = oscTypeConverterMap.s.fromBuffer(bytes); const [, bytesAfterHeader] = oscTypeConverterMap.s.fromBuffer(bytes);
const [timeTag, bytesAfterTimeTag] = oscTypeConverterMap.t.fromBuffer(bytesAfterHeader); const [timeTag, bytesAfterTimeTag] = oscTypeConverterMap.t.fromBuffer(bytesAfterHeader);
if (!Array.isArray(timeTag)) { if (!Array.isArray(timeTag)) {
@@ -42,12 +42,12 @@ export function bundleFromBuffer(bytes: Uint8Array): [OSCBundle | undefined, Uin
if (bundleContentBytes[0] === 35) { if (bundleContentBytes[0] === 35) {
// # character indicating contents is a bundle // # character indicating contents is a bundle
const [content, bytesAfterContent] = bundleFromBuffer(bundleContentBytes); const [content] = bundleFromBuffer(bundleContentBytes);
if (content) { if (content) {
bundleContents.push(content); bundleContents.push(content);
} }
} else if (bundleContentBytes[0] === 47) { } else if (bundleContentBytes[0] === 47) {
const [content, bytesAfterContent] = messageFromBuffer(bundleContentBytes); const [content] = messageFromBuffer(bundleContentBytes);
if (content && content !== undefined) { if (content && content !== undefined) {
bundleContents.push(content); bundleContents.push(content);
} }
+1 -1
View File
@@ -1,6 +1,6 @@
import { bundleFromBuffer } from './bundle.js'; import { bundleFromBuffer } from './bundle.js';
import { messageFromBuffer } from './message.js'; import { messageFromBuffer } from './message.js';
import { OSCBundle, OSCMessage } from './models.js'; import type { OSCBundle, OSCMessage } from './models.js';
export * from './models.js'; export * from './models.js';
export * from './message.js'; export * from './message.js';
+1 -1
View File
@@ -1,4 +1,4 @@
import { OSCMessage, OSCArg, OSCType } from './models.js'; import type { OSCMessage, OSCArg, OSCType } from './models.js';
import { oscTypeConverterMap } from './osc-types.js'; import { oscTypeConverterMap } from './osc-types.js';
function argsToBuffer(args: OSCArg[]) { function argsToBuffer(args: OSCArg[]) {
+1 -1
View File
@@ -1,4 +1,4 @@
import { OSCTypeConverter, OSCTimeTag } from './models.js'; import type { OSCTypeConverter, OSCTimeTag } from './models.js';
export const oscTypeConverterMap: { [key: string]: OSCTypeConverter } = { export const oscTypeConverterMap: { [key: string]: OSCTypeConverter } = {
s: { s: {
+1 -1
View File
@@ -1,6 +1,6 @@
const { deepEqual, equal, throws } = require('assert'); const { deepEqual, equal, throws } = require('assert');
const { describe, it } = require('node:test'); const { describe, it } = require('node:test');
const osc = require('../dist/cjs/index'); const osc = require('../');
const goodTests = [ const goodTests = [
{ {
+1 -1
View File
@@ -1,6 +1,6 @@
const { deepEqual } = require('assert'); const { deepEqual } = require('assert');
const { describe, it } = require('node:test'); const { describe, it } = require('node:test');
const osc = require('../dist/cjs/index'); const osc = require('../');
const tests = [ const tests = [
{ {
+1 -1
View File
@@ -1,6 +1,6 @@
const { deepEqual, equal } = require('assert'); const { deepEqual, equal } = require('assert');
const { describe, it } = require('node:test'); const { describe, it } = require('node:test');
const osc = require('../dist/cjs/index'); const osc = require('../');
const tests = [ const tests = [
{ {
+1 -1
View File
@@ -1,6 +1,6 @@
const { deepEqual, throws, equal } = require('assert'); const { deepEqual, throws, equal } = require('assert');
const { describe, it } = require('node:test'); const { describe, it } = require('node:test');
const osc = require('../dist/cjs/index'); const osc = require('../');
const goodTests = [ const goodTests = [
{ {
+1 -1
View File
@@ -1,6 +1,6 @@
const { deepEqual, throws } = require('assert'); const { deepEqual, throws } = require('assert');
const { describe, it } = require('node:test'); const { describe, it } = require('node:test');
const osc = require('../dist/cjs/index'); const osc = require('../');
const goodTests = [ const goodTests = [
{ {
-8
View File
@@ -1,8 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "CommonJS",
"declaration": false,
"outDir": "./dist/cjs"
}
}
-8
View File
@@ -1,8 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "ESNext",
"declaration": false,
"outDir": "./dist/esm"
}
}
+14 -6
View File
@@ -1,12 +1,20 @@
{ {
"compilerOptions": { "compilerOptions": {
"moduleResolution": "Node", "target": "esnext",
"lib": ["ESNext"], "lib": ["es2023"],
"target": "ESNext", "moduleDetection": "force",
"module": "preserve",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"types": ["node"],
"strict": true,
"noUnusedLocals": true,
"declaration": true,
"emitDeclarationOnly": true,
"esModuleInterop": true, "esModuleInterop": true,
"isolatedModules": true, "isolatedModules": true,
"rootDir": "src/", "verbatimModuleSyntax": true,
"strict": true "skipLibCheck": true
}, },
"include": ["src/"] "include": ["src"]
} }
-8
View File
@@ -1,8 +0,0 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true,
"outDir": "./dist/types"
}
}
+10
View File
@@ -0,0 +1,10 @@
import { defineConfig } from 'tsdown'
export default defineConfig({
entry: 'src/index.ts',
exports: true,
format: {
esm: {},
cjs: {},
},
})