Skip to content

Commit

Permalink
feat: support new URL with import meta.url (#1481)
Browse files Browse the repository at this point in the history
* feat: support new URL with import meta.url

* feat: normalized glob pattern

* fix: normalized glob pattern support absolute path

* fix asset path prefix should use publicPath

* feat: node asset url transform to new URL & support electron relative path

* fix: update test case

* fix: path nornalize failed in win

---------

Co-authored-by: ADNY <[email protected]>
  • Loading branch information
shulandmimi and ErKeLost authored Jul 3, 2024
1 parent a264f6c commit 0915328
Show file tree
Hide file tree
Showing 57 changed files with 1,430 additions and 458 deletions.
5 changes: 5 additions & 0 deletions .changeset/wet-moose-share.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@farmfe/core": patch
---

support new URL with import.meta.url
5 changes: 5 additions & 0 deletions .changeset/wicked-dragons-rhyme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@farmfe/js-plugin-electron": patch
---

support relative path in electron
16 changes: 8 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 15 additions & 9 deletions biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,15 @@
"ignore": [
"crates/**",
"*.vue",
"examples/**",
"tsconfig.base.json",
"tsconfig.json",
"cspell.json",
"*.e2e.ts",
"*.d.ts",
"packages/runtime/**",
"packages/runtime-plugin-import-meta/**",
"packages/create-farm/templates/**",
"packages/create-farm-plugin/templates/**",
"rust-plugins/**",
"js-plugins/vue",
"js-plugins/less",
"js-plugins/sass"
"rust-plugins/**"
],
"ignoreUnknown": true
},
Expand All @@ -34,11 +29,22 @@
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 80,
"attributePosition": "auto"
"attributePosition": "auto",
"include": [
"**/*.ts"
],
"ignore": [
"node_modules",
"dist"
]
},
"organizeImports": {
"enabled": true,
"include": ["./**/*.js", "./**/*.ts", "./**/*.mjs"]
"include": [
"./**/*.js",
"./**/*.ts",
"./**/*.mjs"
]
},
"linter": {
"enabled": true,
Expand Down Expand Up @@ -134,4 +140,4 @@
"attributePosition": "auto"
}
}
}
}
18 changes: 15 additions & 3 deletions crates/compiler/tests/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ use farmfe_core::{
config::{
bool_or_obj::BoolOrObj, config_regex::ConfigRegex, persistent_cache::PersistentCacheConfig,
preset_env::PresetEnvConfig, Config, CssConfig, Mode, RuntimeConfig, SourcemapConfig,
},
plugin::Plugin,
serde_json::Value,
}, plugin::Plugin, serde::de::DeserializeOwned, serde_json::{self, Value}
};
use farmfe_testing_helpers::is_update_snapshot_from_env;
use farmfe_toolkit::fs::read_file_utf8;
Expand Down Expand Up @@ -292,3 +290,17 @@ pub fn assert_compiler_result(compiler: &Compiler, entry_name: Option<&String>)
},
);
}

