permission sets in deno.json
まだDraft状態ですが、deno.json
でパーミッションを管理する機能を追加するPRが作成されています:
このPRではdeno.json
にpermissionSets
という項目が追加されており、複数のパーミッションセットを定義できるようです:
{
"permissionSets": {
"default": {
"read": ["data"],
"net": ["http://localhost:3000/api"]
},
"build": {
"read": ["data"],
"write": ["dist"]
}
}
}
Denoを実行する際に--permission-set
オプションを指定することで、deno.json
で定義されたパーミッションセットを適用する想定のようです:
# デフォルトでは`default`という名前がついたパーミッションセットが適用されるようです
$ deno run --permission-set main.ts
# buildという名前がついたパーミッションセットを有効化します
$ deno run --permission-set=build scripts/build.ts
deno lint
- JavaScriptプラグインでのセレクターのサポートについて
deno lint
のJavaScriptプラグインにセレクターの仕組みを実装するPRがマージされています:
サポートされている構文については上記のPRに詳しく記載されていますが、以下のように柔軟にノードの問い合わせを行うことができるようです:
const plugin = {
name: "sample-plugin",
rules: {
foo: {
create: () => {
const visitor = {
// (1) if文の子孫の関数呼び出しにマッチします
"IfStatement CallExpression": (node) => {
assert(node.type === "CallExpression");
},
// (2) async関数にマッチします
"FunctionDeclaration[async=true]": (node) => {
assert(node.type === "FunctionDeclaration");
assert(node.async);
},
};
return visitor;
},
},
},
};
export default plugin;