From a1154e1ff14379a3effacd3aec399030173122c2 Mon Sep 17 00:00:00 2001 From: Jan Klaas Kollhof Date: Sun, 18 Jul 2021 14:46:06 +0200 Subject: [PATCH] chore: use partials --- package-lock.json | 36 ++++++++++++++++++------------------ src/js/do-expression.fnk | 22 +++++++++++----------- src/lang/assignment/init.fnk | 3 +-- src/lang/literals/string.fnk | 7 ++----- src/lang/runtime.fnk | 4 ++-- 5 files changed, 34 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2e42d2e..99ccce8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -798,9 +798,9 @@ } }, "node_modules/@fink/loxia": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-22.0.0.tgz", - "integrity": "sha512-ySlRbnHd4e9wF2qLb2TXkaXGKDJXNXqnvbonncMyS2IB2UbOVtYvSae48LzAR19luSPCxCJKs5rmm4Fi+dUNlw==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-22.1.0.tgz", + "integrity": "sha512-X4okUpHI/md9xOQeasGV8l8RyHG1d7C/GfZQm1bZFDMGh6CYI2XH7eYWghtExTUCDfoL08gym/ayrSdtoudIvw==", "dev": true, "dependencies": { "@babel/core": "^7.10.5", @@ -2009,9 +2009,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.2.tgz", - "integrity": "sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz", + "integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3375,9 +3375,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.778", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.778.tgz", - "integrity": "sha512-Lw04qJaPtWdq0d7qKHJTgkam+FhFi3hm/scf1EyqJWdjO3ZIGUJhNmZJRXWb7yb/bRYXQyVGSpa9RqVpjjWMQw==" + "version": "1.3.779", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz", + "integrity": "sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==" }, "node_modules/emittery": { "version": "0.8.1", @@ -13408,9 +13408,9 @@ } }, "@fink/loxia": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-22.0.0.tgz", - "integrity": "sha512-ySlRbnHd4e9wF2qLb2TXkaXGKDJXNXqnvbonncMyS2IB2UbOVtYvSae48LzAR19luSPCxCJKs5rmm4Fi+dUNlw==", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-22.1.0.tgz", + "integrity": "sha512-X4okUpHI/md9xOQeasGV8l8RyHG1d7C/GfZQm1bZFDMGh6CYI2XH7eYWghtExTUCDfoL08gym/ayrSdtoudIvw==", "dev": true, "requires": { "@babel/core": "^7.10.5", @@ -14369,9 +14369,9 @@ "dev": true }, "@types/node": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.2.tgz", - "integrity": "sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw==", + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz", + "integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==", "dev": true }, "@types/normalize-package-data": { @@ -15453,9 +15453,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.778", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.778.tgz", - "integrity": "sha512-Lw04qJaPtWdq0d7qKHJTgkam+FhFi3hm/scf1EyqJWdjO3ZIGUJhNmZJRXWb7yb/bRYXQyVGSpa9RqVpjjWMQw==" + "version": "1.3.779", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz", + "integrity": "sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==" }, "emittery": { "version": "0.8.1", diff --git a/src/js/do-expression.fnk b/src/js/do-expression.fnk index 97ec2c6..52964fe 100644 --- a/src/js/do-expression.fnk +++ b/src/js/do-expression.fnk @@ -3,7 +3,8 @@ babel_types = import '@babel/types' assignmentExpression, returnStatement, expressionStatement isDoExpression, isBlockStatement, isLabeledStatement isVariableDeclarator, isArrowFunctionExpression, isExpressionStatement - isReturnStatement, arrowFunctionExpression, callExpression + isReturnStatement + arrowFunctionExpression, callExpression } = babel_types {set_props} = import '@fink/js-interop/reflect.fnk' {undefined} = import '@fink/js-interop/nullish.fnk' @@ -13,7 +14,7 @@ babel_types = import '@babel/types' {lets, assign, undef} = import './types.fnk' -get_body = fn path: path.get 'body' +get_body = ?.get 'body' @@ -34,6 +35,7 @@ simple = fn body, sl=false: stmnt.node.body # TODO: # {sl: true, stmnt: isIfStatement ?}: + # console.log body # body.node else: simple stmnt @@ -66,8 +68,7 @@ last_expressions = fn path: items = [] body.traverse rec: - LabeledStatement: fn nested_match: - nested_match.skip _ + LabeledStatement: ?.skip _ BreakStatement: fn brk: last = brk.getSibling brk.key - 1 @@ -169,13 +170,12 @@ transform_do_expr = fn path: replace_with_return path else: - # e.g. - # fn: - # foo = match: - # spam: - # shrub - # ni - # foo + # TODO + # foo = match: + # spam: + # shrub + # ni + # foo arrow = arrowFunctionExpression [], path.node path.replaceWith callExpression arrow, [] diff --git a/src/lang/assignment/init.fnk b/src/lang/assignment/init.fnk index 0d9c9b8..4ce4c13 100644 --- a/src/lang/assignment/init.fnk +++ b/src/lang/assignment/init.fnk @@ -30,8 +30,7 @@ has_spread_not_last = fn {left}: [...exprs, ] = left.exprs [spread=false] = pipe exprs: - # TODO filter ?.type == 'spread' - filter fn {type}: type == 'spread' + filter ?.type == 'spread' spread else: diff --git a/src/lang/literals/string.fnk b/src/lang/literals/string.fnk index 048a1e6..d168ee0 100644 --- a/src/lang/literals/string.fnk +++ b/src/lang/literals/string.fnk @@ -11,9 +11,7 @@ transform_string = fn node, ctx: {exprs: parts, tag} = node quasies = pipe parts: - # TODO filter ?.type == 'string:text' - filter fn part: - part.type == 'string:text' + filter ?.type == 'string:text' map fn part: templateElement rec: @@ -23,8 +21,7 @@ transform_string = fn node, ctx: '\\$1$2' [expressions, next_ctx] = pipe parts: - # TODO drop_if ?.type == 'string:text' - drop_if fn {type}: type == 'string:text' + drop_if ?.type == 'string:text' map_with_ctx transform collect_with_ctx ctx diff --git a/src/lang/runtime.fnk b/src/lang/runtime.fnk index 9d73111..f68deb1 100644 --- a/src/lang/runtime.fnk +++ b/src/lang/runtime.fnk @@ -42,8 +42,8 @@ use_runtime_fn = fn name, ctx: runtime: rec: ...runtime used: list: - name, # TODO: filter ? != name - ...runtime.used | filter fn used_name: used_name != name + name, + ...runtime.used | filter ? != name