@vizejs/native 0.0.1-alpha.7

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.
Files changed (3) hide show
  1. package/index.d.ts +99 -0
  2. package/index.js +320 -0
  3. package/package.json +59 -0
package/index.d.ts ADDED
@@ -0,0 +1,99 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ /* auto-generated by NAPI-RS */
5
+
6
+ /** Compile Vue template to VDom render function */
7
+ export declare function compile(template: string, options?: CompilerOptions | undefined | null): CompileResult
8
+ /** Compile Vue template to Vapor mode */
9
+ export declare function compileVapor(template: string, options?: CompilerOptions | undefined | null): CompileResult
10
+ /** Parse template to AST only */
11
+ export declare function parseTemplate(template: string, options?: CompilerOptions | undefined | null): any
12
+ /** SFC parse options for NAPI */
13
+ export interface SfcParseOptionsNapi {
14
+ filename?: string
15
+ }
16
+ /** SFC compile options for NAPI */
17
+ export interface SfcCompileOptionsNapi {
18
+ filename?: string
19
+ sourceMap?: boolean
20
+ ssr?: boolean
21
+ }
22
+ /** SFC compile result for NAPI */
23
+ export interface SfcCompileResultNapi {
24
+ /** Generated JavaScript code */
25
+ code: string
26
+ /** Generated CSS (if any) */
27
+ css?: string
28
+ /** Compilation errors */
29
+ errors: Array<string>
30
+ /** Compilation warnings */
31
+ warnings: Array<string>
32
+ }
33
+ /** Parse SFC (.vue file) - returns lightweight result for speed */
34
+ export declare function parseSfc(source: string, options?: SfcParseOptionsNapi | undefined | null): object
35
+ /** Compile SFC (.vue file) to JavaScript - main use case */
36
+ export declare function compileSfc(source: string, options?: SfcCompileOptionsNapi | undefined | null): SfcCompileResultNapi
37
+ /** Batch compile options for NAPI */
38
+ export interface BatchCompileOptionsNapi {
39
+ ssr?: boolean
40
+ threads?: number
41
+ }
42
+ /** Batch compile result for NAPI */
43
+ export interface BatchCompileResultNapi {
44
+ /** Number of files compiled successfully */
45
+ success: number
46
+ /** Number of files that failed */
47
+ failed: number
48
+ /** Total input bytes */
49
+ inputBytes: number
50
+ /** Total output bytes */
51
+ outputBytes: number
52
+ /** Compilation time in milliseconds */
53
+ timeMs: number
54
+ }
55
+ /** Batch compile SFC files matching a glob pattern (native multithreading) */
56
+ export declare function compileSfcBatch(pattern: string, options?: BatchCompileOptionsNapi | undefined | null): BatchCompileResultNapi
57
+ /** Compiler options for bindings */
58
+ export interface CompilerOptions {
59
+ /** Output mode: "module" or "function" */
60
+ mode?: string
61
+ /** Whether to prefix identifiers */
62
+ prefixIdentifiers?: boolean
63
+ /** Whether to hoist static nodes */
64
+ hoistStatic?: boolean
65
+ /** Whether to cache event handlers */
66
+ cacheHandlers?: boolean
67
+ /** Scope ID for scoped CSS */
68
+ scopeId?: string
69
+ /** Whether in SSR mode */
70
+ ssr?: boolean
71
+ /** Whether to generate source map */
72
+ sourceMap?: boolean
73
+ /** Filename for source map */
74
+ filename?: string
75
+ /** Output mode: "vdom" or "vapor" */
76
+ outputMode?: string
77
+ /** Whether the template contains TypeScript */
78
+ isTs?: boolean
79
+ /**
80
+ * Script extension handling: "preserve" (keep TypeScript) or "downcompile" (transpile to JS)
81
+ * Defaults to "downcompile"
82
+ */
83
+ scriptExt?: string
84
+ }
85
+ /** Compile result */
86
+ export interface CompileResult {
87
+ /** Generated code */
88
+ code: string
89
+ /** Preamble code (imports) */
90
+ preamble: string
91
+ /** AST (serialized as JSON) */
92
+ ast: any
93
+ /** Source map */
94
+ map?: any
95
+ /** Used helpers */
96
+ helpers: Array<string>
97
+ /** Template strings for Vapor mode static parts */
98
+ templates?: Array<string>
99
+ }
package/index.js ADDED
@@ -0,0 +1,320 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /* prettier-ignore */
4
+
5
+ /* auto-generated by NAPI-RS */
6
+
7
+ const { existsSync, readFileSync } = require('fs')
8
+ const { join } = require('path')
9
+
10
+ const { platform, arch } = process
11
+
12
+ let nativeBinding = null
13
+ let localFileExisted = false
14
+ let loadError = null
15
+
16
+ function isMusl() {
17
+ // For Node 10
18
+ if (!process.report || typeof process.report.getReport !== 'function') {
19
+ try {
20
+ const lddPath = require('child_process').execSync('which ldd').toString().trim()
21
+ return readFileSync(lddPath, 'utf8').includes('musl')
22
+ } catch (e) {
23
+ return true
24
+ }
25
+ } else {
26
+ const { glibcVersionRuntime } = process.report.getReport().header
27
+ return !glibcVersionRuntime
28
+ }
29
+ }
30
+
31
+ switch (platform) {
32
+ case 'android':
33
+ switch (arch) {
34
+ case 'arm64':
35
+ localFileExisted = existsSync(join(__dirname, 'vize-bindings.android-arm64.node'))
36
+ try {
37
+ if (localFileExisted) {
38
+ nativeBinding = require('./vize-bindings.android-arm64.node')
39
+ } else {
40
+ nativeBinding = require('@vizejs/native-android-arm64')
41
+ }
42
+ } catch (e) {
43
+ loadError = e
44
+ }
45
+ break
46
+ case 'arm':
47
+ localFileExisted = existsSync(join(__dirname, 'vize-bindings.android-arm-eabi.node'))
48
+ try {
49
+ if (localFileExisted) {
50
+ nativeBinding = require('./vize-bindings.android-arm-eabi.node')
51
+ } else {
52
+ nativeBinding = require('@vizejs/native-android-arm-eabi')
53
+ }
54
+ } catch (e) {
55
+ loadError = e
56
+ }
57
+ break
58
+ default:
59
+ throw new Error(`Unsupported architecture on Android ${arch}`)
60
+ }
61
+ break
62
+ case 'win32':
63
+ switch (arch) {
64
+ case 'x64':
65
+ localFileExisted = existsSync(
66
+ join(__dirname, 'vize-bindings.win32-x64-msvc.node')
67
+ )
68
+ try {
69
+ if (localFileExisted) {
70
+ nativeBinding = require('./vize-bindings.win32-x64-msvc.node')
71
+ } else {
72
+ nativeBinding = require('@vizejs/native-win32-x64-msvc')
73
+ }
74
+ } catch (e) {
75
+ loadError = e
76
+ }
77
+ break
78
+ case 'ia32':
79
+ localFileExisted = existsSync(
80
+ join(__dirname, 'vize-bindings.win32-ia32-msvc.node')
81
+ )
82
+ try {
83
+ if (localFileExisted) {
84
+ nativeBinding = require('./vize-bindings.win32-ia32-msvc.node')
85
+ } else {
86
+ nativeBinding = require('@vizejs/native-win32-ia32-msvc')
87
+ }
88
+ } catch (e) {
89
+ loadError = e
90
+ }
91
+ break
92
+ case 'arm64':
93
+ localFileExisted = existsSync(
94
+ join(__dirname, 'vize-bindings.win32-arm64-msvc.node')
95
+ )
96
+ try {
97
+ if (localFileExisted) {
98
+ nativeBinding = require('./vize-bindings.win32-arm64-msvc.node')
99
+ } else {
100
+ nativeBinding = require('@vizejs/native-win32-arm64-msvc')
101
+ }
102
+ } catch (e) {
103
+ loadError = e
104
+ }
105
+ break
106
+ default:
107
+ throw new Error(`Unsupported architecture on Windows: ${arch}`)
108
+ }
109
+ break
110
+ case 'darwin':
111
+ localFileExisted = existsSync(join(__dirname, 'vize-bindings.darwin-universal.node'))
112
+ try {
113
+ if (localFileExisted) {
114
+ nativeBinding = require('./vize-bindings.darwin-universal.node')
115
+ } else {
116
+ nativeBinding = require('@vizejs/native-darwin-universal')
117
+ }
118
+ break
119
+ } catch {}
120
+ switch (arch) {
121
+ case 'x64':
122
+ localFileExisted = existsSync(join(__dirname, 'vize-bindings.darwin-x64.node'))
123
+ try {
124
+ if (localFileExisted) {
125
+ nativeBinding = require('./vize-bindings.darwin-x64.node')
126
+ } else {
127
+ nativeBinding = require('@vizejs/native-darwin-x64')
128
+ }
129
+ } catch (e) {
130
+ loadError = e
131
+ }
132
+ break
133
+ case 'arm64':
134
+ localFileExisted = existsSync(
135
+ join(__dirname, 'vize-bindings.darwin-arm64.node')
136
+ )
137
+ try {
138
+ if (localFileExisted) {
139
+ nativeBinding = require('./vize-bindings.darwin-arm64.node')
140
+ } else {
141
+ nativeBinding = require('@vizejs/native-darwin-arm64')
142
+ }
143
+ } catch (e) {
144
+ loadError = e
145
+ }
146
+ break
147
+ default:
148
+ throw new Error(`Unsupported architecture on macOS: ${arch}`)
149
+ }
150
+ break
151
+ case 'freebsd':
152
+ if (arch !== 'x64') {
153
+ throw new Error(`Unsupported architecture on FreeBSD: ${arch}`)
154
+ }
155
+ localFileExisted = existsSync(join(__dirname, 'vize-bindings.freebsd-x64.node'))
156
+ try {
157
+ if (localFileExisted) {
158
+ nativeBinding = require('./vize-bindings.freebsd-x64.node')
159
+ } else {
160
+ nativeBinding = require('@vizejs/native-freebsd-x64')
161
+ }
162
+ } catch (e) {
163
+ loadError = e
164
+ }
165
+ break
166
+ case 'linux':
167
+ switch (arch) {
168
+ case 'x64':
169
+ if (isMusl()) {
170
+ localFileExisted = existsSync(
171
+ join(__dirname, 'vize-bindings.linux-x64-musl.node')
172
+ )
173
+ try {
174
+ if (localFileExisted) {
175
+ nativeBinding = require('./vize-bindings.linux-x64-musl.node')
176
+ } else {
177
+ nativeBinding = require('@vizejs/native-linux-x64-musl')
178
+ }
179
+ } catch (e) {
180
+ loadError = e
181
+ }
182
+ } else {
183
+ localFileExisted = existsSync(
184
+ join(__dirname, 'vize-bindings.linux-x64-gnu.node')
185
+ )
186
+ try {
187
+ if (localFileExisted) {
188
+ nativeBinding = require('./vize-bindings.linux-x64-gnu.node')
189
+ } else {
190
+ nativeBinding = require('@vizejs/native-linux-x64-gnu')
191
+ }
192
+ } catch (e) {
193
+ loadError = e
194
+ }
195
+ }
196
+ break
197
+ case 'arm64':
198
+ if (isMusl()) {
199
+ localFileExisted = existsSync(
200
+ join(__dirname, 'vize-bindings.linux-arm64-musl.node')
201
+ )
202
+ try {
203
+ if (localFileExisted) {
204
+ nativeBinding = require('./vize-bindings.linux-arm64-musl.node')
205
+ } else {
206
+ nativeBinding = require('@vizejs/native-linux-arm64-musl')
207
+ }
208
+ } catch (e) {
209
+ loadError = e
210
+ }
211
+ } else {
212
+ localFileExisted = existsSync(
213
+ join(__dirname, 'vize-bindings.linux-arm64-gnu.node')
214
+ )
215
+ try {
216
+ if (localFileExisted) {
217
+ nativeBinding = require('./vize-bindings.linux-arm64-gnu.node')
218
+ } else {
219
+ nativeBinding = require('@vizejs/native-linux-arm64-gnu')
220
+ }
221
+ } catch (e) {
222
+ loadError = e
223
+ }
224
+ }
225
+ break
226
+ case 'arm':
227
+ if (isMusl()) {
228
+ localFileExisted = existsSync(
229
+ join(__dirname, 'vize-bindings.linux-arm-musleabihf.node')
230
+ )
231
+ try {
232
+ if (localFileExisted) {
233
+ nativeBinding = require('./vize-bindings.linux-arm-musleabihf.node')
234
+ } else {
235
+ nativeBinding = require('@vizejs/native-linux-arm-musleabihf')
236
+ }
237
+ } catch (e) {
238
+ loadError = e
239
+ }
240
+ } else {
241
+ localFileExisted = existsSync(
242
+ join(__dirname, 'vize-bindings.linux-arm-gnueabihf.node')
243
+ )
244
+ try {
245
+ if (localFileExisted) {
246
+ nativeBinding = require('./vize-bindings.linux-arm-gnueabihf.node')
247
+ } else {
248
+ nativeBinding = require('@vizejs/native-linux-arm-gnueabihf')
249
+ }
250
+ } catch (e) {
251
+ loadError = e
252
+ }
253
+ }
254
+ break
255
+ case 'riscv64':
256
+ if (isMusl()) {
257
+ localFileExisted = existsSync(
258
+ join(__dirname, 'vize-bindings.linux-riscv64-musl.node')
259
+ )
260
+ try {
261
+ if (localFileExisted) {
262
+ nativeBinding = require('./vize-bindings.linux-riscv64-musl.node')
263
+ } else {
264
+ nativeBinding = require('@vizejs/native-linux-riscv64-musl')
265
+ }
266
+ } catch (e) {
267
+ loadError = e
268
+ }
269
+ } else {
270
+ localFileExisted = existsSync(
271
+ join(__dirname, 'vize-bindings.linux-riscv64-gnu.node')
272
+ )
273
+ try {
274
+ if (localFileExisted) {
275
+ nativeBinding = require('./vize-bindings.linux-riscv64-gnu.node')
276
+ } else {
277
+ nativeBinding = require('@vizejs/native-linux-riscv64-gnu')
278
+ }
279
+ } catch (e) {
280
+ loadError = e
281
+ }
282
+ }
283
+ break
284
+ case 's390x':
285
+ localFileExisted = existsSync(
286
+ join(__dirname, 'vize-bindings.linux-s390x-gnu.node')
287
+ )
288
+ try {
289
+ if (localFileExisted) {
290
+ nativeBinding = require('./vize-bindings.linux-s390x-gnu.node')
291
+ } else {
292
+ nativeBinding = require('@vizejs/native-linux-s390x-gnu')
293
+ }
294
+ } catch (e) {
295
+ loadError = e
296
+ }
297
+ break
298
+ default:
299
+ throw new Error(`Unsupported architecture on Linux: ${arch}`)
300
+ }
301
+ break
302
+ default:
303
+ throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`)
304
+ }
305
+
306
+ if (!nativeBinding) {
307
+ if (loadError) {
308
+ throw loadError
309
+ }
310
+ throw new Error(`Failed to load native binding`)
311
+ }
312
+
313
+ const { compile, compileVapor, parseTemplate, parseSfc, compileSfc, compileSfcBatch } = nativeBinding
314
+
315
+ module.exports.compile = compile
316
+ module.exports.compileVapor = compileVapor
317
+ module.exports.parseTemplate = parseTemplate
318
+ module.exports.parseSfc = parseSfc
319
+ module.exports.compileSfc = compileSfc
320
+ module.exports.compileSfcBatch = compileSfcBatch
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@vizejs/native",
3
+ "version": "0.0.1-alpha.7",
4
+ "description": "High-performance Vue.js compiler - Native bindings",
5
+ "publishConfig": {
6
+ "provenance": false,
7
+ "access": "public"
8
+ },
9
+ "main": "index.js",
10
+ "types": "index.d.ts",
11
+ "napi": {
12
+ "name": "vize-bindings",
13
+ "triples": {
14
+ "defaults": true,
15
+ "additional": [
16
+ "x86_64-unknown-linux-musl",
17
+ "aarch64-unknown-linux-gnu",
18
+ "aarch64-unknown-linux-musl",
19
+ "aarch64-apple-darwin",
20
+ "aarch64-pc-windows-msvc"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "index.js",
26
+ "index.d.ts"
27
+ ],
28
+ "scripts": {
29
+ "build": "napi build --platform --release --cargo-cwd=../../crates/vize_vitrine --cargo-name=vize_bindings",
30
+ "build:debug": "napi build --platform --cargo-cwd=../../crates/vize_vitrine --cargo-name=vize_bindings",
31
+ "prepublishOnly": "napi prepublish -t npm"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/ubugeeei/vize"
36
+ },
37
+ "keywords": [
38
+ "vue",
39
+ "compiler",
40
+ "rust",
41
+ "native",
42
+ "napi",
43
+ "vize"
44
+ ],
45
+ "license": "MIT",
46
+ "devDependencies": {
47
+ "@napi-rs/cli": "^2.18.0"
48
+ },
49
+ "optionalDependencies": {
50
+ "@vizejs/native-win32-x64-msvc": "0.0.1-alpha.7",
51
+ "@vizejs/native-darwin-x64": "0.0.1-alpha.7",
52
+ "@vizejs/native-linux-x64-gnu": "0.0.1-alpha.7",
53
+ "@vizejs/native-linux-x64-musl": "0.0.1-alpha.7",
54
+ "@vizejs/native-linux-arm64-gnu": "0.0.1-alpha.7",
55
+ "@vizejs/native-linux-arm64-musl": "0.0.1-alpha.7",
56
+ "@vizejs/native-darwin-arm64": "0.0.1-alpha.7",
57
+ "@vizejs/native-win32-arm64-msvc": "0.0.1-alpha.7"
58
+ }
59
+ }