Skip to content

Source tree map

Charles P edited this page Jul 20, 2017 · 4 revisions
Directory or file Description
.vscode contains the VSCode tasks.json which currently instructs to watch for changes to and compile the web project. Typically start the build as soon as you open VSCode
blocklygen Ignore/future cleanup
build This directory is where files are served from on the production servers. It is populated and updated via the npm run build command
client where all of the source code lives for the clients, web and mobile
cmds Directory required to be a PXT Target
config configuration files for jest, which we don't use, and webpack, which we totally use
docs Directory required to be a PXT Target. Seems like it would be important for creating end-user documentation.
libs Directory required to be a PXT Target. Contains files that get embedded in Target.json
LICENSE What it is
package.json standard NPM package file. Contains some commands, such as build, run, build-pxt
public The root of the website. When running a development server, files are loaded directly from this directory. npm run build copies all the files from here to the build directory, which is the root directory for the website in production
pxtarget.json Configuration file for PXT Target
README.md Repo Readme. Contains development instructions
samples Contains sample files. Only files with the extension mkcd are loadable by PXT Blapp
scripts webpack scripts
servage contains the server implementation
server.js a passthrough to servage\src\server. Azure node.js deployments by default execute node server.js
sim Directory required to be a PXT Target. More detail for individual files below. Some files get copied to public/pxt as part of npm run build-pxt
theme Directory required to be a PXT Target. Seems important for theming.
tmp stash files that you want to share between repos. Not used in any way
web.config Contains settings used by Azure deployment
.vscode\tasks.json Default build task: compile web client.
client\mobile source and build tree for mobile (react native) client
client\shared source files which are shared between web and mobile clients
client\web source tree for web client
client\mobile.babelrc React Native goo
client\mobile.buckconfig React Native goo
client\mobile.flowconfig React Native goo
client\mobile.watchmanconfig React Native goo
client\mobile\android Directory for native Android app stuff
client\mobile\app.json React Native goo
client\mobile\images images shared between ios and android, referenced from code
client\mobile\index.android.js React Native boilerplate
client\mobile\index.ios.js React Native boilerplate
client\mobile\ios React Native native code project/build/etc.
client\mobile\package.json for NPM
client\mobile\src This is where all the relevant mobile source code lives
client\mobile_tests_ We don't have any tests. I guess they would go here.
client\mobile.vscode\launch.json React Native goo
client\mobile.vscode\launchReactNative.js React Native goo
client\mobile.vscode\tasks.json Build but not emit, for checking
client\mobile.vscode\typings Description TBD
client\mobile\src\App.tsx Root component
client\mobile\src\components Where all the subcomponents go
client\mobile\src\models Where all the models go
client\mobile\src\styles.ts Where all the RN styles go
client\mobile\src\util directory for files which are neither components nor models
client\mobile\src\components\Target.tsx This component calls the program-defined render function (essentially the UI block)
client\mobile\src\models\AppModel.ts The application model.
client\mobile\src\models\ModelBase.ts Base class for models. Provides events for when model data changes
client\mobile\src\util\ServiceConnection.ts Communication with the server (connection, pairing, user program changes, shared variable notifications)
client\shared\src Code that is shared between the mobile client (companion app) and the preview
client\shared\src\components RN Components which correspond to the UI blocks
client\shared\src\ServiceTypes.js output version of ServiceTypes.ts
client\shared\src\ServiceTypes.js.map debug info for output version of ServiceTypes.ts
client\shared\src\ServiceTypes.ts types for the various websocket calls. This code is actually shared with the server as well (wee hack)
client\shared\src\util shared code that is not a component
client\shared\src\components\ButtonBlock.tsx RN component corresponding to BUTTON block
client\shared\src\components\CanvasBlock.tsx RN component corresponding to CANVAS block
client\shared\src\components\DividerBlock.tsx RN component corresponding to DIVIDER block
client\shared\src\components\GroupBlock.tsx RN component corresponding to GROUP block
client\shared\src\components\ImageBlock.tsx RN component corresponding to IMAGE block
client\shared\src\components\ScrollerBlock.tsx RN component corresponding to SCROLLER block
client\shared\src\components\SpriteBlock.tsx RN component corresponding to SPRITE block
client\shared\src\components\TextBlock.tsx RN component corresponding to TEXT block
client\shared\src\components\TextInputBlock.tsx RN component corresponding to TEXTINPUT block
client\shared\src\util\BlockThemes.ts This code contains the styles that correspond to the "class" dropdown options in the various blocks, as well as the "theme" dropdown in the UI block
client\shared\src\util\CodegenRuntime.ts This file contains the CodegenRuntime namespace, which is where crucial runtime functionality exists. In particular, setting the target render function (which is essentially what the UI block does), as well as providing helper routines for building the element tree, and various other tasks
client\shared\src\util\dataApi.ts Implementation functions for the DATA category/namespace
client\shared\src\util\IconData.ts Description TBD
client\shared\src\util\jsutil.ts Description TBD
client\shared\src\util\PxtExec.ts Description TBD
client\shared\src\util\styleApi.ts Implementation functions for the STYLE category/namespace
client\shared\src\util\timeApi.ts Implementation functions for the TIME category/namespace TBD
client\shared\src\util\uiApi.ts Implementation functions for the UI category/namespace
client\web.vscode for building inside VSCode, if VSCode is rooted at client/web directory
client\web\src web client. Much of this is obsolete. Pay most attention to client/web/src/pxt.
client\web\tsconfig.json typescript build configuration
client\web.vscode\tasks.json for building inside VSCode, if VSCode is rooted at client/web directory
client\web\src\App.css Obsolete blockly-based implementation
client\web\src\App.test.js Obsolete blockly-based implementation
client\web\src\blocks Obsolete blockly-based implementation
client\web\src\components Obsolete blockly-based implementation
client\web\src\index.css Obsolete blockly-based implementation
client\web\src\index.tsx Obsolete blockly-based implementation
client\web\src\localtypings Obsolete blockly-based implementation
client\web\src\logo.svg Obsolete blockly-based implementation
client\web\src\models Obsolete blockly-based implementation
client\web\src\pxt Description TBD
client\web\src\refs.d.ts Obsolete blockly-based implementation
client\web\src\util Description TBD
client\web\src\blocks\BlocklyConfig.ts Obsolete blockly-based implementation
client\web\src\blocks\SpriteCanvasDefs.ts Obsolete blockly-based implementation
client\web\src\blocks\UIBlockConfig.ts Obsolete blockly-based implementation
client\web\src\blocks\UIBlockDefs.ts Obsolete blockly-based implementation
client\web\src\blocks\UIMethodDefs.ts Obsolete blockly-based implementation
client\web\src\components\App.tsx Obsolete blockly-based implementation
client\web\src\components\InputFilePrompt.tsx Obsolete blockly-based implementation
client\web\src\components\SimplePrompt.tsx Obsolete blockly-based implementation
client\web\src\components\TabbedArea.tsx Obsolete blockly-based implementation
client\web\src\components\Target.tsx Obsolete blockly-based implementation
client\web\src\components\TestTarget.tsx Obsolete blockly-based implementation
client\web\src\localtypings\blockly.d.ts Obsolete blockly-based implementation
client\web\src\models\AppModel.ts Obsolete blockly-based implementation
client\web\src\models\InputFilePromptModel.ts Obsolete blockly-based implementation
client\web\src\models\ModelWithEvents.ts Obsolete blockly-based implementation
client\web\src\models\SimplePromptModel.ts Obsolete blockly-based implementation
client\web\src\pxt\App.tsx Root component for web client preview IFRAME
client\web\src\pxt\AppModel.ts Application Model
client\web\src\pxt\Board.ts Implements pxsim.Baseboard. Called by pxsim framework code
client\web\src\pxt\index.css CSS file for web preview window
client\web\src\pxt\index.tsx React Root file for web preview
client\web\src\pxt\Target.tsx Component which invokes the target render method (UI block)
client\web\src\util\ServiceConnection.ts All communication with server
cmds\pxtrequire.ts PXT Target boilerplate
cmds\tsconfig.json PXT Target boilerplate
config\env.js Webpack configuration files
config\jest Webpack configuration files
config\paths.jsWebpack configuration files TBD
config\polyfills.js Webpack configuration files
config\webpack.config.dev.js Webpack configuration files
config\webpack.config.prod.js Webpack configuration files
config\jest\cssTransform.js Test framework boilerplate. We have no tests
config\jest\fileTransform.js Test framework boilerplate. We have no tests
libs\blocksprj PXT Target boilerplate
libs\core PXT Target stuff. This directory contains typescript that gets embedded in Target.json at buildtime
libs\tsconfig.json Typescript compile config
libs\tsprj PXT Target boilerplate
libs\blocksprj\main.blocks PXT Target boilerplate
libs\blocksprj\main.ts PXT Target boilerplate
libs\blocksprj\pxt.json PXT Target boilerplate
libs\blocksprj\README.md PXT Target boilerplate
libs\core\data.ts Block functions for DATA category
libs\core\pxt.json PXT Package config file. If you add a new namespace, you need to update this
libs\core\README.md PXT Target boilerplate
libs\core\sims.d.ts PXT Package header file. Generated from /sim dir via npm run build-pxt
libs\core\style.ts Block functions for STYLE category
libs\core\test.ts Description TBD
libs\core\time.ts Block functions for TIME category
libs\core\types.d.ts Type definitions for structures and enums. Shared with shared client.
libs\core\ui.ts Description TBD
libs\core_locales PXT Target boilerplate
libs\core_locales\core-jsdoc-strings.json PXT Target boilerplate. Seems important for localizing documentation?
libs\core_locales\core-strings.json PXT Target boilerplate. Seems important for localizing documentation?
libs\core_locales\sample-jsdoc-strings.json PXT Target boilerplate. Seems important for localizing documentation?
libs\core_locales\sample-strings.json PXT Target boilerplate. Seems important for localizing documentation?
libs\tsprj\main.ts PXT Target boilerplate
libs\tsprj\pxt.json PXT Target boilerplate
libs\tsprj\README.md PXT Target boilerplate
public\app-release.apk Latest Android APK. URL accessible via /downloadapk
public\favicon.ico Description TBD
public\icons Other icons
public\index.html The original blockly-based implementation
public\media Icons that are used by the icon blocks
public\msg ???
public\pxt Where all the (new, non-obsolete) web application files live.
public\toolbox.xml Obsolete Blockly Category/Block map
public\msg\js ???
public\msg\js\en.js ???
samples\blapp-calc1.mkcd Calculator Demo
samples\blapp-iconviewer.mkcd Description TBD
samples\blapp-messages.mkcd Description TBD
scripts\start.js Description TBD
scripts\test.js Description TBD
servage\src Description TBD
servage\tsconfig.json Typescript compile config
servage\src\blappSync.js Description TBD
servage\src\blappSync.js.map Description TBD
servage\src\blappSync.ts Description TBD
servage\src\server.js Description TBD
servage\src\server.js.map Description TBD
servage\src\server.ts Description TBD
sim\api.ts File which contains empty versions of block implementation functions. Gets used to generate libs/core/shims.d.ts. See here for details
sim\public simulator files that get copied to public folder as part of build
sim\simulator.ts Description TBD
sim\tsconfig.json Description TBD
sim\public\sim.css Description TBD
sim\public\sim.manifest Description TBD
sim\public\simulator.html Description TBD
theme\site Seems like Target theming related stuffs.

Clone this wiki locally