@napi-rs/cli 3.0.0-alpha.23 → 3.0.0-alpha.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/build.js +3 -3
- package/dist/api/build.js.map +1 -1
- package/dist/api/create-npm-dirs.js +8 -5
- package/dist/api/create-npm-dirs.js.map +1 -1
- package/dist/api/new.js +17 -9
- package/dist/api/new.js.map +1 -1
- package/dist/api/pre-publish.js +5 -4
- package/dist/api/pre-publish.js.map +1 -1
- package/dist/api/rename.js +1 -1
- package/dist/api/rename.js.map +1 -1
- package/dist/api/templates/ci-template.d.ts +2 -1
- package/dist/api/templates/ci-template.js +102 -110
- package/dist/api/templates/ci-template.js.map +1 -1
- package/dist/api/templates/ci.yml.d.ts +2 -1
- package/dist/api/templates/ci.yml.js +10 -2
- package/dist/api/templates/ci.yml.js.map +1 -1
- package/dist/api/templates/js-binding.js +15 -0
- package/dist/api/templates/js-binding.js.map +1 -1
- package/dist/api/templates/load-wasi-template.js.map +1 -0
- package/dist/api/templates/package.json.d.ts +4 -2
- package/dist/api/templates/package.json.js +28 -4
- package/dist/api/templates/package.json.js.map +1 -1
- package/dist/api/templates/wasi-worker-template.js.map +1 -0
- package/dist/api/universalize.js +2 -2
- package/dist/api/universalize.js.map +1 -1
- package/dist/api/version.js +1 -1
- package/dist/api/version.js.map +1 -1
- package/dist/commands/artifacts.js +2 -2
- package/dist/commands/artifacts.js.map +1 -1
- package/dist/commands/build.js +1 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/new.js +13 -3
- package/dist/commands/new.js.map +1 -1
- package/dist/def/artifacts.js +1 -1
- package/dist/def/artifacts.js.map +1 -1
- package/dist/def/new.d.ts +22 -4
- package/dist/def/new.js +11 -1
- package/dist/def/new.js.map +1 -1
- package/dist/index.cjs +319 -268
- package/dist/utils/cargo.js +1 -1
- package/dist/utils/cargo.js.map +1 -1
- package/dist/utils/config.d.ts +8 -0
- package/dist/utils/config.js +2 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/metadata.js +2 -2
- package/dist/utils/metadata.js.map +1 -1
- package/dist/utils/misc.d.ts +1 -1
- package/dist/utils/misc.js +3 -3
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/target.d.ts +7 -4
- package/dist/utils/target.js +6 -1
- package/dist/utils/target.js.map +1 -1
- package/package.json +2 -2
- package/src/api/build.ts +3 -3
- package/src/api/create-npm-dirs.ts +9 -5
- package/src/api/new.ts +34 -21
- package/src/api/pre-publish.ts +6 -4
- package/src/api/rename.ts +1 -1
- package/src/api/templates/ci-template.ts +104 -110
- package/src/api/templates/ci.yml.ts +14 -2
- package/src/api/templates/js-binding.ts +15 -0
- package/src/api/templates/package.json.ts +51 -5
- package/src/api/universalize.ts +2 -2
- package/src/api/version.ts +1 -1
- package/src/commands/artifacts.ts +2 -2
- package/src/commands/build.ts +1 -1
- package/src/commands/new.ts +13 -3
- package/src/def/artifacts.ts +1 -1
- package/src/def/new.ts +27 -2
- package/src/utils/__tests__/__snapshots__/target.spec.ts.md +7 -0
- package/src/utils/__tests__/__snapshots__/target.spec.ts.snap +0 -0
- package/src/utils/cargo.ts +1 -1
- package/src/utils/config.ts +16 -0
- package/src/utils/metadata.ts +2 -2
- package/src/utils/misc.ts +11 -3
- package/src/utils/target.ts +9 -2
- package/dist/api/load-wasi-template.js.map +0 -1
- package/dist/api/wasi-worker-template.js.map +0 -1
- /package/dist/api/{load-wasi-template.d.ts → templates/load-wasi-template.d.ts} +0 -0
- /package/dist/api/{load-wasi-template.js → templates/load-wasi-template.js} +0 -0
- /package/dist/api/{wasi-worker-template.d.ts → templates/wasi-worker-template.d.ts} +0 -0
- /package/dist/api/{wasi-worker-template.js → templates/wasi-worker-template.js} +0 -0
- /package/src/api/{load-wasi-template.ts → templates/load-wasi-template.ts} +0 -0
- /package/src/api/{wasi-worker-template.ts → templates/wasi-worker-template.ts} +0 -0
package/dist/utils/cargo.js
CHANGED
package/dist/utils/cargo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cargo.js","sourceRoot":"","sources":["../../src/utils/cargo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cargo.js","sourceRoot":"","sources":["../../src/utils/cargo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,GAAW;IAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAA;QAC1C,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE;YAChC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,EAAE;YACzD,KAAK,EAAE,CAAC;SACT,CAAC,CAAA;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;IACxC,IAAI,CAAC;QACH,QAAQ,CAAC,cAAc,GAAG,EAAE,EAAE;YAC5B,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;QACF,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAA;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { Target } from './target.js';
|
|
2
|
+
export type ValueOfConstArray<T> = T[Exclude<keyof T, keyof Array<any>>];
|
|
3
|
+
export declare const SupportedPackageManagers: readonly ["yarn"];
|
|
4
|
+
export declare const SupportedTestFrameworks: readonly ["ava"];
|
|
5
|
+
export type SupportedPackageManager = ValueOfConstArray<typeof SupportedPackageManagers>;
|
|
6
|
+
export type SupportedTestFramework = ValueOfConstArray<typeof SupportedTestFrameworks>;
|
|
2
7
|
export interface UserNapiConfig {
|
|
3
8
|
/**
|
|
4
9
|
* Name of the binary to be generated, default to `index`
|
|
@@ -68,6 +73,9 @@ export interface CommonPackageJsonFields {
|
|
|
68
73
|
exports?: any;
|
|
69
74
|
dependencies?: Record<string, string>;
|
|
70
75
|
devDependencies?: Record<string, string>;
|
|
76
|
+
ava?: {
|
|
77
|
+
timeout?: string;
|
|
78
|
+
};
|
|
71
79
|
}
|
|
72
80
|
export type NapiConfig = Required<Pick<UserNapiConfig, 'binaryName' | 'packageName' | 'npmClient'>> & {
|
|
73
81
|
targets: Target[];
|
package/dist/utils/config.js
CHANGED
|
@@ -2,6 +2,8 @@ import { underline, yellow } from 'colorette';
|
|
|
2
2
|
import { merge, omit } from 'lodash-es';
|
|
3
3
|
import { fileExists, readFileAsync } from './misc.js';
|
|
4
4
|
import { DEFAULT_TARGETS, parseTriple } from './target.js';
|
|
5
|
+
export const SupportedPackageManagers = ['yarn'];
|
|
6
|
+
export const SupportedTestFrameworks = ['ava'];
|
|
5
7
|
export async function readNapiConfig(path, configPath) {
|
|
6
8
|
if (configPath && !(await fileExists(configPath))) {
|
|
7
9
|
throw new Error(`NAPI-RS config not found at ${configPath}`);
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAU,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/metadata.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { execSync } from 'child_process';
|
|
2
|
-
import fs from 'fs';
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
3
|
export function parseMetadata(manifestPath) {
|
|
4
4
|
if (!fs.existsSync(manifestPath)) {
|
|
5
5
|
throw new Error(`No crate found in manifest: ${manifestPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAA;AAqCxB,MAAM,UAAU,aAAa,CAAC,YAAoB;IAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,GAAG,GAAG,kCAAkC,YAAY,+BAA+B,CAAA;IAEzF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC3B,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAA2B,CAAA;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,qDAAqD,GAAG,EAAE,EAC1D;YACE,KAAK,EAAE,CAAC;SACT,CACF,CAAA;IACH,CAAC;AACH,CAAC"}
|
package/dist/utils/misc.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { readFile, writeFile, copyFile, mkdir, unlink, stat, readdir } from 'fs';
|
|
2
|
+
import { readFile, writeFile, copyFile, mkdir, unlink, stat, readdir } from 'node:fs';
|
|
3
3
|
export declare const readFileAsync: typeof readFile.__promisify__;
|
|
4
4
|
export declare const writeFileAsync: typeof writeFile.__promisify__;
|
|
5
5
|
export declare const unlinkAsync: typeof unlink.__promisify__;
|
package/dist/utils/misc.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { readFile, writeFile, copyFile, mkdir, unlink, stat, readdir } from 'fs';
|
|
2
|
-
import { createRequire } from 'module';
|
|
3
|
-
import { promisify } from 'util';
|
|
1
|
+
import { readFile, writeFile, copyFile, mkdir, unlink, stat, readdir, } from 'node:fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
4
|
import { debug } from './log.js';
|
|
5
5
|
const require = createRequire(import.meta.url);
|
|
6
6
|
// NOTE:
|
package/dist/utils/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,KAAK,EACL,MAAM,EACN,IAAI,EACJ,OAAO,GACR,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,QAAQ;AACR,4EAA4E;AAC5E,iDAAiD;AACjD,2DAA2D;AAC3D,6DAA6D;AAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;AAClD,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;AAC1C,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;AAE9C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC;SACjC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACrB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,IAAI,CAAuB,CAAI,EAAE,GAAG,IAAS;IAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAO,CAAC,CAAA;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAA;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;QAChC,OAAM;IACR,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAA"}
|
package/dist/utils/target.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
export type Platform = NodeJS.Platform | 'wasm' | 'wasi';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const UNIVERSAL_TARGETS: {
|
|
4
|
+
readonly 'universal-apple-darwin': readonly ["aarch64-apple-darwin", "x86_64-apple-darwin"];
|
|
5
|
+
};
|
|
6
|
+
export declare const AVAILABLE_TARGETS: readonly ["aarch64-apple-darwin", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-pc-windows-msvc", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-unknown-freebsd", "i686-pc-windows-msvc", "armv7-unknown-linux-gnueabihf", "armv7-linux-androideabi", "universal-apple-darwin", "riscv64gc-unknown-linux-gnu", "wasm32-wasi-preview1-threads"];
|
|
4
7
|
export type TargetTriple = (typeof AVAILABLE_TARGETS)[number];
|
|
5
|
-
export declare const DEFAULT_TARGETS: readonly ["x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"];
|
|
8
|
+
export declare const DEFAULT_TARGETS: readonly ["x86_64-apple-darwin", "aarch64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu"];
|
|
6
9
|
export declare const TARGET_LINKER: Record<string, string>;
|
|
7
|
-
type NodeJSArch = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 'riscv64' | 's390' | 's390x' | 'x32' | 'x64' | 'universal';
|
|
10
|
+
type NodeJSArch = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 'riscv64' | 's390' | 's390x' | 'x32' | 'x64' | 'universal' | 'wasm32';
|
|
8
11
|
export declare const NodeArchToCpu: Record<string, string>;
|
|
9
12
|
export declare const UniArchsByPlatform: Partial<Record<Platform, NodeJSArch[]>>;
|
|
10
13
|
export interface Target {
|
|
11
14
|
triple: string;
|
|
12
15
|
platformArchABI: string;
|
|
13
16
|
platform: Platform;
|
|
14
|
-
arch: NodeJSArch
|
|
17
|
+
arch: NodeJSArch;
|
|
15
18
|
abi: string | null;
|
|
16
19
|
}
|
|
17
20
|
/**
|
package/dist/utils/target.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
|
+
export const UNIVERSAL_TARGETS = {
|
|
3
|
+
'universal-apple-darwin': ['aarch64-apple-darwin', 'x86_64-apple-darwin'],
|
|
4
|
+
};
|
|
2
5
|
export const AVAILABLE_TARGETS = [
|
|
3
6
|
'aarch64-apple-darwin',
|
|
4
7
|
'aarch64-linux-android',
|
|
@@ -15,9 +18,11 @@ export const AVAILABLE_TARGETS = [
|
|
|
15
18
|
'armv7-linux-androideabi',
|
|
16
19
|
'universal-apple-darwin',
|
|
17
20
|
'riscv64gc-unknown-linux-gnu',
|
|
21
|
+
'wasm32-wasi-preview1-threads',
|
|
18
22
|
];
|
|
19
23
|
export const DEFAULT_TARGETS = [
|
|
20
24
|
'x86_64-apple-darwin',
|
|
25
|
+
'aarch64-apple-darwin',
|
|
21
26
|
'x86_64-pc-windows-msvc',
|
|
22
27
|
'x86_64-unknown-linux-gnu',
|
|
23
28
|
];
|
|
@@ -62,7 +67,7 @@ export function parseTriple(rawTriple) {
|
|
|
62
67
|
if (rawTriple === 'wasm32-wasi-preview1-threads') {
|
|
63
68
|
return {
|
|
64
69
|
triple: rawTriple,
|
|
65
|
-
platformArchABI:
|
|
70
|
+
platformArchABI: 'wasm32-wasi',
|
|
66
71
|
platform: 'wasi',
|
|
67
72
|
arch: 'wasm32',
|
|
68
73
|
abi: 'wasi',
|
package/dist/utils/target.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAI7C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sBAAsB;IACtB,uBAAuB;IACvB,2BAA2B;IAC3B,4BAA4B;IAC5B,yBAAyB;IACzB,qBAAqB;IACrB,wBAAwB;IACxB,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,sBAAsB;IACtB,+BAA+B;IAC/B,yBAAyB;IACzB,wBAAwB;IACxB,6BAA6B;
|
|
1
|
+
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/utils/target.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@napi-rs/cli",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.25",
|
|
4
4
|
"description": "Cli tools for napi-rs",
|
|
5
5
|
"author": "LongYinan <lynweklm@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/napi-rs/napi-rs",
|
|
@@ -129,5 +129,5 @@
|
|
|
129
129
|
"**/__tests__/**/*.spec.ts"
|
|
130
130
|
]
|
|
131
131
|
},
|
|
132
|
-
"gitHead": "
|
|
132
|
+
"gitHead": "958ba74afffd321f92fe1d4c5af70fe376ade2e7"
|
|
133
133
|
}
|
package/src/api/build.ts
CHANGED
|
@@ -31,9 +31,9 @@ import {
|
|
|
31
31
|
writeFileAsync,
|
|
32
32
|
} from '../utils/index.js'
|
|
33
33
|
|
|
34
|
-
import { createWasiBinding } from './load-wasi-template.js'
|
|
35
34
|
import { createCjsBinding } from './templates/index.js'
|
|
36
|
-
import {
|
|
35
|
+
import { createWasiBinding } from './templates/load-wasi-template.js'
|
|
36
|
+
import { WASI_WORKER_TEMPLATE } from './templates/wasi-worker-template.js'
|
|
37
37
|
|
|
38
38
|
const debug = debugFactory('build')
|
|
39
39
|
const require = createRequire(import.meta.url)
|
|
@@ -704,7 +704,7 @@ class Builder {
|
|
|
704
704
|
destName += `.${this.target.platformArchABI}`
|
|
705
705
|
}
|
|
706
706
|
if (srcName.endsWith('.wasm')) {
|
|
707
|
-
destName += '.
|
|
707
|
+
destName += '.wasm'
|
|
708
708
|
} else {
|
|
709
709
|
destName += '.node'
|
|
710
710
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { join, resolve } from 'path'
|
|
1
|
+
import { join, resolve } from 'node:path'
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
applyDefaultCreateNpmDirsOptions,
|
|
@@ -55,11 +55,13 @@ export async function createNpmDirs(userOptions: CreateNpmDirsOptions) {
|
|
|
55
55
|
const targetDir = join(npmPath, `${target.platformArchABI}`)
|
|
56
56
|
await mkdirAsync(targetDir)
|
|
57
57
|
|
|
58
|
-
const binaryFileName =
|
|
58
|
+
const binaryFileName =
|
|
59
|
+
target.arch === 'wasm32'
|
|
60
|
+
? `${binaryName}.${target.platformArchABI}.wasm`
|
|
61
|
+
: `${binaryName}.${target.platformArchABI}.node`
|
|
59
62
|
const scopedPackageJson = {
|
|
60
63
|
name: `${packageName}-${target.platformArchABI}`,
|
|
61
64
|
version: packageJson.version,
|
|
62
|
-
os: [target.platform],
|
|
63
65
|
cpu: target.arch !== 'universal' ? [target.arch] : undefined,
|
|
64
66
|
main: binaryFileName,
|
|
65
67
|
files: [binaryFileName],
|
|
@@ -77,9 +79,11 @@ export async function createNpmDirs(userOptions: CreateNpmDirsOptions) {
|
|
|
77
79
|
'bugs',
|
|
78
80
|
),
|
|
79
81
|
}
|
|
82
|
+
if (target.arch !== 'wasm32') {
|
|
83
|
+
// @ts-expect-error
|
|
84
|
+
scopedPackageJson.os = [target.platform]
|
|
85
|
+
}
|
|
80
86
|
|
|
81
|
-
// Only works with yarn 3.1+
|
|
82
|
-
// https://github.com/yarnpkg/berry/pull/3981
|
|
83
87
|
if (target.abi === 'gnu') {
|
|
84
88
|
// @ts-expect-error
|
|
85
89
|
scopedPackageJson.libc = ['glibc']
|
package/src/api/new.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import path from 'path'
|
|
1
|
+
import path from 'node:path'
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
applyDefaultNewOptions,
|
|
@@ -12,7 +12,9 @@ import {
|
|
|
12
12
|
mkdirAsync,
|
|
13
13
|
readdirAsync,
|
|
14
14
|
statAsync,
|
|
15
|
+
type SupportedTestFramework,
|
|
15
16
|
writeFileAsync,
|
|
17
|
+
SupportedPackageManager,
|
|
16
18
|
} from '../utils/index.js'
|
|
17
19
|
import { napiEngineRequirement } from '../utils/version.js'
|
|
18
20
|
|
|
@@ -37,6 +39,9 @@ type NewOptions = Required<RawNewOptions>
|
|
|
37
39
|
|
|
38
40
|
function processOptions(options: RawNewOptions) {
|
|
39
41
|
debug('Processing options...')
|
|
42
|
+
if (!options.path) {
|
|
43
|
+
throw new Error('Please provide the path as the argument')
|
|
44
|
+
}
|
|
40
45
|
options.path = path.resolve(process.cwd(), options.path)
|
|
41
46
|
debug(`Resolved target path to: ${options.path}`)
|
|
42
47
|
|
|
@@ -69,7 +74,7 @@ export async function newProject(userOptions: RawNewOptions) {
|
|
|
69
74
|
debug('Targets to be enabled:')
|
|
70
75
|
debug(options.targets)
|
|
71
76
|
|
|
72
|
-
const outputs = generateFiles(options)
|
|
77
|
+
const outputs = await generateFiles(options)
|
|
73
78
|
|
|
74
79
|
await ensurePath(options.path, options.dryRun)
|
|
75
80
|
|
|
@@ -110,30 +115,34 @@ async function ensurePath(path: string, dryRun = false) {
|
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
117
|
|
|
113
|
-
function generateFiles(options: NewOptions): Output[] {
|
|
118
|
+
async function generateFiles(options: NewOptions): Promise<Output[]> {
|
|
119
|
+
const packageJson = await generatePackageJson(options)
|
|
114
120
|
return [
|
|
115
121
|
generateCargoToml,
|
|
116
122
|
generateLibRs,
|
|
117
123
|
generateBuildRs,
|
|
118
|
-
generatePackageJson,
|
|
119
124
|
generateGithubWorkflow,
|
|
120
125
|
generateIgnoreFiles,
|
|
121
|
-
]
|
|
122
|
-
|
|
126
|
+
]
|
|
127
|
+
.flatMap((generator) => {
|
|
128
|
+
const output = generator(options)
|
|
123
129
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
130
|
+
if (!output) {
|
|
131
|
+
return []
|
|
132
|
+
}
|
|
127
133
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
134
|
+
if (Array.isArray(output)) {
|
|
135
|
+
return output.map((o) => ({
|
|
136
|
+
...o,
|
|
137
|
+
target: path.join(options.path, o.target),
|
|
138
|
+
}))
|
|
139
|
+
} else {
|
|
140
|
+
return [{ ...output, target: path.join(options.path, output.target) }]
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
.concat([
|
|
144
|
+
{ ...packageJson, target: path.join(options.path, packageJson.target) },
|
|
145
|
+
])
|
|
137
146
|
}
|
|
138
147
|
|
|
139
148
|
function generateCargoToml(options: NewOptions): Output {
|
|
@@ -162,16 +171,17 @@ function generateBuildRs(_options: NewOptions): Output {
|
|
|
162
171
|
}
|
|
163
172
|
}
|
|
164
173
|
|
|
165
|
-
function generatePackageJson(options: NewOptions): Output {
|
|
174
|
+
async function generatePackageJson(options: NewOptions): Promise<Output> {
|
|
166
175
|
return {
|
|
167
176
|
target: './package.json',
|
|
168
|
-
content: createPackageJson({
|
|
177
|
+
content: await createPackageJson({
|
|
169
178
|
name: options.name,
|
|
170
179
|
binaryName: getBinaryName(options.name),
|
|
171
180
|
targets: options.targets,
|
|
172
181
|
license: options.license,
|
|
173
182
|
engineRequirement: napiEngineRequirement(options.minNodeApiVersion),
|
|
174
183
|
cliVersion: CLI_VERSION,
|
|
184
|
+
testFramework: options.testFramework as SupportedTestFramework,
|
|
175
185
|
}),
|
|
176
186
|
}
|
|
177
187
|
}
|
|
@@ -183,7 +193,10 @@ function generateGithubWorkflow(options: NewOptions): Output | null {
|
|
|
183
193
|
|
|
184
194
|
return {
|
|
185
195
|
target: './.github/workflows/ci.yml',
|
|
186
|
-
content: createGithubActionsCIYml(
|
|
196
|
+
content: createGithubActionsCIYml(
|
|
197
|
+
options.targets,
|
|
198
|
+
options.packageManager as SupportedPackageManager,
|
|
199
|
+
),
|
|
187
200
|
}
|
|
188
201
|
}
|
|
189
202
|
|
package/src/api/pre-publish.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { execSync } from 'child_process'
|
|
2
|
-
import { existsSync, statSync } from 'fs'
|
|
3
|
-
import { join, resolve } from 'path'
|
|
1
|
+
import { execSync } from 'node:child_process'
|
|
2
|
+
import { existsSync, statSync } from 'node:fs'
|
|
3
|
+
import { join, resolve } from 'node:path'
|
|
4
4
|
|
|
5
5
|
import { Octokit } from '@octokit/rest'
|
|
6
6
|
|
|
@@ -153,7 +153,9 @@ export async function prePublish(userOptions: PrePublishOptions) {
|
|
|
153
153
|
options.npmDir,
|
|
154
154
|
`${target.platformArchABI}`,
|
|
155
155
|
)
|
|
156
|
-
const
|
|
156
|
+
const ext =
|
|
157
|
+
target.platform === 'wasi' || target.platform === 'wasm' ? 'wasm' : 'node'
|
|
158
|
+
const filename = `${binaryName}.${target.platformArchABI}.${ext}`
|
|
157
159
|
const dstPath = join(pkgDir, filename)
|
|
158
160
|
|
|
159
161
|
if (!options.dryRun) {
|
package/src/api/rename.ts
CHANGED