code.framework.link

+default-config-file+

+default-packages-file+

+suffix-types+

all-linkages

added in 4.0

(all-linkages project)(all-linkages tag project {:keys [packages], :as deploy})

gets all linkages

(all-linkages (make-project))

collect

added in 3.0

(collect)(collect packages lookups project)(collect packages lookups project {:keys [overlapped missing], :or {overlapped :error, missing :none}})

cellects all information given lookups and project

collect-entries

added in 3.0

(collect-entries packages lookups)

collects all entries given packages and lookups

(-> (collect-entries -packages- -lookups-) (get-in ’xyz.zcaudate/std.lib :entries)) => coll?

collect-entries-single

added in 3.0

(collect-entries-single package lookup)

collects all namespaces for given lookup and package

(collect-entries-single (get -packages- ’xyz.zcaudate/std.lib) (:clj -lookups-)) => coll?

collect-external-deps

added in 3.0

(collect-external-deps packages)

collects dependencies from the local system

(collect-external-deps ’{:a {:dependencies org.clojure/clojure}}) => (contains-in {:a {:dependencies ’org.clojure/clojure string?}})

collect-internal-deps

added in 3.0

(collect-internal-deps packages)

collects all internal dependencies

collect-linkages

added in 3.0

(collect-linkages packages lookups)

collects all imports and exports of a package

collect-transfers

added in 3.0

(collect-transfers packages lookups project)

collects all files that are packaged

create-file-lookups

added in 3.0

(create-file-lookups project)

creates file-lookups for clj, cljs and cljc files

(-> (create-file-lookups (project/project)) (get-in :clj ’std.lib.version)) => (str (fs/path “src/std/lib/version.clj”))

file-linkage

added in 3.0

(file-linkage path)

returns the exports and imports of a given file

(file-linkage “src/code/link/common.clj”) => ’{:exports #{:class code.framework.link.common.FileInfo :clj code.framework.link.common}, :imports #{:clj std.fs :clj std.lib}}

make-linkages

added in 3.0

(make-linkages project)(make-linkages tag project {:keys [packages], :as deploy})

creates linkages

(make-linkages (make-project)) => map?

make-project

added in 3.0

(make-project)(make-project _)

makes a maven compatible project

(make-project) => map?

missing-entries

added in 3.0

(missing-entries packages lookups)

finds missing entries given packages and lookup

(missing-entries ’{b {:name b :entries #{:clj hara.1 :clj hara.2}}} ’{:clj {hara.1 "" hara.2 "" hara.3 ""}}) => ’{:clj {hara.3 ""}}

overlapped-entries

added in 3.0

(overlapped-entries packages)

finds any overlapped entries for given map

(overlapped-entries ’{a {:name a :entries #{:clj hara.1}} b {:name b :entries #{:clj hara.1 :clj hara.2}}}) => ’([#{a b} #{:clj hara.1}])

overlapped-entries-single

added in 3.0

(overlapped-entries-single x heap)

finds any overlaps between entries

(overlapped-entries-single ’{:name a :entries #{:clj hara.1}} ’[{:name b :entries #{:clj hara.1 :clj hara.2}}]) => ’([#{a b} #{:clj hara.1}])

read-packages

added in 3.0

(read-packages)(read-packages {:keys [root file], :as input})

reads in a list of packages to (-> (read-packages {:file “config/packages.edn”}) (get ’xyz.zcaudate/std.lib)) => (contains {:description string? :name ’xyz.zcaudate/std.lib})

select-manifest

added in 3.0

(select-manifest packages manifest)

selects all related manifests

(select-manifest {:a {:internal #{:b}} :b {:internal #{:c}} :c {:internal #{}} :d {:internal #{}}} :a) => {:a {:internal #{:b}} :b {:internal #{:c}} :c {:internal #{}}}