Hoist oxide/crates to just crates (#13333)

* move `oxide/crates` to `crates`

* ignore `target/` folder

* ensure pnpm points to `crates` instead of `oxide/crates`

* ensure all paths point to `crates` instead of `oxide/crates`

* update `oxide/crates` -> `crates` path in workflows

* use correct path in .prettierignore

* rename `crates/core` to `crates/oxide`

* remove oxide folder

* fix test script to run `cargo test` directly
This commit is contained in:
Robin Malfait 2024-03-23 14:00:48 +01:00 • committed by GitHub
parent fee039d82f
commit 1c48683a23
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
72 changed files with 81 additions and 102 deletions

View file

@ -0,0 +1,7 @@
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-musl-gcc"
rustflags = ["-C", "target-feature=-crt-static"]
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"

201
crates/node/.gitignore vendored Normal file
View file

@ -0,0 +1,201 @@
# Created by https://www.toptal.com/developers/gitignore/api/node
# Edit at https://www.toptal.com/developers/gitignore?templates=node
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# End of https://www.toptal.com/developers/gitignore/api/node
# Created by https://www.toptal.com/developers/gitignore/api/macos
# Edit at https://www.toptal.com/developers/gitignore?templates=macos
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### macOS Patch ###
# iCloud generated files
*.icloud
# End of https://www.toptal.com/developers/gitignore/api/macos
# Created by https://www.toptal.com/developers/gitignore/api/windows
# Edit at https://www.toptal.com/developers/gitignore?templates=windows
### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.toptal.com/developers/gitignore/api/windows
#Added by cargo
/target
Cargo.lock
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
*.node
# Generated
index.d.ts
index.js

13
crates/node/.npmignore Normal file
View file

@ -0,0 +1,13 @@
target
Cargo.lock
.cargo
.github
npm
.eslintrc
.prettierignore
rustfmt.toml
yarn.lock
*.node
.yarn
__test__
renovate.json

18
crates/node/Cargo.toml Normal file
View file

@ -0,0 +1,18 @@
[package]
edition = "2021"
name = "tailwind-oxide"
version = "0.0.0"
[lib]
crate-type = ["cdylib"]
[dependencies]
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
napi = { version = "2.13.1", default-features = false, features = ["napi4"] }
napi-derive = "2.13.0"
tailwindcss-oxide = { path = "../oxide" }
rayon = "1.5.3"
[build-dependencies]
napi-build = "2.0.1"

5
crates/node/build.rs Normal file
View file

@ -0,0 +1,5 @@
extern crate napi_build;
fn main() {
napi_build::setup();
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-android-arm-eabi`
This is the **armv7-linux-android-eabi** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-android-arm-eabi",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/android-arm-eabi"
},
"os": [
"android"
],
"cpu": [
"arm"
],
"main": "tailwindcss-oxide.android-arm-eabi.node",
"files": [
"tailwindcss-oxide.android-arm-eabi.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-android-arm64`
This is the **aarch64-linux-android** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-android-arm64",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/android-arm64"
},
"os": [
"android"
],
"cpu": [
"arm64"
],
"main": "tailwindcss-oxide.android-arm64.node",
"files": [
"tailwindcss-oxide.android-arm64.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-darwin-arm64`
This is the **aarch64-apple-darwin** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-darwin-arm64",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/darwin-arm64"
},
"os": [
"darwin"
],
"cpu": [
"arm64"
],
"main": "tailwindcss-oxide.darwin-arm64.node",
"files": [
"tailwindcss-oxide.darwin-arm64.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-darwin-x64`
This is the **x86_64-apple-darwin** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-darwin-x64",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/darwin-x64"
},
"os": [
"darwin"
],
"cpu": [
"x64"
],
"main": "tailwindcss-oxide.darwin-x64.node",
"files": [
"tailwindcss-oxide.darwin-x64.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-freebsd-x64`
This is the **x86_64-unknown-freebsd** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-freebsd-x64",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/freebsd-x64"
},
"os": [
"freebsd"
],
"cpu": [
"x64"
],
"main": "tailwindcss-oxide.freebsd-x64.node",
"files": [
"tailwindcss-oxide.freebsd-x64.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-linux-arm-gnueabihf`
This is the **armv7-unknown-linux-gnueabihf** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-linux-arm-gnueabihf",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/linux-arm-gnueabihf"
},
"os": [
"linux"
],
"cpu": [
"arm"
],
"main": "tailwindcss-oxide.linux-arm-gnueabihf.node",
"files": [
"tailwindcss-oxide.linux-arm-gnueabihf.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-linux-arm64-gnu`
This is the **aarch64-unknown-linux-gnu** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,30 @@
{
"name": "@tailwindcss/oxide-linux-arm64-gnu",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/linux-arm64-gnu"
},
"os": [
"linux"
],
"cpu": [
"arm64"
],
"main": "tailwindcss-oxide.linux-arm64-gnu.node",
"files": [
"tailwindcss-oxide.linux-arm64-gnu.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
},
"libc": [
"glibc"
]
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-linux-arm64-musl`
This is the **aarch64-unknown-linux-musl** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,30 @@
{
"name": "@tailwindcss/oxide-linux-arm64-musl",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/linux-arm64-musl"
},
"os": [
"linux"
],
"cpu": [
"arm64"
],
"main": "tailwindcss-oxide.linux-arm64-musl.node",
"files": [
"tailwindcss-oxide.linux-arm64-musl.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
},
"libc": [
"musl"
]
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-linux-x64-gnu`
This is the **x86_64-unknown-linux-gnu** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,30 @@
{
"name": "@tailwindcss/oxide-linux-x64-gnu",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/linux-x64-gnu"
},
"os": [
"linux"
],
"cpu": [
"x64"
],
"main": "tailwindcss-oxide.linux-x64-gnu.node",
"files": [
"tailwindcss-oxide.linux-x64-gnu.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
},
"libc": [
"glibc"
]
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-linux-x64-musl`
This is the **x86_64-unknown-linux-musl** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,30 @@
{
"name": "@tailwindcss/oxide-linux-x64-musl",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/linux-x64-musl"
},
"os": [
"linux"
],
"cpu": [
"x64"
],
"main": "tailwindcss-oxide.linux-x64-musl.node",
"files": [
"tailwindcss-oxide.linux-x64-musl.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
},
"libc": [
"musl"
]
}

View file

@ -0,0 +1,3 @@
# `@tailwindcss/oxide-win32-x64-msvc`
This is the **x86_64-pc-windows-msvc** binary for `@tailwindcss/oxide`

View file

@ -0,0 +1,27 @@
{
"name": "@tailwindcss/oxide-win32-x64-msvc",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node/npm/win32-x64-msvc"
},
"os": [
"win32"
],
"cpu": [
"x64"
],
"main": "tailwindcss-oxide.win32-x64-msvc.node",
"files": [
"tailwindcss-oxide.win32-x64-msvc.node"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

61
crates/node/package.json Normal file
View file

@ -0,0 +1,61 @@
{
"name": "@tailwindcss/oxide",
"version": "4.0.0-alpha.10",
"repository": {
"type": "git",
"url": "git+https://github.com/tailwindlabs/tailwindcss.git",
"directory": "crates/node"
},
"main": "index.js",
"types": "index.d.ts",
"napi": {
"name": "tailwindcss-oxide",
"triples": {
"additional": [
"armv7-linux-androideabi",
"aarch64-linux-android",
"aarch64-apple-darwin",
"aarch64-unknown-linux-gnu",
"aarch64-unknown-linux-musl",
"armv7-unknown-linux-gnueabihf",
"x86_64-unknown-linux-musl",
"x86_64-unknown-freebsd",
"i686-pc-windows-msvc"
]
}
},
"license": "MIT",
"devDependencies": {
"@napi-rs/cli": "^2.17.0"
},
"engines": {
"node": ">= 10"
},
"files": [
"index.js",
"index.d.ts"
],
"publishConfig": {
"provenance": true,
"access": "public"
},
"scripts": {
"artifacts": "npx napi artifacts",
"build": "npx napi build --platform --release --no-const-enum",
"dev": "cargo watch --quiet --shell 'npm run build'",
"build:debug": "npx napi build --platform --no-const-enum",
"version": "npx napi version"
},
"optionalDependencies": {
"@tailwindcss/oxide-android-arm64": "workspace:*",
"@tailwindcss/oxide-darwin-arm64": "workspace:*",
"@tailwindcss/oxide-darwin-x64": "workspace:*",
"@tailwindcss/oxide-freebsd-x64": "workspace:*",
"@tailwindcss/oxide-linux-arm-gnueabihf": "workspace:*",
"@tailwindcss/oxide-linux-arm64-gnu": "workspace:*",
"@tailwindcss/oxide-linux-arm64-musl": "workspace:*",
"@tailwindcss/oxide-linux-x64-gnu": "workspace:*",
"@tailwindcss/oxide-linux-x64-musl": "workspace:*",
"@tailwindcss/oxide-win32-x64-msvc": "workspace:*"
}
}

2
crates/node/rustfmt.toml Normal file
View file

@ -0,0 +1,2 @@
tab_spaces = 2
edition = "2021"

89
crates/node/src/lib.rs Normal file
View file

@ -0,0 +1,89 @@
use napi::bindgen_prelude::{FromNapiValue, ToNapiValue};
use std::path::PathBuf;
#[macro_use]
extern crate napi_derive;
#[derive(Debug, Clone)]
#[napi(object)]
pub struct ChangedContent {
pub file: Option<String>,
pub content: Option<String>,
pub extension: String,
}
impl From<ChangedContent> for tailwindcss_oxide::ChangedContent {
fn from(changed_content: ChangedContent) -> Self {
tailwindcss_oxide::ChangedContent {
file: changed_content.file.map(PathBuf::from),
content: changed_content.content,
}
}
}
#[derive(Debug, Clone)]
#[napi(object)]
pub struct ScanResult {
pub globs: Vec<GlobEntry>,
pub files: Vec<String>,
pub candidates: Vec<String>,
}
#[derive(Debug, Clone)]
#[napi(object)]
pub struct GlobEntry {
pub base: String,
pub glob: String,
}
#[derive(Debug, Clone)]
#[napi(object)]
pub struct ScanOptions {
pub base: String,
pub globs: Option<bool>,
}
#[napi]
pub fn clear_cache() {
tailwindcss_oxide::clear_cache();
}
#[napi]
pub fn scan_dir(args: ScanOptions) -> ScanResult {
let result = tailwindcss_oxide::scan_dir(tailwindcss_oxide::ScanOptions {
base: args.base,
globs: args.globs.unwrap_or(false),
});
ScanResult {
files: result.files,
candidates: result.candidates,
globs: result
.globs
.into_iter()
.map(|g| GlobEntry {
base: g.base,
glob: g.glob,
})
.collect(),
}
}
#[derive(Debug)]
#[napi]
pub enum IO {
Sequential = 0b0001,
Parallel = 0b0010,
}
#[derive(Debug)]
#[napi]
pub enum Parsing {
Sequential = 0b0100,
Parallel = 0b1000,
}
#[napi]
pub fn scan_files(input: Vec<ChangedContent>, strategy: u8) -> Vec<String> {
tailwindcss_oxide::scan_files(input.into_iter().map(Into::into).collect(), strategy)
}