UNPKG

sketch-json-parse

Version:

sketch-json解析

53 lines (52 loc) 2.66 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.picassoArtboardCodeParse = void 0; const parseDSL_1 = require("./parseDSL"); const parseArtboard_1 = require("./parseArtboard"); const src_1 = require("../packages/picasso-group/src"); const src_2 = require("../packages/picasso-layout/src"); /** * @description 画板代码解析方法 * @param { SKLayer } layer 当前图层 * @param { string[] } absoluteMatchNames 所在层级使用绝对定位 * @param { string[] } notBranchNames 不进行分行分列的图层名称 * @param { EffectRuleNames } effectRuleNames 副作用特殊标识 * @returns { Promise<DSL> } * */ const picassoArtboardCodeParse = (layer, isFilterLayer, absoluteMatchNames = [], notBranchNames = [], effectRuleNames = { scroll: ['#scroll#'], dialog: ['#dialog#'], }) => { // fs.writeFileSync('./code_dsl_1.json',JSON.stringify(layer,null,2)); // 画板处理,主要处理坐标计算 layer = (0, parseArtboard_1.default)(layer, effectRuleNames, isFilterLayer); // fs.writeFileSync('./code_dsl_2.json',JSON.stringify(layer,null,2)); // 1.DSL处理 替换对象标签和children,同层图层对象排序,过滤group,把所有图层扁平化 let DSL = (0, parseDSL_1.default)([layer], isFilterLayer, effectRuleNames); // fs.writeFileSync("./code_dsl_3.json", JSON.stringify(DSL, null, 2)); // 2. 特征分组 重新处理对象嵌套结构,同时实现布局的分行分列容器添加 DSL = (0, src_1.default)(DSL, notBranchNames, effectRuleNames); // fs.writeFileSync('./code_dsl_4.json',JSON.stringify(DSL,null,2)); // 3. 布局处理,根据结构进行flex布局 DSL = (0, src_2.default)(DSL, absoluteMatchNames); // fs.writeFileSync('./code_dsl_5.json',JSON.stringify(DSL,null,2)); return DSL[0]; }; exports.picassoArtboardCodeParse = picassoArtboardCodeParse; // sketch DSL __exportStar(require("../packages/sketch-dsl/src"), exports);