mirror of
https://github.com/zoriya/typebox.git
synced 2026-06-03 03:12:09 +00:00
Revision 0.32.27 (#854)
* Refactor Build Tooling * Override esm.sh Bundling Strategy * Version
This commit is contained in:
@@ -26,13 +26,13 @@ THE SOFTWARE.
|
||||
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
import { removeNotices } from '../common/remove-notices'
|
||||
import { removeNotices } from '../notices/remove-notices'
|
||||
import { compile } from './compile'
|
||||
|
||||
/** Builds the CommonJS version of this package */
|
||||
export async function build(target: string) {
|
||||
console.log('building...require')
|
||||
const buildTarget = `${target}/build/require`
|
||||
console.log('building...cjs')
|
||||
const buildTarget = `${target}/build/cjs`
|
||||
await compile(buildTarget)
|
||||
await removeNotices(buildTarget)
|
||||
}
|
||||
@@ -26,14 +26,14 @@ THE SOFTWARE.
|
||||
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
import { removeNotices } from '../common/remove-notices'
|
||||
import { removeNotices } from '../notices/remove-notices'
|
||||
import { convertToEsm } from './convert-to-esm'
|
||||
import { compile } from './compile'
|
||||
|
||||
/** Builds the ESM version of this package */
|
||||
export async function build(target: string) {
|
||||
console.log('building...import')
|
||||
const buildTarget = `${target}/build/import`
|
||||
console.log('building...esm')
|
||||
const buildTarget = `${target}/build/esm`
|
||||
await compile(buildTarget)
|
||||
await convertToEsm(buildTarget)
|
||||
await removeNotices(buildTarget)
|
||||
+3
-3
@@ -26,6 +26,6 @@ THE SOFTWARE.
|
||||
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
export * as Import from './import/build'
|
||||
export * as Require from './require/build'
|
||||
export * as Redirect from './redirect/build'
|
||||
export * as Package from './package/build'
|
||||
export * as Esm from './esm/build'
|
||||
export * as Cjs from './cjs/build'
|
||||
|
||||
@@ -26,13 +26,13 @@ THE SOFTWARE.
|
||||
|
||||
---------------------------------------------------------------------------*/
|
||||
|
||||
import { createPackageJsonRedirect } from './create-package-json-redirect'
|
||||
import { createPackageJson } from './create-package-json'
|
||||
import { createRedirectPaths } from './create-redirect-paths'
|
||||
|
||||
/** Builds package.json and redirect directories */
|
||||
export async function build(target: string) {
|
||||
console.log('building...redirect')
|
||||
console.log('building...package.json')
|
||||
const submodules = ['compiler', 'errors', 'system', 'type', 'value']
|
||||
await createPackageJsonRedirect(target, submodules)
|
||||
await createPackageJson(target, submodules)
|
||||
await createRedirectPaths(target, submodules)
|
||||
}
|
||||
+9
-10
@@ -28,6 +28,14 @@ THE SOFTWARE.
|
||||
|
||||
import * as Fs from 'node:fs'
|
||||
|
||||
// prettier-ignore
|
||||
function writeRedirect(target: string, submodule: string) {
|
||||
Fs.mkdirSync(`${target}/${submodule}`, { recursive: true })
|
||||
Fs.writeFileSync(`${target}/${submodule}/package.json`,JSON.stringify({
|
||||
main: `../build/cjs/${submodule}/index.js`,
|
||||
types: `../build/cjs/${submodule}/index.d.ts`,
|
||||
}, null, 2))
|
||||
}
|
||||
// --------------------------------------------------------------------------------------------------------------------------
|
||||
// Builds redirect directories for earlier versions of Node. Note that TypeScript will use these directories to
|
||||
// resolve types when tsconfig.json is configured for `moduleResolution: 'node'`. This approach is referred to as
|
||||
@@ -37,15 +45,6 @@ import * as Fs from 'node:fs'
|
||||
// --------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// prettier-ignore
|
||||
export function createRedirectPaths(target: string, submodules: string[]) {
|
||||
export function createPackageJsonRedirect(target: string, submodules: string[]) {
|
||||
submodules.forEach((submodule) => writeRedirect(target, submodule))
|
||||
}
|
||||
|
||||
// prettier-ignore
|
||||
function writeRedirect(target: string, submodule: string) {
|
||||
Fs.mkdirSync(`${target}/${submodule}`, { recursive: true })
|
||||
Fs.writeFileSync(`${target}/${submodule}/package.json`,JSON.stringify({
|
||||
main: `../build/require/${submodule}/index.js`,
|
||||
types: `../build/require/${submodule}/index.d.ts`,
|
||||
}, null, 2))
|
||||
}
|
||||
+15
-13
@@ -48,13 +48,12 @@ function resolvePackageJson(submodules: string[]) {
|
||||
function resolveSubmoduleExports(submodule: string) {
|
||||
return {
|
||||
require: {
|
||||
types: `./build/require/${submodule}/index.d.ts`,
|
||||
default: `./build/require/${submodule}/index.js`,
|
||||
types: `./build/cjs/${submodule}/index.d.ts`,
|
||||
default: `./build/cjs/${submodule}/index.js`,
|
||||
},
|
||||
import: {
|
||||
types: `./build/import/${submodule}/index.d.mts`,
|
||||
default: `./build/import/${submodule}/index.mjs`,
|
||||
|
||||
types: `./build/esm/${submodule}/index.d.mts`,
|
||||
default: `./build/esm/${submodule}/index.mjs`,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -66,13 +65,13 @@ function resolveExports(submodules: string[]) {
|
||||
// ... and root module
|
||||
".": {
|
||||
"require": {
|
||||
"types": "./build/require/index.d.ts",
|
||||
"default": "./build/require/index.js",
|
||||
"types": "./build/cjs/index.d.ts",
|
||||
"default": "./build/cjs/index.js",
|
||||
|
||||
},
|
||||
"import": {
|
||||
"types": "./build/import/index.d.mts",
|
||||
"default": "./build/import/index.mjs",
|
||||
"types": "./build/esm/index.d.mts",
|
||||
"default": "./build/esm/index.mjs",
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -90,9 +89,12 @@ function resolveMetadata() {
|
||||
author: packageJson.author,
|
||||
license: packageJson.license,
|
||||
repository: packageJson.repository,
|
||||
scripts: { test: 'echo test' }, // flagged by socket.dev
|
||||
types: "./build/require/index.d.ts",
|
||||
main: "./build/require/index.js",
|
||||
module: "./build/import/index.mjs",
|
||||
// flagged by socket.dev if not present
|
||||
scripts: { test: 'echo test' },
|
||||
// disable auto bundle strategy: see https://github.com/esm-dev/esm.sh#bundling-strategy
|
||||
'esm.sh': { 'bundle': false },
|
||||
types: "./build/cjs/index.d.ts",
|
||||
main: "./build/cjs/index.js",
|
||||
module: "./build/esm/index.mjs"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user