@harlem/plugin-devtools
Advanced tools
Comparing version 1.1.3 to 1.2.0
@@ -0,0 +0,0 @@ import type { Options } from './types'; |
@@ -1,2 +0,219 @@ | ||
var t=require("@vue/devtools-api");function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}var r={label:"Harlem",color:4244621};function n(t,e){return t.localeCompare(e)}function a(t,e){return function(r){if(r){var n=r.sender,a=r.store;t.sendInspectorState("harlem"),t.addTimelineEvent({layerId:"harlem",event:{logType:e,title:"Mutation",subtitle:a,time:Date.now(),data:r,groupId:n,meta:{store:a}}})}}}module.exports=function(o){void 0===o&&(o=r);var i=e({},r,o),l=i.label,s=i.color;return{name:"devtools",install:function(e,r,o){var i=function(t,e){return function(r){if(r.app===t&&"harlem"===r.inspectorId&&0!==e.size){var a=Array.from(e.keys()).sort(n).map(function(t){return{id:t,label:t}});r.rootNodes=[{children:a,id:"$all",label:"Stores"}]}}}(e,o),u=function(t,e){return function(r){var a=r.nodeId;if(r.app===t&&"harlem"===r.inspectorId&&0!==e.size){var o=[e.get(a)];"$all"===a&&(o=Array.from(e.values())),r.state=function(t){return t.reduce(function(t,e){if(!e)return t;var r=function(t){return{state:[{key:t.name,value:t.state,editable:!0}],getters:Array.from(t.getters).sort(function(t,e){return n(t[0],e[0])}).map(function(t){return{key:t[0],value:(0,t[1])(),editable:!1,objectType:"computed"}}),mutations:Array.from(t.mutations).sort(function(t,e){return n(t[0],e[0])}).map(function(t){return{key:t[0],value:t[1],editable:!1}})}}(e);return{state:[].concat(t.state,r.state),getters:[].concat(t.getters,r.getters),mutations:[].concat(t.mutations,r.mutations)}},{state:[],getters:[],mutations:[]})}(o)}}}(e,o),c=function(t,e){return function(r){var n=r.nodeId,a=r.path,o=r.state,i=r.set;if(r.app===t&&"harlem"===r.inspectorId&&0!==e.size){var l=a.shift(),s=e.get("$all"===n&&l||n);s&&s.write("plugin:devtools:set","devtools",function(t){return i(t,a,o.value)})}}}(e,o);t.setupDevtoolsPlugin({app:e,label:l,id:"harlem",logo:"https://harlemjs.com/assets/images/favicon.png"},function(t){var e=a(t),n=a(t,"error");t.addInspector({label:l,id:"harlem",icon:"storage",treeFilterPlaceholder:"Search stores"}),t.addTimelineLayer({label:l,color:s,id:"harlem"}),t.on.getInspectorTree(i),t.on.getInspectorState(u),t.on.editInspectorState(c),r.on("mutation:after",e),r.on("mutation:error",n)})}}}; | ||
var HarlemDevtoolsPlugin = (() => { | ||
var __create = Object.create; | ||
var __defProp = Object.defineProperty; | ||
var __getProtoOf = Object.getPrototypeOf; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __getOwnPropNames = Object.getOwnPropertyNames; | ||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true}); | ||
var __export = (target, all) => { | ||
for (var name in all) | ||
__defProp(target, name, {get: all[name], enumerable: true}); | ||
}; | ||
var __exportStar = (target, module, desc) => { | ||
if (module && typeof module === "object" || typeof module === "function") { | ||
for (let key of __getOwnPropNames(module)) | ||
if (!__hasOwnProp.call(target, key) && key !== "default") | ||
__defProp(target, key, {get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable}); | ||
} | ||
return target; | ||
}; | ||
var __toModule = (module) => { | ||
return __exportStar(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? {get: () => module.default, enumerable: true} : {value: module, enumerable: true})), module); | ||
}; | ||
// src/index.ts | ||
var src_exports = {}; | ||
__export(src_exports, { | ||
default: () => createDevtoolsPlugin | ||
}); | ||
// src/constants.ts | ||
var SENDER = "devtools"; | ||
var DEVTOOLS_ID = "harlem"; | ||
var ALL_STORES_ID = "$all"; | ||
var OPTIONS = { | ||
label: "Harlem", | ||
color: 4244621 | ||
}; | ||
// src/index.ts | ||
var import_devtools_api = __toModule(require("@vue/devtools-api")); | ||
function stringComparitor(valueA, valueB) { | ||
return valueA.localeCompare(valueB); | ||
} | ||
function getInspectorTreeHook(application, stores) { | ||
return (payload) => { | ||
const { | ||
app, | ||
inspectorId | ||
} = payload; | ||
if (app !== application || inspectorId !== DEVTOOLS_ID || stores.size === 0) { | ||
return; | ||
} | ||
const children = Array.from(stores.keys()).sort(stringComparitor).map((name) => ({ | ||
id: name, | ||
label: name | ||
})); | ||
payload.rootNodes = [ | ||
{ | ||
children, | ||
id: ALL_STORES_ID, | ||
label: "Stores" | ||
} | ||
]; | ||
}; | ||
} | ||
function getStoreSnapshot(store) { | ||
const state = [ | ||
{ | ||
key: store.name, | ||
value: store.state, | ||
editable: true | ||
} | ||
]; | ||
const getters = Array.from(store.getters).sort(([a], [b]) => stringComparitor(a, b)).map(([key, accessor]) => ({ | ||
key, | ||
value: accessor(), | ||
editable: false, | ||
objectType: "computed" | ||
})); | ||
const mutations = Array.from(store.mutations).sort(([a], [b]) => stringComparitor(a, b)).map(([key, mutator]) => ({ | ||
key, | ||
value: mutator, | ||
editable: false | ||
})); | ||
return { | ||
state, | ||
getters, | ||
mutations | ||
}; | ||
} | ||
function getStoreSnapshots(stores) { | ||
return stores.reduce((output, store) => { | ||
if (!store) { | ||
return output; | ||
} | ||
const snapshot = getStoreSnapshot(store); | ||
return { | ||
state: [...output.state, ...snapshot.state], | ||
getters: [...output.getters, ...snapshot.getters], | ||
mutations: [...output.mutations, ...snapshot.mutations] | ||
}; | ||
}, { | ||
state: [], | ||
getters: [], | ||
mutations: [] | ||
}); | ||
} | ||
function getInspectorStateHook(application, stores) { | ||
return (payload) => { | ||
const { | ||
app, | ||
inspectorId, | ||
nodeId | ||
} = payload; | ||
if (app !== application || inspectorId !== DEVTOOLS_ID || stores.size === 0) { | ||
return; | ||
} | ||
let internalStores = [stores.get(nodeId)]; | ||
if (nodeId === ALL_STORES_ID) { | ||
internalStores = Array.from(stores.values()); | ||
} | ||
payload.state = getStoreSnapshots(internalStores); | ||
}; | ||
} | ||
function getInspectorEditHook(application, stores) { | ||
return (payload) => { | ||
const { | ||
app, | ||
inspectorId, | ||
nodeId, | ||
path, | ||
state, | ||
set | ||
} = payload; | ||
if (app !== application || inspectorId !== DEVTOOLS_ID || stores.size === 0) { | ||
return; | ||
} | ||
const root = path.shift(); | ||
const storeId = nodeId === ALL_STORES_ID ? root || nodeId : nodeId; | ||
const store = stores.get(storeId); | ||
if (!store) { | ||
return; | ||
} | ||
store.write("plugin:devtools:set", SENDER, (_state) => set(_state, path, state.value)); | ||
}; | ||
} | ||
function getMutationHook(api, logType) { | ||
return (payload) => { | ||
if (!payload) { | ||
return; | ||
} | ||
const { | ||
sender, | ||
store | ||
} = payload; | ||
api.sendInspectorState(DEVTOOLS_ID); | ||
api.addTimelineEvent({ | ||
layerId: DEVTOOLS_ID, | ||
event: { | ||
logType, | ||
title: "Mutation", | ||
subtitle: store, | ||
time: Date.now(), | ||
data: payload, | ||
groupId: sender, | ||
meta: { | ||
store | ||
} | ||
} | ||
}); | ||
}; | ||
} | ||
function createDevtoolsPlugin(options = OPTIONS) { | ||
const { | ||
label, | ||
color | ||
} = { | ||
...OPTIONS, | ||
...options | ||
}; | ||
return { | ||
name: "devtools", | ||
install(app, eventEmitter, stores) { | ||
const inspectorTreeHook = getInspectorTreeHook(app, stores); | ||
const inspectorStateHook = getInspectorStateHook(app, stores); | ||
const inspectorEditHook = getInspectorEditHook(app, stores); | ||
const descriptor = { | ||
app, | ||
label, | ||
id: DEVTOOLS_ID, | ||
logo: "https://harlemjs.com/assets/images/favicon.png" | ||
}; | ||
(0, import_devtools_api.setupDevtoolsPlugin)(descriptor, (api) => { | ||
const afterMutationHook = getMutationHook(api); | ||
const errorMutationHook = getMutationHook(api, "error"); | ||
api.addInspector({ | ||
label, | ||
id: DEVTOOLS_ID, | ||
icon: "storage", | ||
treeFilterPlaceholder: "Search stores" | ||
}); | ||
api.addTimelineLayer({ | ||
label, | ||
color, | ||
id: DEVTOOLS_ID | ||
}); | ||
api.on.getInspectorTree(inspectorTreeHook); | ||
api.on.getInspectorState(inspectorStateHook); | ||
api.on.editInspectorState(inspectorEditHook); | ||
eventEmitter.on("mutation:after", afterMutationHook); | ||
eventEmitter.on("mutation:error", errorMutationHook); | ||
}); | ||
} | ||
}; | ||
} | ||
return src_exports; | ||
})(); | ||
//# sourceMappingURL=harlem-devtools.js.map |
import type { Options } from './types'; | ||
import type { HarlemPlugin } from '@harlem/core'; | ||
export default function createDevtoolsPlugin(options?: Partial<Options>): HarlemPlugin; |
{ | ||
"name": "@harlem/plugin-devtools", | ||
"version": "1.1.3", | ||
"amdName": "harlemDevtools", | ||
"version": "1.2.0", | ||
"license": "MIT", | ||
@@ -8,12 +9,15 @@ "author": "Andrew Courtice <andrewcourtice@users.noreply.github.com>", | ||
"homepage": "https://harlemjs.com", | ||
"main": "dist/harlem-devtools.js", | ||
"module": "dist/harlem-devtools.esm.js", | ||
"main": "dist/harlem-devtools..js", | ||
"module": "dist/harlem-devtools.mjs", | ||
"umd:main": "dist/harlem-devtools.umd.js", | ||
"unpkg": "dist/harlem-devtools.js", | ||
"unpkg": "dist/harlem-devtools.min.js", | ||
"types": "dist/index.d.ts", | ||
"source": "src/index.ts", | ||
"exports": { | ||
"require": "./dist/harlem-devtools.js", | ||
"import": "./dist/harlem-devtools.esm.js", | ||
"default": "./dist/harlem-devtools.esm.js" | ||
".": { | ||
"require": "./dist/harlem-devtools.js", | ||
"umd": "./dist/harlem-devtools.umd.js", | ||
"browser": "./dist/harlem-devtools.mjs", | ||
"import": "./dist/harlem-devtools.mjs" | ||
} | ||
}, | ||
@@ -37,3 +41,3 @@ "keywords": [ | ||
"dev": "microbundle watch --raw", | ||
"build": "microbundle build --raw", | ||
"build": "node build.js", | ||
"prepublish": "yarn build" | ||
@@ -48,5 +52,6 @@ }, | ||
"devDependencies": { | ||
"@harlem/core": "^1.1.3" | ||
"@harlem/build": "^1.2.0", | ||
"@harlem/core": "^1.2.0" | ||
}, | ||
"gitHead": "4345a656ed321f5210032f07627c9e146118bbd2" | ||
"gitHead": "549873cf8d6a6c7d1871e79ca6f11e87d3858004" | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
94717
23
914
2
1