#[allow(dead_code)]
pub fn get_config_field<T: DeserializeOwned>(value: &Value, keys: &[&str]) -> Option<T> {
let mut v: &Value = value;

for key in keys.iter() {
v = v.get(key)?;
}

Some(
serde_json::from_value(v.clone())
.expect(format!("{} type is not correct", keys.join(".")).as_str()),
)
}
116 changes: 75 additions & 41 deletions crates/compiler/tests/fixtures/script/accept_deps/output.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,69 @@
//index.js:
(globalThis || window || self || global)['__farm_default_namespace__'] = {__FARM_TARGET_ENV__: 'browser'};(function (modules, entryModule) {
var cache = {};

function dynamicRequire(id) {
return Promise.resolve(require(id));
}

function require(id) {
if (cache[id]) return cache[id].exports;

var module = {
id: id,
exports: {}
};

modules[id](module, module.exports, require, dynamicRequire);
cache[id] = module;
return module.exports;
}

require(entryModule);
})({"d2214aaa": function(module, exports, farmRequire, farmDynamicRequire) {
(globalThis || window || global)['__farm_default_namespace__'] = {__FARM_TARGET_ENV__: 'browser'};function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}function _export_star(from, to) {
Object.keys(from).forEach(function(k) {
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
Object.defineProperty(to, k, {
enumerable: true,
get: function() {
return from[k];
}
});
}
});
return from;
}function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) return obj;
if (obj === null || typeof obj !== "object" && typeof obj !== "function") return {
default: obj
};
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) return cache.get(obj);
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
else newObj[key] = obj[key];
}
}
newObj.default = obj;
if (cache) cache.set(obj, newObj);
return newObj;
}function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}function __commonJs(mod) {
var module;
return () => {
if (module) {
return module.exports;
}
module = {
exports: {},
};
if(typeof mod === "function") {
mod(module, module.exports);
}else {
mod[Object.keys(mod)[0]](module, module.exports);
}
return module.exports;
};
}((function(){var index_js_cjs = __commonJs((module, exports)=>{
"use strict";
console.log("runtime/index.js")(globalThis || window || self || global)["__farm_default_namespace__"].__farm_module_system__.setPlugins([]);
},}, "d2214aaa");(function (modules) {
for (var key in modules) {
modules[key].__farm_resource_pot__ = 'index_fb79.js';
(globalThis || window || self || global)['__farm_default_namespace__'].__farm_module_system__.register(key, modules[key]);
}
})({"05ee5ec7": function(module, exports, farmRequire, farmDynamicRequire) {
console.log("runtime/index.js")(globalThis || window || global)["__farm_default_namespace__"].__farm_module_system__.setPlugins([]);
});
})());(function(_){for(var r in _){_[r].__farm_resource_pot__='index_fb79.js';(globalThis || window || global)['__farm_default_namespace__'].__farm_module_system__.register(r,_[r])}})({"05ee5ec7":function (module, exports, farmRequire, farmDynamicRequire) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
Expand All @@ -41,8 +76,9 @@
"foo.js",
"bar.js"
], ([newFooModule, newBarModule])=>{});
},
"59ebf907": function(module, exports, farmRequire, farmDynamicRequire) {
}
,
"59ebf907":function (module, exports, farmRequire, farmDynamicRequire) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
Expand All @@ -56,22 +92,19 @@
function foo() {
return "foo";
}
},
"b5d64806": function(module, exports, farmRequire, farmDynamicRequire) {
}
,
"b5d64806":function (module, exports, farmRequire, farmDynamicRequire) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _foo = farmRequire("59ebf907");
farmRequire("05ee5ec7");
(0, _foo.foo)();
if (module.meta.hot) {
module.meta.hot.accept("foo.js", (newFoo)=>{
newFoo?.foo();
});
}
},
"e185e932": function(module, exports, farmRequire, farmDynamicRequire) {
}
,
"e185e932":function (module, exports, farmRequire, farmDynamicRequire) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
Expand All @@ -85,4 +118,5 @@
function bar() {
return "bar";
}
},});(globalThis || window || self || global)['__farm_default_namespace__'].__farm_module_system__.setInitialLoadedResources([]);(globalThis || window || self || global)['__farm_default_namespace__'].__farm_module_system__.setDynamicModuleResourcesMap({ });var farmModuleSystem = (globalThis || window || self || global)['__farm_default_namespace__'].__farm_module_system__;farmModuleSystem.bootstrap();var entry = farmModuleSystem.require("b5d64806");
}
,});(globalThis || window || global)['__farm_default_namespace__'].__farm_module_system__.setInitialLoadedResources([]);(globalThis || window || global)['__farm_default_namespace__'].__farm_module_system__.setDynamicModuleResourcesMap({ });var farmModuleSystem = (globalThis || window || global)['__farm_default_namespace__'].__farm_module_system__;farmModuleSystem.bootstrap();var entry = farmModuleSystem.require("b5d64806");
Loading

0 comments on commit 0915328

Please sign in to comment.