New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@mybricks/cloud-com-loader

Package Overview
Dependencies
Maintainers
4
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mybricks/cloud-com-loader - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2-beta1

2

package.json
{
"name": "@mybricks/cloud-com-loader",
"version": "1.0.1",
"version": "1.0.2-beta1",
"description": "",

@@ -5,0 +5,0 @@ "main": "index.js",

const fs = require("fs");
const pt = require("path");
var request = require('request');
const request = require('request');
const types = require("@babel/types");

@@ -49,3 +49,3 @@ const parser = require("@babel/parser");

// import 依赖组件
function getImportComsCode (deps, tagName) {
function getImportComsCode (deps) {
let importComsCode = `

@@ -57,17 +57,17 @@ import ErrorBoundary from "${ErrorBoundary}";

if (Array.isArray(deps)) {
deps.forEach(dep => {
const { namespace, version } = dep;
const CloudComponentName = `CloudComponent${tagName}${namespace}${version}`.replace(/@/g, "").replace(/\./g, "").replace(/-/g, "");
const CloudComponentFile = `./com/${CloudComponentName}.js`;
const CloudComponentPath = pt.join(__dirname, CloudComponentFile);
deps.forEach(dep => {
const {
version,
namespace,
CloudComponentName,
CloudComponentPath
} = dep;
importComsCode = importComsCode + `
import ${CloudComponentName} from "${CloudComponentPath}";
comDefs["${namespace}-${version}"] = {
runtime: ${CloudComponentName}
};\n
`
})
}
importComsCode = importComsCode + `
import ${CloudComponentName} from "${CloudComponentPath}";
comDefs["${namespace}-${version}"] = {
runtime: ${CloudComponentName}
};\n
`
})

@@ -177,5 +177,3 @@ return importComsCode;

const comsMapKey = `${tagName}${separator}${defValue}`;
const CloudComponentName = `CloudComponent${(tagName+defValue).replace(/@/g, "").replace(/\./g, "").replace(/-/g, "")}`;
const CloudComponentFile = `./com/${CloudComponentName}.js`;
const CloudComponentPath = pt.join(__dirname, CloudComponentFile);
const { CloudComponentName, CloudComponentPath } = getCloudComponentInfo({tagName, version, namespace});

@@ -185,3 +183,9 @@ node.name.name = CloudComponentName;

if (!importComsMap[comsMapKey]) {
importComsMap[comsMapKey] = true;
importComsMap[comsMapKey] = {
tagName,
version,
namespace,
CloudComponentName,
CloudComponentPath
};

@@ -215,14 +219,20 @@ sourceAst.program.body.unshift(

const importComKeys = Object.keys(importComsMap);
const deps = Object.keys(importComsMap).map((key) => {
return importComsMap[key];
});
await componentLoad(importComKeys);
await componentLoad(deps);
// 加载组件资源
async function componentLoad (comKeys, isChild = false) {
async function componentLoad (deps, isChild = false) {
return new Promise((resolve, reject) => {
Promise.all(comKeys.map(comKey => {
Promise.all(deps.map(dep => {
return new Promise((resolve, reject) => {
const [tagName, defValue] = comKey.split(separator);
const [namespace, version] = defValue.split("@");
const CloudComponentName = `CloudComponent${(tagName+defValue).replace(/@/g, "").replace(/\./g, "").replace(/-/g, "")}`;
const {
tagName,
version,
namespace,
CloudComponentName,
CloudComponentPath
} = dep;

@@ -240,4 +250,2 @@ if (!globalImportComsMap[tagName]) {

const ComponentInfo = tagInfo[CloudComponentName];
const CloudComponentFile = `./com/${CloudComponentName}.js`;
const CloudComponentPath = pt.join(__dirname, CloudComponentFile);
const comApiParams = `namespace=${namespace}&version=${version}`;

@@ -249,3 +257,3 @@ let comApi = tagNameMap[tagName].api;

if (!ComponentInfo.success || !fs.existsSync(CloudComponentPath)) {
console.log('加载资源', {tagName, defValue})
console.log('加载资源', {tagName, namespace, version})
// 加载

@@ -265,9 +273,15 @@ request(comApi, function (error, response, body) {

// 依赖组件数组/运行时代码
const { deps, runtime } = data;
let { deps, runtime } = data;
let resultRuntime = runtime.trim();
if (!Array.isArray(deps)) {
deps = []
}
ComponentInfo.deps = deps;
ComponentInfo.success = true;
const completeDeps = getCompleteDeps(deps, tagName);
// 区分组件入口

@@ -278,3 +292,3 @@ if (!isChild) {

// 源码
resultRuntime = getImportComsCode(deps, tagName) + resultRuntime.replace("function", "function RenderCom") + CloudComponentCode({namespace, version});
resultRuntime = getImportComsCode(completeDeps) + resultRuntime.replace("function", "function RenderCom") + CloudComponentCode({namespace, version});

@@ -289,3 +303,3 @@ fs.writeFileSync(CloudComponentPath, resultRuntime);

import RenderCom from "${CloudComponentCodePath}";
${getImportComsCode(deps, tagName)}
${getImportComsCode(completeDeps)}
${CloudComponentCode({namespace, version})}

@@ -300,18 +314,10 @@ `;

const comKeys = Array.isArray(deps) ? deps.map(({namespace, version}) => {
return `${tagName}${separator}${namespace}@${version}`;
}) : [];
componentLoad(comKeys, true).then(resolve);
componentLoad(completeDeps, true).then(resolve);
}
})
} else {
console.log('资源已存在', {tagName, defValue})
console.log('资源已存在', {tagName, namespace, version})
const { deps } = ComponentInfo;
const comKeys = Array.isArray(deps) ? deps.map(({namespace, version}) => {
return `${tagName}${separator}${namespace}@${version}`;
}) : [];
componentLoad(comKeys, true).then(resolve);
componentLoad(getCompleteDeps(deps, tagName), true).then(resolve);
}

@@ -323,9 +329,40 @@ })

if (importComKeys.length) {
let code = source;
if (deps.length) {
fs.writeFileSync(comsMapPath, JSON.stringify(globalImportComsMap));
code = generator(sourceAst).code
}
return generator(sourceAst).code;
return code;
}
function getCloudComponentInfo ({tagName, version, namespace}) {
const CloudComponentName = `CloudComponent${(tagName+namespace+version).replace(/@/g, "").replace(/\./g, "").replace(/-/g, "")}`;
const CloudComponentFile = `./com/${CloudComponentName}.js`;
const CloudComponentPath = pt.join(__dirname, CloudComponentFile);
return {
CloudComponentPath,
CloudComponentName
}
}
function getCompleteDeps (deps, tagName) {
if (Array.isArray(deps)) {
return deps.map(dep => {
const { namespace, version } = dep;
return {
tagName,
version,
namespace,
...getCloudComponentInfo({tagName, version, namespace})
}
});
}
return [];
}
module.exports = loader
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc