Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@perspect3vism/ad4m-executor",
"version": "0.0.10",
"version": "0.0.11",
"description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.",
"main": "lib/main.js",
"files": [
Expand Down Expand Up @@ -41,7 +41,7 @@
"dependencies": {
"@holochain/conductor-api": "0.0.2",
"@perspect3vism/ad4m": "0.0.5",
"@perspect3vism/ad4m-language-context": "0.0.4",
"@perspect3vism/ad4m-language-context": "0.0.5",
"@rollup/plugin-commonjs": "^17.1.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.2.0",
Expand Down
2 changes: 1 addition & 1 deletion src/core/LanguageController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ export default class LanguageController {
fs.writeFileSync(metaPath, JSON.stringify(languageMeta))
// console.log(new Date(), "LanguageController: installed language");
try {
this.loadLanguage(sourcePath)
await this.loadLanguage(sourcePath)
} catch(e) {
console.error("LanguageController.installLanguage: ERROR LOADING NEWLY INSTALLED LANGUAGE")
console.error("LanguageController.installLanguage: ======================================")
Expand Down
2 changes: 1 addition & 1 deletion src/core/LanguageFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export default class LanguageFactory {
const templateLines = template.split('\n')
let index = templateLines.findIndex(element => element.includes("var dna ="));
if (index != -1) {
console.log("Deleting DNA line at index", index);
// console.log("Deleting DNA line at index", index);
delete templateLines[index];
};
templateLines.unshift(dnaCode);
Expand Down
4 changes: 2 additions & 2 deletions src/core/PerspectivesController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ export default class PerspectivesController {

perspectiveID(uuid: string): PerspectiveID|void {
const pID = this.#perspectiveIDs.get(uuid)
console.log("pID:", pID)
// console.log("pID:", pID)
return pID
}

allPerspectiveIDs(): PerspectiveID[] {
const alluuids = Array.from(this.#perspectiveIDs.values())
console.log("ALL PerspectiveIDs:", alluuids)
// console.log("ALL PerspectiveIDs:", alluuids)
return alluuids
}

Expand Down
26 changes: 14 additions & 12 deletions src/core/PerspectivismCore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,22 +85,23 @@ export default class PerspectivismCore {
this.pubsub.publish(PubSub.SIGNAL, { signal: JSON.stringify(signal), language: this.language });
}

async initControllers() {
initControllers() {
this.#languageController = new LanguageController({
agent: this.#agentService,
IPFS: this.#IPFS,
signatures: this.#signatures,
ad4mSignal: this.languageSignal
}, this.#holochain)

await this.#languageController.loadLanguages()

this.#perspectivesController = new PerspectivesController(Config.rootConfigPath, {
db: this.#db,
agentService: this.agentService,
languageController: this.#languageController
})
}

async initLanguages() {
await this.#languageController.loadLanguages()
this.#languageFactory = new LanguageFactory(this.#agentService, this.#languageController.getLanguageLanguage(), this.#holochain)
}

Expand All @@ -122,7 +123,9 @@ export default class PerspectivismCore {
let installs = allowedExpressionLanguages.concat(requiredExpressionLanguages);
installs = Array.from(new Set(installs));
console.log("\x1b[32m", "PerspectivismCore.publishPerspective: Attempting to install expression languages", installs);
installs.forEach(language => this.#languageController.installLanguage(language, null))
await Promise.all(installs.map(async (install) => {
await this.#languageController.installLanguage(install, null)
}))

// Create SharedPerspective
const perspectiveAddress = await (this.languageController.getPerspectiveLanguage().expressionAdapter.putAdapter as PublicSharing).createPublic(sharedPerspective)
Expand All @@ -146,12 +149,11 @@ export default class PerspectivismCore {
const languages = {}
sharedPerspective.requiredExpressionLanguages.forEach(l => languages[l] = l)
sharedPerspective.linkLanguages.forEach(l => languages[l.address] = l.address)
const uniqueLangs: string[] = Object.values(languages)
// console.log(new Date(), "Core.installSharedPerspective: Attempting to install languages", uniqueLangs);
for (let i = 0; i < uniqueLangs.length; i++) {
await this.#languageController.installLanguage(uniqueLangs[i])
};
// console.log(new Date(), "Core.installSharedPerspective: Finished installing languages");
const installs: string[] = Object.values(languages)
console.log(new Date(), "Core.installSharedPerspective: Attempting to install languages", installs);
await Promise.all(installs.map(async (install) => {
await this.#languageController.installLanguage(install, null)
}))

let localPerspective = {
name: sharedPerspective.name,
Expand All @@ -164,8 +166,8 @@ export default class PerspectivismCore {
return perspective;
}

createUniqueHolochainExpressionLanguageFromTemplate(languagePath: string, dnaNick: string, uid: string): Promise<LanguageRef> {
return this.#languageFactory.createUniqueHolochainExpressionLanguageFromTemplate(languagePath, dnaNick, uid)
async createUniqueHolochainExpressionLanguageFromTemplate(languagePath: string, dnaNick: string, uid: string): Promise<LanguageRef> {
return await this.#languageFactory.createUniqueHolochainExpressionLanguageFromTemplate(languagePath, dnaNick, uid)
}

async pubKeyForLanguage(lang: string): Promise<Buffer> {
Expand Down
14 changes: 6 additions & 8 deletions src/core/graphQL-interface/GraphQL.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,25 +142,23 @@ function createResolvers(core: PerspectivismCore) {
core.perspectivesController.update(perspective)
return perspective
},
publishPerspective: (parent, args, context, info) => {
publishPerspective: async (parent, args, context, info) => {
const { uuid, name, description, type, uid, requiredExpressionLanguages, allowedExpressionLanguages } = args.input
//Note: this code is being executed twice in fn call, once here and once in publishPerspective
const perspective = core.perspectivesController.perspectiveID(uuid)
// @ts-ignore
if(perspective.sharedPerspective && perspective.sharedURL)
throw new Error(`Perspective ${name} (${uuid}) is already shared`)
return core.publishPerspective(uuid, name, description, type, uid, requiredExpressionLanguages, allowedExpressionLanguages)
return await core.publishPerspective(uuid, name, description, type, uid, requiredExpressionLanguages, allowedExpressionLanguages)
},
installSharedPerspective: async (parent, args, context, info) => {
console.log(new Date(), "GQL install shared perspective", args);
// console.log(new Date(), "GQL install shared perspective", args);
const { url } = args;
let perspective = await core.installSharedPerspective(url);
return perspective
return await core.installSharedPerspective(url);
},
createUniqueHolochainExpressionLanguageFromTemplate: (parent, args, context, info) => {
createUniqueHolochainExpressionLanguageFromTemplate: async (parent, args, context, info) => {
const {languagePath, dnaNick, uid} = args.input;

return core.createUniqueHolochainExpressionLanguageFromTemplate(languagePath, dnaNick, uid)
return await core.createUniqueHolochainExpressionLanguageFromTemplate(languagePath, dnaNick, uid);
},
removePerspective: (parent, args, context, info) => {
const { uuid } = args
Expand Down