summaryrefslogtreecommitdiffhomepage
path: root/packages/server/build_npm.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server/build_npm.ts')
-rw-r--r--packages/server/build_npm.ts87
1 files changed, 18 insertions, 69 deletions
diff --git a/packages/server/build_npm.ts b/packages/server/build_npm.ts
index 5ed6509..17e85dc 100644
--- a/packages/server/build_npm.ts
+++ b/packages/server/build_npm.ts
@@ -1,9 +1,7 @@
-import { build, BuildOptions, emptyDir } from 'https://deno.land/x/dnt@0.38.0/mod.ts';
+import { build, emptyDir } from 'https://deno.land/x/dnt@0.38.0/mod.ts';
+
+const outDir = './npm';
-const outDir = {
- publish: './npm',
- test: './npm-test',
-} as const;
const lernaPackageJSON: { version: string } = JSON.parse(
Deno.readTextFileSync('./package.json'),
);
@@ -11,50 +9,19 @@ const typesPackageJSON: { version: string } = JSON.parse(
Deno.readTextFileSync('../typescript-types/npm/package.json'),
);
-// Clear both build directories
-await Promise.all([
- await emptyDir(outDir.publish),
- await emptyDir(outDir.test),
-]);
+await emptyDir(outDir);
-/**
- * Maintain a separate build just for testing, as we need to shim crypto only
- * when test_runner.js runs to test the ESM and CJS output. The test environment
- * currently lacks `globalThis.crypto` and so shimming it is the only way to
- * get the tests to successfully execute. But we don't want the shim in the
- * build we post up to NPM so that the runtime's native Crypto can be used.
- *
- * See https://github.com/denoland/dnt/issues/181
- */
-console.log('Building for testing...');
await build({
- entryPoints: getEntryPoints(),
- outDir: outDir.test,
+ entryPoints: [
+ { name: '.', path: './src/index.ts' },
+ { name: './helpers', path: './src/helpers/index.ts' },
+ ],
+ outDir,
shims: {
deno: {
test: 'dev',
},
- crypto: true,
},
- test: true,
- // TODO: Re-enable if https://github.com/denoland/dnt/issues/331 can get resolved
- typeCheck: false,
- package: {
- name: 'for-testing-only',
- version: '0.0.0',
- },
- // Map from Deno package to NPM package for Node build
- mappings: getMappings(),
- // TypeScript tsconfig.json config
- compilerOptions: getCompilerOptions(),
-});
-
-console.log('Building for publishing...');
-await build({
- entryPoints: getEntryPoints(),
- outDir: outDir.publish,
- shims: {},
- test: false,
// TODO: Re-enable if https://github.com/denoland/dnt/issues/331 can get resolved
typeCheck: false,
// package.json values
@@ -98,26 +65,7 @@ await build({
},
},
// Map from Deno package to NPM package for Node build
- mappings: getMappings(),
- // TypeScript tsconfig.json config
- compilerOptions: getCompilerOptions(),
-});
-
-Deno.copyFileSync('LICENSE.md', `${outDir.publish}/LICENSE.md`);
-Deno.copyFileSync('README.md', `${outDir.publish}/README.md`);
-
-/**
- * Settings we can reuse across the two build configs
- */
-function getEntryPoints(): BuildOptions['entryPoints'] {
- return [
- { name: '.', path: './src/index.ts' },
- { name: './helpers', path: './src/helpers/index.ts' },
- ];
-}
-
-function getMappings(): BuildOptions['mappings'] {
- return {
+ mappings: {
'https://deno.land/x/b64@1.1.27/src/base64.js': {
name: '@hexagon/base64',
version: '^1.1.27',
@@ -163,11 +111,12 @@ function getMappings(): BuildOptions['mappings'] {
name: '@simplewebauthn/typescript-types',
version: `^${typesPackageJSON.version}`,
},
- };
-}
-
-function getCompilerOptions(): BuildOptions['compilerOptions'] {
- return {
+ },
+ // TypeScript tsconfig.json config
+ compilerOptions: {
lib: ['ES2021'],
- };
-}
+ },
+});
+
+Deno.copyFileSync('LICENSE.md', `${outDir}/LICENSE.md`);
+Deno.copyFileSync('README.md', `${outDir}/README.md`);