小编jac*_*dbd的帖子

如何动态导入zig模块?

我正在使用 Zig 0.7.0.,并尝试从数组导入 Zig 源文件列表。每个源文件都有一个我想调用的main函数(其返回类型为)。!void该数组module_names在编译时是已知的。

这是我尝试做的:

const std = @import("std");
const log = std.log;

const module_names = [_][]const u8{
    "01.zig", "02.zig", "03.zig", "04.zig", "05.zig",
};

pub fn main() void {
    var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
    defer arena.deinit();

    for (module_names) |module_name, i| {
        const module = @import(module_name); // this fails
        log.info("i {}", .{i});
        try module.main();
    }
}
Run Code Online (Sandbox Code Playgroud)

即使数组在编译时已知,@import(module_name)也会出现以下错误:

./src/main.zig:13:32: error: unable to evaluate constant expression
        const module = @import(module_name);
                               ^
./src/main.zig:13:24: note: referenced …
Run Code Online (Sandbox Code Playgroud)

zig

9
推荐指数
2
解决办法
2159
查看次数

如何用Jest模拟DataTransfer

我有一些使用HTML Drag接口的 React组件。

特别是,我侦听dragover一个组件上的事件,并使用DataTransfer对象设置x和y位置。然后,我侦听dragleave不同组件上的事件,并从DataTransfer中检索x和y位置。

我正在使用Jest和Enzyme来测试我的组件。

如果我运行测试,则会出现此错误:

Test suite failed to run
ReferenceError: DataTransfer is not defined
Run Code Online (Sandbox Code Playgroud)

据我了解,Drag接口在Jest中不可用,因此我需要对其进行模拟,并(也许?)通过Jest globals使它可用。

现在,我DataTransfer在自己的代码中定义jest.config.js并使其成为全局变量,但是我不确定这是否是最佳解决方案。

class DataTransfer {
  constructor() {
    this.data = { dragX: "", dragY: "" };
    this.dropEffect = "none";
    this.effectAllowed = "all";
    this.files = [];
    this.img = "";
    this.items = [];
    this.types = [];
    this.xOffset = 0;
    this.yOffset = 0;
  }
  clearData() {
    this.data = {};
  }
  getData(format) {
    return this.data[format]; …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing drag reactjs jestjs

6
推荐指数
1
解决办法
323
查看次数

使用hugSQL def-db-fns宏时如何使用clj-kond避免未解析的符号?

我使用 VS Code Calva扩展编写 Clojure ,它使用clj-kondo对我的代码执行静态分析。

我正在使用HugSQL从 SQL 查询和语句创建 Clojure 函数。

我知道我可以使用像conman这样的库来处理数据库连接和 HugSQL 集成,事实上我过去使用过它并且我喜欢它,但这次我想保持原样并自己与 HugSQL 交谈。

HugSQL 的def-db-fns宏接受一个 SQL 文件,并根据该文件中包含的 SQL 查询和语句创建 Clojure 函数。

我下面的代码有效,但 clj-kondo 抱怨这seed-mytable!是一个未解析的符号。

(ns my-app.db
  "This namespace represents the bridge between the database world and the clojure world."
  (:require [environ.core :refer [env]]
            [hugsql.core :as hugsql]
            [nano-id.core :refer [nano-id]]))

;; This create the function seed-mytable!, but clj-kondo doesn't (cannot?) know it.
(hugsql/def-db-fns "sql/mytable.sql")

;; The functions …
Run Code Online (Sandbox Code Playgroud)

clojure hugsql vscode-calva clj-kondo

6
推荐指数
1
解决办法
998
查看次数

云原生构建包只是执行多阶段容器映像构建的自动方式吗?

我开始使用pack为我的应用程序构建容器映像。我对不同的应用程序使用了不同的构建器:用于 Node.js 应用程序的gcr.io/buildpacks/builder和paketobuildpacks/builder:tiny和用于 Clojure 应用程序的

不必编写 Dockerfile 很棒,但我仍然不确定云原生 Buildpack 是如何工作的。构建包只是一堆可执行文件(由构建器运行),它们与手动编写 Docker多阶段构建FROM(即Dockerfile 中的多个指令)的开发人员实现相同的结果吗?

containers pack buildpack docker paketo

1
推荐指数
1
解决办法
690
查看次数