sketch-json-parse
Version:
sketch-json解析
53 lines (52 loc) • 2.66 kB
JavaScript
;
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);